wot-ble-client-factory 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/Bluetooth-client-factory.d.ts +2 -5
- package/dist/Bluetooth-client-factory.js +11 -6
- package/dist/Bluetooth-client-factory.js.map +1 -1
- package/dist/Bluetooth-client.d.ts +2 -0
- package/dist/Bluetooth-client.js +50 -11
- package/dist/Bluetooth-client.js.map +1 -1
- package/dist/bluetooth/Bluetooth_lib.js +19 -13
- package/dist/bluetooth/Bluetooth_lib.js.map +1 -1
- package/dist/codec.js +40 -5
- package/dist/codec.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -22,6 +22,11 @@ servient.addClientFactory(new BluetoothClientFactory());
|
|
|
22
22
|
|
|
23
23
|
Check the `examples` folder for more complete Thing Descriptions.
|
|
24
24
|
|
|
25
|
+
To enable debug logs run with this command:
|
|
26
|
+
```bash
|
|
27
|
+
DEBUG=binding-Bluetooth node example.js
|
|
28
|
+
```
|
|
29
|
+
|
|
25
30
|
## Protocol specifier
|
|
26
31
|
|
|
27
32
|
The protocol prefix handled by this binding is <code>gatt://</code>.
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
* Bluetooth protocol binding
|
|
3
|
-
*/
|
|
4
|
-
import { ProtocolClientFactory, ProtocolClient, ContentSerdes } from '@node-wot/core';
|
|
1
|
+
import { ProtocolClientFactory, ProtocolClient } from '@node-wot/core';
|
|
5
2
|
export default class BluetoothClientFactory implements ProtocolClientFactory {
|
|
6
3
|
readonly scheme: string;
|
|
7
|
-
contentSerdes: ContentSerdes;
|
|
8
4
|
constructor();
|
|
5
|
+
private registerCodec;
|
|
9
6
|
getClient(): ProtocolClient;
|
|
10
7
|
init: () => boolean;
|
|
11
8
|
destroy: () => boolean;
|
|
@@ -3,20 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/**
|
|
7
|
-
* Bluetooth protocol binding
|
|
8
|
-
*/
|
|
9
6
|
const core_1 = require("@node-wot/core");
|
|
10
7
|
const Bluetooth_client_js_1 = __importDefault(require("./Bluetooth-client.js"));
|
|
11
8
|
const codec_js_1 = require("./codec.js");
|
|
9
|
+
const debug_1 = __importDefault(require("debug"));
|
|
10
|
+
// Create a logger with a specific namespace
|
|
11
|
+
const log = (0, debug_1.default)('binding-Bluetooth');
|
|
12
12
|
class BluetoothClientFactory {
|
|
13
13
|
scheme = 'gatt';
|
|
14
|
-
contentSerdes = core_1.ContentSerdes.get();
|
|
15
14
|
constructor() {
|
|
16
|
-
this.
|
|
15
|
+
this.registerCodec();
|
|
16
|
+
}
|
|
17
|
+
registerCodec() {
|
|
18
|
+
const cs = core_1.ContentSerdes.get();
|
|
19
|
+
if (!cs.getSupportedMediaTypes().includes('application/x.binary-data-stream')) {
|
|
20
|
+
cs.addCodec(new codec_js_1.BLEBinaryCodec());
|
|
21
|
+
log('Registered BLEBinaryCodec for "application/x.binary-data-stream"');
|
|
22
|
+
}
|
|
17
23
|
}
|
|
18
24
|
getClient() {
|
|
19
|
-
console.debug('[binding-Bluetooth]', `BluetoothClientFactory creating client for ${this.scheme}`);
|
|
20
25
|
return new Bluetooth_client_js_1.default();
|
|
21
26
|
}
|
|
22
27
|
init = () => true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bluetooth-client-factory.js","sourceRoot":"","sources":["../src/Bluetooth-client-factory.ts"],"names":[],"mappings":";;;;;AAAA
|
|
1
|
+
{"version":3,"file":"Bluetooth-client-factory.js","sourceRoot":"","sources":["../src/Bluetooth-client-factory.ts"],"names":[],"mappings":";;;;;AAAA,yCAIwB;AACxB,gFAAoD;AACpD,yCAA4C;AAC5C,kDAA0B;AAE1B,4CAA4C;AAC5C,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,mBAAmB,CAAC,CAAC;AAEvC,MAAqB,sBAAsB;IACzB,MAAM,GAAW,MAAM,CAAC;IAExC;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,MAAM,EAAE,GAAG,oBAAa,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAC7E,EAAE,CAAC,QAAQ,CAAC,IAAI,yBAAc,EAAE,CAAC,CAAC;YAClC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,6BAAe,EAAE,CAAC;IAC/B,CAAC;IAEM,IAAI,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC;IAC3B,OAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC;CACtC;AArBD,yCAqBC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Content, ProtocolClient } from '@node-wot/core';
|
|
2
2
|
import { Subscription } from 'rxjs/Subscription';
|
|
3
3
|
import type { Form, SecurityScheme } from 'wot-thing-description-types';
|
|
4
|
+
export declare function enableAutoDisconnect(): void;
|
|
5
|
+
export declare function disableAutoDisconnect(): void;
|
|
4
6
|
export declare const deconstructForm: (form: Form) => Record<string, any>;
|
|
5
7
|
export default class BluetoothClient implements ProtocolClient {
|
|
6
8
|
toString(): string;
|
package/dist/Bluetooth-client.js
CHANGED
|
@@ -32,12 +32,28 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.deconstructForm = void 0;
|
|
40
|
+
exports.enableAutoDisconnect = enableAutoDisconnect;
|
|
41
|
+
exports.disableAutoDisconnect = disableAutoDisconnect;
|
|
37
42
|
const core_1 = require("@node-wot/core");
|
|
38
43
|
const Subscription_1 = require("rxjs/Subscription");
|
|
39
44
|
const stream_1 = require("stream");
|
|
45
|
+
const debug_1 = __importDefault(require("debug"));
|
|
40
46
|
const BLELibCore = __importStar(require("./bluetooth/Bluetooth_lib"));
|
|
47
|
+
// If conenction should be closed automatically
|
|
48
|
+
let autoDisconnect = true;
|
|
49
|
+
function enableAutoDisconnect() {
|
|
50
|
+
autoDisconnect = true;
|
|
51
|
+
}
|
|
52
|
+
function disableAutoDisconnect() {
|
|
53
|
+
autoDisconnect = false;
|
|
54
|
+
}
|
|
55
|
+
// Create a logger with a specific namespace
|
|
56
|
+
const log = (0, debug_1.default)('binding-Bluetooth');
|
|
41
57
|
function asBle(form) {
|
|
42
58
|
return form;
|
|
43
59
|
}
|
|
@@ -98,7 +114,7 @@ class BluetoothClient {
|
|
|
98
114
|
async readResource(form) {
|
|
99
115
|
const deconstructedForm = (0, exports.deconstructForm)(form);
|
|
100
116
|
await BLELibCore.connect(deconstructedForm.deviceId);
|
|
101
|
-
|
|
117
|
+
log(`invoke read operation on characteristic ${deconstructedForm.characteristicId}` +
|
|
102
118
|
` from service ${deconstructedForm.serviceId} on ${deconstructedForm.deviceId}`);
|
|
103
119
|
// Get Characteristic
|
|
104
120
|
const characteristic = await BLELibCore.getCharacteristic(deconstructedForm.deviceId, deconstructedForm.serviceId, deconstructedForm.characteristicId);
|
|
@@ -111,7 +127,9 @@ class BluetoothClient {
|
|
|
111
127
|
console.error(error);
|
|
112
128
|
throw new Error(`Error reading from Bluetooth device ${deconstructedForm.characteristicId}`);
|
|
113
129
|
}
|
|
114
|
-
|
|
130
|
+
if (autoDisconnect) {
|
|
131
|
+
await BLELibCore.close();
|
|
132
|
+
}
|
|
115
133
|
// Return proper Content (with toBuffer)
|
|
116
134
|
return fromBuffer(deconstructedForm.contentType || 'application/x.binary-data-stream', buffer);
|
|
117
135
|
}
|
|
@@ -124,20 +142,39 @@ class BluetoothClient {
|
|
|
124
142
|
// Convert content -> Buffer
|
|
125
143
|
let buffer;
|
|
126
144
|
if (content) {
|
|
127
|
-
//
|
|
145
|
+
// 1) If node-wot gives you a canonical helper, use it
|
|
128
146
|
if (typeof content.toBuffer === 'function') {
|
|
129
147
|
buffer = await content.toBuffer();
|
|
130
148
|
}
|
|
131
149
|
else {
|
|
150
|
+
// 2) Manually read the body and preserve Buffers as-is
|
|
132
151
|
const chunks = [];
|
|
133
152
|
for await (const chunk of content.body) {
|
|
134
|
-
|
|
153
|
+
if (Buffer.isBuffer(chunk)) {
|
|
154
|
+
chunks.push(chunk); // already a Buffer → keep as-is
|
|
155
|
+
}
|
|
156
|
+
else if (typeof chunk === 'string') {
|
|
157
|
+
chunks.push(Buffer.from(chunk, 'utf8'));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
// covers Uint8Array, Array<number>, etc.
|
|
161
|
+
chunks.push(Buffer.from(chunk));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// If there was exactly one Buffer, just use it directly
|
|
165
|
+
if (chunks.length === 0) {
|
|
166
|
+
buffer = Buffer.alloc(0);
|
|
167
|
+
}
|
|
168
|
+
else if (chunks.length === 1) {
|
|
169
|
+
buffer = chunks[0];
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
buffer = Buffer.concat(chunks);
|
|
135
173
|
}
|
|
136
|
-
buffer = Buffer.concat(chunks);
|
|
137
174
|
}
|
|
138
175
|
}
|
|
139
176
|
else {
|
|
140
|
-
// If content not defined write buffer <
|
|
177
|
+
// If content not defined write buffer <00>
|
|
141
178
|
buffer = Buffer.alloc(1);
|
|
142
179
|
}
|
|
143
180
|
// Get Characteristic
|
|
@@ -145,13 +182,13 @@ class BluetoothClient {
|
|
|
145
182
|
// Select what operation should be executed
|
|
146
183
|
switch (deconstructedForm.ble_operation) {
|
|
147
184
|
case 'sbo:write':
|
|
148
|
-
|
|
185
|
+
log(`invoke write operation on characteristic ${deconstructedForm.characteristicId}` +
|
|
149
186
|
` from service ${deconstructedForm.serviceId} on ${deconstructedForm.deviceId}`);
|
|
150
187
|
// write value with response
|
|
151
188
|
await characteristic.writeValue(buffer, { offset: 0, type: 'request' });
|
|
152
189
|
break;
|
|
153
190
|
case 'sbo:write-without-response':
|
|
154
|
-
|
|
191
|
+
log(`invoke write-without-response operation on characteristic ${deconstructedForm.characteristicId}` +
|
|
155
192
|
` from service ${deconstructedForm.serviceId} on ${deconstructedForm.deviceId}`);
|
|
156
193
|
// write value without response
|
|
157
194
|
await characteristic.writeValue(buffer, { offset: 0, type: 'command' });
|
|
@@ -160,7 +197,9 @@ class BluetoothClient {
|
|
|
160
197
|
throw new Error(`[binding-Bluetooth] unknown operation ${deconstructedForm.operation}`);
|
|
161
198
|
}
|
|
162
199
|
}
|
|
163
|
-
|
|
200
|
+
if (autoDisconnect) {
|
|
201
|
+
await BLELibCore.close();
|
|
202
|
+
}
|
|
164
203
|
}
|
|
165
204
|
/**
|
|
166
205
|
* Invokes an action (write + trivial response)
|
|
@@ -175,7 +214,7 @@ class BluetoothClient {
|
|
|
175
214
|
}
|
|
176
215
|
async unlinkResource(form) {
|
|
177
216
|
const deconstructedForm = (0, exports.deconstructForm)(form);
|
|
178
|
-
|
|
217
|
+
log(`unsubscribing from characteristic with serviceId ${deconstructedForm.serviceId} characteristicId ` +
|
|
179
218
|
`${deconstructedForm.characteristicId} on ${deconstructedForm.deviceId}`);
|
|
180
219
|
const characteristic = await BLELibCore.getCharacteristic(deconstructedForm.deviceId, deconstructedForm.serviceId, deconstructedForm.characteristicId);
|
|
181
220
|
await characteristic.stopNotifications();
|
|
@@ -188,7 +227,7 @@ class BluetoothClient {
|
|
|
188
227
|
if (deconstructedForm.ble_operation !== 'sbo:notify') {
|
|
189
228
|
throw new Error(`[binding-Bluetooth] operation ${deconstructedForm.ble_operation} is not supported`);
|
|
190
229
|
}
|
|
191
|
-
|
|
230
|
+
log(`subscribing to characteristic with serviceId ${deconstructedForm.serviceId} ` +
|
|
192
231
|
`characteristicId ${deconstructedForm.characteristicId}`);
|
|
193
232
|
const characteristic = await BLELibCore.getCharacteristic(deconstructedForm.deviceId, deconstructedForm.serviceId, deconstructedForm.characteristicId);
|
|
194
233
|
await characteristic.startNotifications();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bluetooth-client.js","sourceRoot":"","sources":["../src/Bluetooth-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bluetooth-client.js","sourceRoot":"","sources":["../src/Bluetooth-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Handle basic bluetooth communication and discovery.
|
|
4
4
|
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
exports.close = exports.disconnectAll = exports.disconnectByMac = exports.disconnectThing = exports.connectThing = exports.getCharacteristic = exports.connect = exports.getDeviceById = exports.getAdapterStatus = exports.stopScan = exports.startScan = exports.getAdapter = exports.connection_established_obj = exports.reinit = void 0;
|
|
7
10
|
const node_ble_1 = require("node-ble");
|
|
8
11
|
const Bluetooth_client_1 = require("../Bluetooth-client");
|
|
12
|
+
const debug_1 = __importDefault(require("debug"));
|
|
13
|
+
// Create a logger with a specific namespace
|
|
14
|
+
const log = (0, debug_1.default)('binding-Bluetooth');
|
|
9
15
|
let ble = (0, node_ble_1.createBluetooth)();
|
|
10
16
|
let _bluetooth = ble.bluetooth;
|
|
11
17
|
let _destroy = ble.destroy;
|
|
@@ -16,7 +22,7 @@ const reinit = () => {
|
|
|
16
22
|
_bluetooth = ble.bluetooth;
|
|
17
23
|
_destroy = ble.destroy;
|
|
18
24
|
_destroyed = false;
|
|
19
|
-
|
|
25
|
+
log('BLE reinitialized');
|
|
20
26
|
};
|
|
21
27
|
exports.reinit = reinit;
|
|
22
28
|
// internal helper to ensure connection is alive
|
|
@@ -43,10 +49,10 @@ const startScan = async function () {
|
|
|
43
49
|
const adapter = await (0, exports.getAdapter)();
|
|
44
50
|
if (!(await adapter.isDiscovering())) {
|
|
45
51
|
await adapter.startDiscovery();
|
|
46
|
-
|
|
52
|
+
log('Scanning started');
|
|
47
53
|
}
|
|
48
54
|
else {
|
|
49
|
-
|
|
55
|
+
log('Scanning already in progress');
|
|
50
56
|
}
|
|
51
57
|
};
|
|
52
58
|
exports.startScan = startScan;
|
|
@@ -57,10 +63,10 @@ const stopScan = async function () {
|
|
|
57
63
|
const adapter = await (0, exports.getAdapter)();
|
|
58
64
|
if (await adapter.isDiscovering()) {
|
|
59
65
|
await adapter.stopDiscovery();
|
|
60
|
-
|
|
66
|
+
log('Scanning stopped');
|
|
61
67
|
}
|
|
62
68
|
else {
|
|
63
|
-
|
|
69
|
+
log('Scanning already stopped');
|
|
64
70
|
}
|
|
65
71
|
};
|
|
66
72
|
exports.stopScan = stopScan;
|
|
@@ -81,10 +87,10 @@ exports.getAdapterStatus = getAdapterStatus;
|
|
|
81
87
|
const getDeviceById = async function (id, timeoutMs = 15000) {
|
|
82
88
|
const adapter = await (0, exports.getAdapter)();
|
|
83
89
|
// race waitDevice against timeout
|
|
84
|
-
return await Promise.race([
|
|
90
|
+
return (await Promise.race([
|
|
85
91
|
adapter.waitDevice(id),
|
|
86
92
|
new Promise((_, rej) => setTimeout(() => rej(new Error(`Bluetooth device ${id} wasn't found within ${timeoutMs}ms`)), timeoutMs)),
|
|
87
|
-
]); // node-ble device
|
|
93
|
+
])); // node-ble device
|
|
88
94
|
};
|
|
89
95
|
exports.getDeviceById = getDeviceById;
|
|
90
96
|
/**
|
|
@@ -103,7 +109,7 @@ const connect = async function (id) {
|
|
|
103
109
|
if (!discovering)
|
|
104
110
|
await (0, exports.startScan)();
|
|
105
111
|
const device = await (0, exports.getDeviceById)(id);
|
|
106
|
-
|
|
112
|
+
log(`Connecting to Device ${id}`);
|
|
107
113
|
await device.connect();
|
|
108
114
|
const gattServer = await device.gatt();
|
|
109
115
|
// stop scanning once connected
|
|
@@ -155,7 +161,7 @@ const getCharacteristic = async function (id, serviceUUID, characteristicUUID) {
|
|
|
155
161
|
return;
|
|
156
162
|
try {
|
|
157
163
|
const characteristic = await service.getCharacteristic(characteristicUUID.toLowerCase());
|
|
158
|
-
|
|
164
|
+
log(`Got characteristic ${characteristicUUID} from service ${serviceUUID} of Device ${id}`);
|
|
159
165
|
return characteristic;
|
|
160
166
|
}
|
|
161
167
|
catch (error) {
|
|
@@ -191,7 +197,7 @@ const disconnectByMac = async function (id) {
|
|
|
191
197
|
if (entry) {
|
|
192
198
|
const device = entry[0];
|
|
193
199
|
await device.disconnect();
|
|
194
|
-
|
|
200
|
+
log('Disconnecting from Device:', id);
|
|
195
201
|
delete exports.connection_established_obj[id];
|
|
196
202
|
}
|
|
197
203
|
};
|
|
@@ -201,7 +207,7 @@ exports.disconnectByMac = disconnectByMac;
|
|
|
201
207
|
*/
|
|
202
208
|
const disconnectAll = async function () {
|
|
203
209
|
for (const [key, value] of Object.entries(exports.connection_established_obj)) {
|
|
204
|
-
|
|
210
|
+
log('Disconnecting from Device:', key);
|
|
205
211
|
await value[0].disconnect();
|
|
206
212
|
}
|
|
207
213
|
for (const key in exports.connection_established_obj) {
|
|
@@ -221,7 +227,7 @@ const close = async function () {
|
|
|
221
227
|
}
|
|
222
228
|
}
|
|
223
229
|
catch (e) {
|
|
224
|
-
|
|
230
|
+
log('stopScan failed (ignoring):', e);
|
|
225
231
|
}
|
|
226
232
|
await (0, exports.disconnectAll)();
|
|
227
233
|
// tear down node-ble (closes DBus)
|
|
@@ -232,7 +238,7 @@ const close = async function () {
|
|
|
232
238
|
}
|
|
233
239
|
finally {
|
|
234
240
|
_destroyed = true;
|
|
235
|
-
|
|
241
|
+
log('BLE destroyed');
|
|
236
242
|
}
|
|
237
243
|
};
|
|
238
244
|
exports.close = close;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bluetooth_lib.js","sourceRoot":"","sources":["../../src/bluetooth/Bluetooth_lib.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"Bluetooth_lib.js","sourceRoot":"","sources":["../../src/bluetooth/Bluetooth_lib.ts"],"names":[],"mappings":"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"}
|
package/dist/codec.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.BLEBinaryCodec = void 0;
|
|
4
7
|
const UriTemplate = require('uritemplate');
|
|
8
|
+
const debug_1 = __importDefault(require("debug"));
|
|
9
|
+
// Create a logger with a specific namespace
|
|
10
|
+
const log = (0, debug_1.default)('binding-Bluetooth');
|
|
5
11
|
class BLEBinaryCodec {
|
|
6
12
|
getMediaType() {
|
|
7
13
|
return 'application/x.binary-data-stream';
|
|
@@ -65,13 +71,34 @@ class BLEBinaryCodec {
|
|
|
65
71
|
}
|
|
66
72
|
// Convert value to bytes
|
|
67
73
|
valueToBytes(dataValue, schema, parameters) {
|
|
74
|
+
log('Writing Value:', dataValue);
|
|
68
75
|
let buf;
|
|
69
76
|
let hexString;
|
|
77
|
+
//console.log(schema);
|
|
78
|
+
//console.log(dataValue);
|
|
70
79
|
// Check if pattern is provieded and fill in
|
|
71
80
|
if (typeof schema['bdo:pattern'] != 'undefined') {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
if (schema.type == 'integer') {
|
|
82
|
+
const hexBuffer = int2byte(schema, dataValue);
|
|
83
|
+
// Split buffer at "{"
|
|
84
|
+
const splitPattern = schema['bdo:pattern'].split('{');
|
|
85
|
+
if (splitPattern.length != 2) {
|
|
86
|
+
throw new Error('To many placeholders for input type!');
|
|
87
|
+
}
|
|
88
|
+
const before = schema['bdo:pattern'].split('{')[0];
|
|
89
|
+
const after = schema['bdo:pattern'].split('}')[1];
|
|
90
|
+
const buf = Buffer.concat([
|
|
91
|
+
hexToBuffer(before),
|
|
92
|
+
hexBuffer,
|
|
93
|
+
hexToBuffer(after),
|
|
94
|
+
]);
|
|
95
|
+
return buf;
|
|
96
|
+
}
|
|
97
|
+
if (schema.type == 'object') {
|
|
98
|
+
// If string Pattern is provided
|
|
99
|
+
hexString = fillStringPattern(schema, dataValue);
|
|
100
|
+
return hexToBuffer(hexString);
|
|
101
|
+
}
|
|
75
102
|
}
|
|
76
103
|
// Else create buffer without pattern
|
|
77
104
|
else {
|
|
@@ -81,7 +108,12 @@ class BLEBinaryCodec {
|
|
|
81
108
|
buf = int2byte(schema, dataValue);
|
|
82
109
|
break;
|
|
83
110
|
case 'string':
|
|
84
|
-
|
|
111
|
+
if (schema.format == 'hex') {
|
|
112
|
+
buf = Buffer.from(dataValue, 'hex');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
buf = string2byte(schema, dataValue);
|
|
116
|
+
}
|
|
85
117
|
break;
|
|
86
118
|
}
|
|
87
119
|
}
|
|
@@ -220,7 +252,7 @@ function fillStringPattern(schema, dataValue) {
|
|
|
220
252
|
let key;
|
|
221
253
|
let params;
|
|
222
254
|
// Iterate over provided parameters and convert to hex string
|
|
223
|
-
for ([key, params] of Object.entries(schema
|
|
255
|
+
for ([key, params] of Object.entries(schema.properties)) {
|
|
224
256
|
// Convert integer values to hex string
|
|
225
257
|
if (params.type == 'integer') {
|
|
226
258
|
let buf = int2byte(params, dataValue[key]);
|
|
@@ -256,4 +288,7 @@ function byte2string(schema, bytes) {
|
|
|
256
288
|
}
|
|
257
289
|
return value;
|
|
258
290
|
}
|
|
291
|
+
function hexToBuffer(hex) {
|
|
292
|
+
return Buffer.from(hex, 'hex');
|
|
293
|
+
}
|
|
259
294
|
//# sourceMappingURL=codec.js.map
|
package/dist/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import BluetoothClientFactory from
|
|
1
|
+
import BluetoothClientFactory from './Bluetooth-client-factory';
|
|
2
|
+
import { enableAutoDisconnect, disableAutoDisconnect } from './Bluetooth-client';
|
|
3
|
+
import { close } from './bluetooth/Bluetooth_lib';
|
|
2
4
|
export default BluetoothClientFactory;
|
|
3
|
-
export { BluetoothClientFactory };
|
|
5
|
+
export { BluetoothClientFactory, enableAutoDisconnect, disableAutoDisconnect, close, };
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BluetoothClientFactory = void 0;
|
|
6
|
+
exports.close = exports.disableAutoDisconnect = exports.enableAutoDisconnect = exports.BluetoothClientFactory = void 0;
|
|
7
7
|
const Bluetooth_client_factory_1 = __importDefault(require("./Bluetooth-client-factory"));
|
|
8
8
|
exports.BluetoothClientFactory = Bluetooth_client_factory_1.default;
|
|
9
|
+
const Bluetooth_client_1 = require("./Bluetooth-client");
|
|
10
|
+
Object.defineProperty(exports, "enableAutoDisconnect", { enumerable: true, get: function () { return Bluetooth_client_1.enableAutoDisconnect; } });
|
|
11
|
+
Object.defineProperty(exports, "disableAutoDisconnect", { enumerable: true, get: function () { return Bluetooth_client_1.disableAutoDisconnect; } });
|
|
12
|
+
const Bluetooth_lib_1 = require("./bluetooth/Bluetooth_lib");
|
|
13
|
+
Object.defineProperty(exports, "close", { enumerable: true, get: function () { return Bluetooth_lib_1.close; } });
|
|
9
14
|
exports.default = Bluetooth_client_factory_1.default;
|
|
10
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0FAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,0FAAgE;AAM9D,iCANK,kCAAsB,CAML;AALxB,yDAA+E;AAM7E,qGANM,uCAAoB,OAMN;AACpB,sGAP4B,wCAAqB,OAO5B;AANvB,6DAAgD;AAO9C,sFAPM,qBAAK,OAON;AALP,kBAAe,kCAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wot-ble-client-factory",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Bluetooth LE client factory for node-wot Servient",
|
|
5
5
|
"author": "Michael Freund",
|
|
6
6
|
"license": "AGPL-3.0",
|
|
@@ -28,9 +28,12 @@
|
|
|
28
28
|
"@node-wot/core": "^0.9.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"
|
|
31
|
+
"debug": "^4.4.3",
|
|
32
|
+
"node-ble": "^1.13.0",
|
|
33
|
+
"wot-ble-client-factory": "^0.1.1"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
36
|
+
"@types/debug": "^4.1.12",
|
|
34
37
|
"@types/node": "^24.3.0",
|
|
35
38
|
"typescript": "^5.9.2"
|
|
36
39
|
}
|