chairmanPC
Active member
- Joined
- Apr 19, 2021
- Messages
- 38
- Programming Experience
- 10+
I am totally new to Bluetooth LE programming. My task is to write a app to read in data from a skincare device called a clartici. It has a sensor that will read the skin and send the data to a computer.
I was able to detect and pair the device to the program.
I got stuck in the part where I have to read in the data. I have all the GUIDs I need for the device, but I just don't know how to read the data.
Here is the code I have so far:
I was able to detect and pair the device to the program.
I got stuck in the part where I have to read in the data. I have all the GUIDs I need for the device, but I just don't know how to read the data.
Here is the code I have so far:
C#:
namespace DermaScanner
{
class Program
{
static DeviceInformation device = null;
public static string ClarticiID = "837d"; //Service GUID - 64E9837D-CA48-48C4-BB71-323E5A85B51F
public static string deviceInfo = "180a"; //Device info GUID
static async Task Main(string[] args)
{
// Query for extra properties you want returned
string[] requestedProperties = { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected" };
DeviceWatcher watcher =
DeviceInformation.CreateWatcher(
BluetoothLEDevice.GetDeviceSelectorFromPairingState(false),
requestedProperties,
DeviceInformationKind.AssociationEndpoint);
// Register event handlers before starting the watcher.
// Added, Updated and Removed are required to get all nearby devices
watcher.Added += DeviceWatcher_Added;
watcher.Updated += DeviceWatcher_Updated;
watcher.Removed += DeviceWatcher_Removed;
// EnumerationCompleted and Stopped are optional to implement.
watcher.EnumerationCompleted += DeviceWatcher_EnumerationCompleted;
watcher.Stopped += DeviceWatcher_Stopped;
Console.WriteLine("Clartici Scanner");
// Start the watcher.
watcher.Start();
while (true)
{
if (device == null)
{
Thread.Sleep(200);
}
else
{
Console.WriteLine("Press Any to pair with Clartici");
Console.ReadKey();
Console.WriteLine();
BluetoothLEDevice bluetoothLeDevice = await BluetoothLEDevice.FromIdAsync(device.Id);
Console.WriteLine("Attempting to pair with device");
GattDeviceServicesResult result = await bluetoothLeDevice.GetGattServicesAsync();
if (result.Status == GattCommunicationStatus.Success)
{
Console.WriteLine("Pairing succeeded");
var services = result.Services;
foreach (var service in services)
{
if (service.Uuid.ToString("N").Substring(4, 4) == ClarticiID)
{
Console.WriteLine("Found Clartici service!");
}
}
}
break;
}
}
watcher.Stop();
Console.ReadLine();
}
//Looking for device
private static void DeviceWatcher_Added(DeviceWatcher sender, DeviceInformation args)
{
if (args.Name == "Clartici")
device = args;
//throw new NotImplementedException();
}
private static void DeviceWatcher_Stopped(DeviceWatcher sender, object args)
{
//throw new NotImplementedException();
}
private static void DeviceWatcher_EnumerationCompleted(DeviceWatcher sender, object args)
{
//throw new NotImplementedException();
}
private static void DeviceWatcher_Removed(DeviceWatcher sender, DeviceInformationUpdate args)
{
//throw new NotImplementedException();
}
private static void DeviceWatcher_Updated(DeviceWatcher sender, DeviceInformationUpdate args)
{
//throw new NotImplementedException();
}
}
}