The scanner works like this:
When creating a scanner, you need to specify the type of device to search. It can be either one device or several. Here is example for one type of devices - Callibri.
SensorFamily filter[] = {
SensorFamily::SensorLEBrainBit
};
OpStatus st;
auto scanner = createScanner(filter, sizeof(filter), &st);
Scanner scanner = new Scanner(SensorFamily.SensorLEBrainBit);
var scanner = Scanner( SensorFamily.SensorLEBrainBit)
Scanner scanner = new Scanner(SensorFamily.SensorLEBrainBit);
var scanner = new Scanner()
await scanner.init([SensorFamily.LEBrainBit])
scanner = Scanner([SensorFamily.SensorLEBrainBit])
var scanner = NTScanner(sensorFamily: [NTSensorFamily.leBrainBit.rawValue])
NTScanner* scanner = [[NTScanner alloc] initWithSensorFamily:@[@(NTSensorFamilyLEBrainBit)]];
void sensorsCallback(SensorScanner* ptr, SensorInfo* sensors, int32_t szSensors, void* userData){
}
...
OpStatus st;
SensorsListenerHandle lHandle = nullptr;
addSensorsCallbackScanner(scanner, sensorsCallback, &lHandle, nullptr, &st);
scanner.sensorsChanged = (scanner, sensors) -> {
sensors.forEach(sensorInfo -> Log.i("TAG", sensorInfo.getName() + ": " + sensorInfo.getAddress()));
};
...
scanner.sensorsChanged = null;
scanner?.sensorsChanged = Scanner.ScannerCallback { scanner, sensors ->
sensors.forEach { sensorInfo -> Log.i("TAG", sensorInfo.name+ ": " + sensorInfo.address) }
}
...
scanner.sensorsChanged = null
private void Scanner_Founded(IScanner scanner, IReadOnlyList<SensorInfo> sensors)
{
foreach(SensorInfo sensorInfo in sensors){
Console.WriteLine(sensorInfo.Name + ": " + sensorInfo.Address);
}
}
scanner.EventSensorsChanged += Scanner_Founded;
...
scanner.EventSensorsChanged -= Scanner_Founded;
scanner.AddSensorListChanged(sensorFounded => {
console.log(sensorFounded)
});
...
scanner.RemoveSensorListChanged();
def sensorFound(scanner, sensors):
for i in range(len(sensors)):
print('Sensor %s' % sensors[i])
scanner.sensorsChanged = sensorFound
...
scanner.sensorsChanged = None
scanner.setSensorsCallback(sensorFounded)
...
scanner.setSensorsCallback(nil)
[scanner setSensorsCallback:sensorFounded];
...
[scanner setSensorsCallback:nil];
OpStatus outStatus;
startScanner(scanner, &outStatus);
scanner.start();
scanner.start();
scanner.Start();
scanner.Start()
scanner.start()
scanner.startScan()
[scanner startScan];
OpStatus outStatus;
stopScanner(scanner, &outStatus);
scanner.stop();
scanner.stop();
scanner.Stop();
scanner.Stop()
scanner.stop()
scanner.stopScan()
[scanner stopScan];
int32_t szSensorsInOut = 32;
SensorInfo* sensors = new SensorInfo[szSensorsInOut];
OpStatus outStatus;
sensorsScanner(scanner, sensors, &szSensorsInOut, &outStatus);
List<SensorInfo> sensors = scanner.getSensors();
var sensors: List<SensorInfo>? = scanner.sensors
IReadOnlyList<SensorInfo> sensors = scanner.Sensors;
var sensors = await scanner.Sensors()
sensors = scanner.sensors()
var sensors = scanner.sensors
NSArray<NTSensorInfo*>* sensors = scanner.sensors;
`SensorInfo` contains information about device:
- Name - the name of device
- Address - MAC address of device (UUID for iOS/MacOS)
- Serial number - device's serial number
- Sensor family - type of device
- Sensor model - numerical value of the device model
- Pairing required - whether the device needs to be paired or not
freeScanner(scanner);
scanner.close();
scanner.close()
scanner.Dispose();
scanner.Close();
del scanner
scanner = nil
scanner = nil;
Important! When restarting the search, the callback will only be called when a new device is found. If you need to get all devices found by the current scanner instance, call the appropriate method.