static void Main(string[] args) { // Note // When running in non-UWP desktop applications like this one, you must either: // - pair with the Bluetera from Windows Settings before running this example // - uncomment the relevant lines in the sdkConnect() method Console.WriteLine("Running"); BlueteraManager sdk = BlueteraManager.Instance; sdk.AdvertismentReceived += BlueteraDevice_AdvertismentReceived; bool running = true; Console.WriteLine("\n\n'q' - quit\n's' - start scan\n't' - stop scan\n'c' - connect\n'd' - disconnect\n'e' - send Echo\n'i' - configure and start IMU\n'j' - stop IMU\n'l' - start IMU and logging\n\n"); while (running) { var key = Console.ReadKey(true); switch (key.KeyChar) { case 'q': Console.WriteLine("Quitting"); running = false; break; case 's': Console.WriteLine("Starting Scan"); sdk.StartScan(); break; case 't': Console.WriteLine("Stopping Scan"); sdk.StopScan(); break; case 'c': Console.WriteLine("Connecting"); sdk.StopScan(); device = sdk.Connect(lastAddress, autopair: true).Result; // Note: non-UWP apps (like this one) should set autopair:true. See BlueteraSdk.Connect() for more info device.ConnectionStatusChanged += Device_ConnectionStatusChanged; device.DownlinkMessageReceived += Device_DownlinkMessageReceived; Console.WriteLine($"Device connection status: {device.ConnectionStatus}"); break; case 'd': Console.WriteLine("Disconnecting"); if (device != null) { device.Disconnect(); device = null; } break; case 'e': { Console.WriteLine("Sending echo"); var result = SendEcho().Result; Console.WriteLine($"GattCommunicationStatus: {result}"); } break; case 'i': { Console.WriteLine("Configuring and starting IMU"); var result = StartImu().Result; Console.WriteLine($"GattCommunicationStatus: {result}"); } break; case 'j': { Console.WriteLine("Stopping IMU"); var result = StopImu().Result; Console.WriteLine($"GattCommunicationStatus: {result}"); } break; case 'l': { Console.WriteLine("Configuring and starting IMU with logging to SD card"); var result = StartLogging().Result; Console.WriteLine($"GattCommunicationStatus: {result}"); } break; default: Console.WriteLine("Invalid command"); break; } } sdk.DisposeAll(); }