mirror of
https://github.com/dotMorten/NmeaParser.git
synced 2025-12-06 07:12:04 +01:00
Update README.md
This commit is contained in:
parent
01a5b20475
commit
addb1050c8
61
README.md
61
README.md
|
|
@ -2,3 +2,64 @@ BTDevices
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Library for handling Bluetooth devices in Windows Store and Windows Phone, in particular devices using NMEA messages.
|
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 <Capabilities> section:
|
||||||
|
```
|
||||||
|
<m2:DeviceCapability Name="bluetooth.rfcomm">
|
||||||
|
<m2:Device Id="any">
|
||||||
|
<m2:Function Type="name:serialPort" />
|
||||||
|
</m2:Device>
|
||||||
|
</m2:DeviceCapability>
|
||||||
|
```
|
||||||
|
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
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue