blob: f22609c7c9209916fc1b63de306e1c0d7adc478e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# NimBluez
Modules for access to system [Bluetooth](https://www.bluetooth.com/) resources for the [Nim](http://nim-lang.org/) programming language.
Use [nimbluez.bluetooth](https://github.com/Electric-Blue/NimBluez/nimbluez/bluetooth.nim) module for cross-platform discovery and managing Bluetooth devices and services.
For cross-platform low-level sockets interface implementation for Bluetooth use
[nimbluez.bluetoothnativesockets](https://github.com/Electric-Blue/NimBluez/nimbluez/bluetoothnativesockets.nim).
You can find wrappers for [BlueZ](http://www.bluez.org/) in [nimbluez/bluez](https://github.com/Electric-Blue/NimBluez/nimbluez/bluez/) folder.
For [Microsoft Bluetooth](https://msdn.microsoft.com/en-us/library/windows/desktop/aa362761%28v=vs.85%29.aspx) protocol stack wrappers look at [nimbluez/msbt](https://github.com/Electric-Blue/NimBluez/nimbluez/msbt/).
## Installation
To install using [Nimble](https://github.com/nim-lang/nimble) run the following:
```
$ nimble install nimbluez
```
## Examples
.. code-block:: nim
# Simple discovery example.
import nimbluez.bluetooth
echo "All visible remote devices:"
for remoteDevice in getRemoteDevices():
echo remoteDevice.address, " - ", remoteDevice.name
.. code-block:: nim
# Simple server example.
# Attention! This code
import nimbluez/bluetoothnativesockets
var serverSocket = newBluetoothNativeSocket(SOCK_STREAM, BTPROTO_RFCOMM)
discard serverSocket.bindAddr(RfcommPort(0))
discard serverSocket.listen()
var
clientSocket: SocketHandle
clientAddress: string
clientSocket = serverSocket.acceptRfcommAddr(clientAddress)
var
message: string
message = clientSocket.recv()
echo message
clientSocket.close()
serverSocket.close()
.. code-block:: nim
# Simple client example.
import nimbluez/bluetoothnativesockets
var clientSocket = newBluetoothNativeSocket(SOCK_STREAM, BTPROTO_RFCOMM)
discard clientSocket.connect(RfcommPort(1), "00:02:72:0F:5C:87")
discard clientSocket.send("Hi there!")
clientSocket.close()
For more examples look at [examples]() folder.
|