diff --git a/README.md b/README.md index b3553c9..dbaf9b8 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,64 @@ BTDevices ========= Library for handling Bluetooth devices in Windows Store and Windows Phone, in particular devices using NMEA messages. + +This library makes it easy to connect and listen for NMEA messages from Bluetooth Devices in Windows Store and Windows Phone apps. + + +Usage - Windows Store +===================== +Ensure the bluetooth capability is enabled by opening package.appxmanifest in a text editor, and add the following to the section: +``` + + + + + +``` +See more here on bluetooth device capabilities in WinStore: http://msdn.microsoft.com/en-us/library/windows/apps/dn263090.aspx + +``` +//Get list of devices +string serialDeviceType = RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort); +var devices = await DeviceInformation.FindAllAsync(serialDeviceType); +//Select device by name (in this case TruePulse 360B Laser Range Finder) +var TruePulse360B = devices.Where(t => t.Name.StartsWith("TP360B-")).FirstOrDefault(); +//Get service +RfcommDeviceService rfcommService = await RfcommDeviceService.FromIdAsync(TruePulse360B.Id); +if (rfcommService != null) +{ + var rangeFinder = new BTDevices.NmeaDevice(rfcommService); + rangeFinder.MessageReceived += device_NmeaMessageReceived; + await rangeFinder.StartAsync(); +} +... +private void device_NmeaMessageReceived(BTDevices.NmeaDevice sender, BTDevices.Nmea.NmeaMessage args) +{ + // called when a message is received +} + +``` + + +Usage - Windows Phone +====================== +Ensure the "ID_CAP_PROXIMITY" capability is enabled in the WMAppManifest.xml file. +``` + +// Search for all paired devices +PeerFinder.AlternateIdentities["Bluetooth:Paired"] = ""; +//Get all devices +var devices = await PeerFinder.FindAllPeersAsync(); +//Select device by name (in this case TruePulse 360B Laser Range Finder) +var TruePulse360B = devices.Where(t => t.DisplayName.StartsWith("TP360B-")).FirstOrDefault(); +if (TruePulse360B != null) +{ + var device = new BTDevices.NmeaDevice((PeerInformation)TruePulse360B); + device.MessageReceived += device_NmeaMessageReceived; +} +... +private void device_NmeaMessageReceived(BTDevices.NmeaDevice sender, BTDevices.Nmea.NmeaMessage args) +{ + // called when a message is received +} +```