Based on Bluetooth serial port communication for Node.js
- CMake
- Needs Bluetooth development packages to build
apt-get install libbluetooth-dev cmake gcc-c++
zypper install bluez-devel cmake gcc-c++
- CMake from MacPorts
- Needs XCode and XCode command line tools installed.
- CMake
- Visual Studio
#include <iostream>
#include <vector>
#include <memory>
#include "../src/DeviceINQ.h"
using namespace std;
void main()
{
unique_ptr<DeviceINQ> inq(DeviceINQ::Create());
vector<device> devices = inq->Inquire();
for (const auto& d : devices)
{
cout << d.name << " " << d.address << endl;
}
cout << endl << "done, found " << devices.size() << " device(s)" << endl;
}
Returns new instance of DeviceINQ object
Returns list of bluetooth devices in range
struct device
{
string address; // bluetooth address of the device
string name; // name of the device
time_t lastSeen; // last time device was seen in the inquiry (windows, osx)
time_t lastUsed; // last time device was used (windows)
bool connected; // true if device is connected (windows, osx)
bool remembered; // true if device is remembered (windows, osx)
bool authenticated; // true if device is authenticated (windows, osx)
DeviceClass deviceClass; // class of device
DeviceClass majorDeviceClass; // major class of device
ServiceClass serviceClass; // service class flags
};
Returns serial port channelID for device at given address
- address: string containing bluetooth address of the device
Note: This method seems to fail on Windows, use value 1 for channelID instead
Returns new instance of BTSerialPortBinding object
- address: string containint bluetooth address of the device
- channelID: ID of the serial port channel
Note: channelID should be always 1 for serial port
Connects to the device, needs to be called before any Read/Write calls
Closes connection to the device
Reads data from the device, returns numbe rof bytes read
- buffer: pointer to buffer to hold received data
- length: maximum namber of bytes to read
Writes data to the device
- buffer: pointer to buffer with data to send
- length: number of bytes to send
Returns true if there is data in the buffer ready to be read (not implemented for OSX - always returns false)
Returns text representation of deviceClass enum value
Returns text representation of serviceClass enum value
This module is available under a FreeBSD license, see the LICENSE file for details.