@robotical/raftjs 1.4.6 → 2.0.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/dist/react-native/RaftAttributeHandler.d.ts +2 -0
- package/dist/react-native/RaftAttributeHandler.js +136 -10
- package/dist/react-native/RaftAttributeHandler.js.map +1 -1
- package/dist/react-native/RaftChannel.d.ts +2 -0
- package/dist/react-native/RaftChannelBLE.native.d.ts +2 -0
- package/dist/react-native/RaftChannelBLE.native.js +17 -9
- package/dist/react-native/RaftChannelBLE.native.js.map +1 -1
- package/dist/react-native/RaftChannelBLE.web.d.ts +2 -0
- package/dist/react-native/RaftChannelBLE.web.js +24 -15
- package/dist/react-native/RaftChannelBLE.web.js.map +1 -1
- package/dist/react-native/RaftChannelSimulated.d.ts +32 -0
- package/dist/react-native/RaftChannelSimulated.js +418 -0
- package/dist/react-native/RaftChannelSimulated.js.map +1 -0
- package/dist/react-native/RaftChannelWebSerial.d.ts +2 -0
- package/dist/react-native/RaftChannelWebSerial.js +18 -9
- package/dist/react-native/RaftChannelWebSerial.js.map +1 -1
- package/dist/react-native/RaftChannelWebSocket.d.ts +2 -0
- package/dist/react-native/RaftChannelWebSocket.js +10 -0
- package/dist/react-native/RaftChannelWebSocket.js.map +1 -1
- package/dist/react-native/RaftConnector.js +13 -6
- package/dist/react-native/RaftConnector.js.map +1 -1
- package/dist/react-native/RaftCustomAttrHandler.js +15 -0
- package/dist/react-native/RaftCustomAttrHandler.js.map +1 -1
- package/dist/react-native/RaftDeviceInfo.d.ts +8 -1
- package/dist/react-native/RaftDeviceManager.d.ts +3 -0
- package/dist/react-native/RaftDeviceManager.js +123 -43
- package/dist/react-native/RaftDeviceManager.js.map +1 -1
- package/dist/react-native/RaftFileHandler.js +8 -8
- package/dist/react-native/RaftFileHandler.js.map +1 -1
- package/dist/react-native/RaftLog.js +1 -1
- package/dist/react-native/RaftLog.js.map +1 -1
- package/dist/react-native/RaftMsgHandler.d.ts +5 -0
- package/dist/react-native/RaftMsgHandler.js +32 -0
- package/dist/react-native/RaftMsgHandler.js.map +1 -1
- package/dist/react-native/RaftStreamHandler.js +6 -5
- package/dist/react-native/RaftStreamHandler.js.map +1 -1
- package/dist/react-native/RaftStruct.js +1 -1
- package/dist/react-native/RaftStruct.js.map +1 -1
- package/dist/react-native/RaftSysTypeManager.d.ts +2 -0
- package/dist/react-native/RaftSysTypeManager.js +25 -0
- package/dist/react-native/RaftSysTypeManager.js.map +1 -1
- package/dist/react-native/RaftSystemType.d.ts +9 -7
- package/dist/react-native/RaftSystemUtils.js +3 -1
- package/dist/react-native/RaftSystemUtils.js.map +1 -1
- package/dist/react-native/RaftUpdateManager.js +2 -2
- package/dist/react-native/RaftUpdateManager.js.map +1 -1
- package/dist/react-native/RaftUtils.d.ts +2 -0
- package/dist/react-native/RaftUtils.js +22 -2
- package/dist/react-native/RaftUtils.js.map +1 -1
- package/dist/react-native/main.d.ts +2 -0
- package/dist/react-native/main.js +4 -1
- package/dist/react-native/main.js.map +1 -1
- package/dist/web/RaftAttributeHandler.d.ts +2 -0
- package/dist/web/RaftAttributeHandler.js +136 -10
- package/dist/web/RaftAttributeHandler.js.map +1 -1
- package/dist/web/RaftChannel.d.ts +2 -0
- package/dist/web/RaftChannelBLE.web.d.ts +2 -0
- package/dist/web/RaftChannelBLE.web.js +24 -15
- package/dist/web/RaftChannelBLE.web.js.map +1 -1
- package/dist/web/RaftChannelSimulated.d.ts +32 -0
- package/dist/web/RaftChannelSimulated.js +418 -0
- package/dist/web/RaftChannelSimulated.js.map +1 -0
- package/dist/web/RaftChannelWebSerial.d.ts +2 -0
- package/dist/web/RaftChannelWebSerial.js +18 -9
- package/dist/web/RaftChannelWebSerial.js.map +1 -1
- package/dist/web/RaftChannelWebSocket.d.ts +2 -0
- package/dist/web/RaftChannelWebSocket.js +10 -0
- package/dist/web/RaftChannelWebSocket.js.map +1 -1
- package/dist/web/RaftConnector.js +13 -6
- package/dist/web/RaftConnector.js.map +1 -1
- package/dist/web/RaftCustomAttrHandler.js +15 -0
- package/dist/web/RaftCustomAttrHandler.js.map +1 -1
- package/dist/web/RaftDeviceInfo.d.ts +8 -1
- package/dist/web/RaftDeviceManager.d.ts +3 -0
- package/dist/web/RaftDeviceManager.js +123 -43
- package/dist/web/RaftDeviceManager.js.map +1 -1
- package/dist/web/RaftFileHandler.js +8 -8
- package/dist/web/RaftFileHandler.js.map +1 -1
- package/dist/web/RaftLog.js +1 -1
- package/dist/web/RaftLog.js.map +1 -1
- package/dist/web/RaftMsgHandler.d.ts +5 -0
- package/dist/web/RaftMsgHandler.js +32 -0
- package/dist/web/RaftMsgHandler.js.map +1 -1
- package/dist/web/RaftStreamHandler.js +6 -5
- package/dist/web/RaftStreamHandler.js.map +1 -1
- package/dist/web/RaftStruct.js +1 -1
- package/dist/web/RaftStruct.js.map +1 -1
- package/dist/web/RaftSysTypeManager.d.ts +2 -0
- package/dist/web/RaftSysTypeManager.js +25 -0
- package/dist/web/RaftSysTypeManager.js.map +1 -1
- package/dist/web/RaftSystemType.d.ts +9 -7
- package/dist/web/RaftSystemUtils.js +3 -1
- package/dist/web/RaftSystemUtils.js.map +1 -1
- package/dist/web/RaftUpdateManager.js +2 -2
- package/dist/web/RaftUpdateManager.js.map +1 -1
- package/dist/web/RaftUtils.d.ts +2 -0
- package/dist/web/RaftUtils.js +22 -2
- package/dist/web/RaftUtils.js.map +1 -1
- package/dist/web/main.d.ts +2 -0
- package/dist/web/main.js +4 -1
- package/dist/web/main.js.map +1 -1
- package/examples/dashboard/package.json +1 -1
- package/examples/dashboard/src/CommandPanel.tsx +3 -3
- package/examples/dashboard/src/ConnManager.ts +83 -6
- package/examples/dashboard/src/DeviceActionsForm.tsx +2 -2
- package/examples/dashboard/src/DevicePanel.tsx +2 -2
- package/examples/dashboard/src/Main.tsx +14 -4
- package/examples/dashboard/src/SystemTypeMarty/RICSystemUtils.ts +4 -4
- package/examples/dashboard/src/styles.css +8 -0
- package/examples/dashboard/tsconfig.json +1 -1
- package/package.json +10 -11
- package/src/RaftAttributeHandler.ts +163 -11
- package/src/RaftChannel.ts +2 -0
- package/src/RaftChannelBLE.native.ts +20 -10
- package/src/RaftChannelBLE.web.ts +28 -16
- package/src/RaftChannelSimulated.ts +482 -0
- package/src/RaftChannelWebSerial.ts +18 -7
- package/src/RaftChannelWebSocket.ts +13 -0
- package/src/RaftConnector.ts +13 -7
- package/src/RaftCustomAttrHandler.ts +17 -0
- package/src/RaftDeviceInfo.ts +8 -2
- package/src/RaftDeviceManager.ts +155 -47
- package/src/RaftFileHandler.ts +8 -8
- package/src/RaftLog.ts +1 -1
- package/src/RaftMsgHandler.ts +36 -0
- package/src/RaftStreamHandler.ts +48 -47
- package/src/RaftStruct.ts +1 -1
- package/src/RaftSysTypeManager.ts +27 -0
- package/src/RaftSystemType.ts +9 -7
- package/src/RaftSystemUtils.ts +3 -1
- package/src/RaftUpdateManager.ts +2 -2
- package/src/RaftUtils.ts +25 -5
- package/src/main.ts +2 -0
|
@@ -55,15 +55,12 @@ class RaftChannelBLE {
|
|
|
55
55
|
}
|
|
56
56
|
// RICREST command before disconnect
|
|
57
57
|
ricRestCmdBeforeDisconnect() {
|
|
58
|
-
|
|
59
|
-
// suggested fix: allow callaback command to be sent after disconnect on the fw side
|
|
60
|
-
// return "blerestart";
|
|
61
|
-
return null;
|
|
58
|
+
return "bledisconnect";
|
|
62
59
|
}
|
|
63
60
|
// isEnabled
|
|
64
61
|
isEnabled() {
|
|
65
62
|
if (navigator.bluetooth) {
|
|
66
|
-
RaftLog_1.default.
|
|
63
|
+
RaftLog_1.default.warn("Web Bluetooth is supported in your browser.");
|
|
67
64
|
return true;
|
|
68
65
|
}
|
|
69
66
|
else {
|
|
@@ -84,7 +81,7 @@ class RaftChannelBLE {
|
|
|
84
81
|
onDisconnected(event) {
|
|
85
82
|
const device = event.target;
|
|
86
83
|
RaftLog_1.default.debug(`RaftChannelBLE.onDisconnected ${device.name}`);
|
|
87
|
-
if (this._bleDevice) {
|
|
84
|
+
if (this._bleDevice && this._eventListenerFn) {
|
|
88
85
|
this._bleDevice.removeEventListener("gattserverdisconnected", this._eventListenerFn);
|
|
89
86
|
}
|
|
90
87
|
this._isConnected = false;
|
|
@@ -127,7 +124,7 @@ class RaftChannelBLE {
|
|
|
127
124
|
}
|
|
128
125
|
}
|
|
129
126
|
if (!service) {
|
|
130
|
-
RaftLog_1.default.
|
|
127
|
+
RaftLog_1.default.warn(`RaftChannelBLE.connect - cannot get primary service - giving up`);
|
|
131
128
|
return false;
|
|
132
129
|
}
|
|
133
130
|
RaftLog_1.default.debug(`RaftChannelBLE.connect - found service: ${service.uuid}`);
|
|
@@ -156,12 +153,12 @@ class RaftChannelBLE {
|
|
|
156
153
|
return true;
|
|
157
154
|
}
|
|
158
155
|
catch (error) {
|
|
159
|
-
RaftLog_1.default.
|
|
156
|
+
RaftLog_1.default.warn(`RaftChannelBLE.connect - cannot find characteristic: ${error}`);
|
|
160
157
|
}
|
|
161
158
|
}
|
|
162
159
|
catch (error) {
|
|
163
160
|
if (connRetry === this._maxConnRetries - 1) {
|
|
164
|
-
RaftLog_1.default.
|
|
161
|
+
RaftLog_1.default.warn(`RaftChannelBLE.connect - cannot get primary service ${error} - attempt #${connRetry + 1} - giving up`);
|
|
165
162
|
}
|
|
166
163
|
else {
|
|
167
164
|
RaftLog_1.default.debug(`RaftChannelBLE.connect - cannot get primary service - attempt #${connRetry + 1} ${error}`);
|
|
@@ -240,14 +237,15 @@ class RaftChannelBLE {
|
|
|
240
237
|
// Write to the characteristic
|
|
241
238
|
try {
|
|
242
239
|
if (this._characteristicTx) {
|
|
240
|
+
const bs = RaftUtils_1.default.toBufferSource(msg);
|
|
243
241
|
if (this._characteristicTx.writeValueWithoutResponse) {
|
|
244
|
-
await this._characteristicTx.writeValueWithoutResponse(
|
|
242
|
+
await this._characteristicTx.writeValueWithoutResponse(bs);
|
|
245
243
|
}
|
|
246
244
|
else if (this._characteristicTx.writeValue) {
|
|
247
|
-
await this._characteristicTx.writeValue(
|
|
245
|
+
await this._characteristicTx.writeValue(bs);
|
|
248
246
|
}
|
|
249
247
|
else if (this._characteristicTx.writeValueWithResponse) {
|
|
250
|
-
await this._characteristicTx.writeValueWithResponse(
|
|
248
|
+
await this._characteristicTx.writeValueWithResponse(bs);
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
251
|
break;
|
|
@@ -275,19 +273,30 @@ class RaftChannelBLE {
|
|
|
275
273
|
this._msgTxTimeLast = Date.now();
|
|
276
274
|
// Write to the characteristic
|
|
277
275
|
if (this._characteristicTx) {
|
|
276
|
+
const bs = RaftUtils_1.default.toBufferSource(msg);
|
|
278
277
|
if (this._characteristicTx.writeValueWithoutResponse) {
|
|
279
|
-
this._characteristicTx.writeValueWithoutResponse(
|
|
278
|
+
this._characteristicTx.writeValueWithoutResponse(bs);
|
|
280
279
|
}
|
|
281
280
|
else if (this._characteristicTx.writeValue) {
|
|
282
|
-
this._characteristicTx.writeValue(
|
|
281
|
+
this._characteristicTx.writeValue(bs);
|
|
283
282
|
}
|
|
284
283
|
else if (this._characteristicTx.writeValueWithResponse) {
|
|
285
|
-
this._characteristicTx.writeValueWithResponse(
|
|
284
|
+
this._characteristicTx.writeValueWithResponse(bs);
|
|
286
285
|
}
|
|
287
286
|
return true;
|
|
288
287
|
}
|
|
289
288
|
return false;
|
|
290
289
|
}
|
|
290
|
+
// Method used for testing and simulation should never be called
|
|
291
|
+
sendTxMsgRaw() {
|
|
292
|
+
RaftLog_1.default.debug(`sendTxMsgRaw - not implemented`);
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
// Method used for testing and simulation should never be called
|
|
296
|
+
sendTxMsgRawAndWaitForReply() {
|
|
297
|
+
RaftLog_1.default.debug(`sendTxMsgRawAndWaitForReply - not implemented`);
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
291
300
|
}
|
|
292
301
|
exports.default = RaftChannelBLE;
|
|
293
302
|
//# sourceMappingURL=RaftChannelBLE.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RaftChannelBLE.web.js","sourceRoot":"","sources":["../../src/RaftChannelBLE.web.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,iBAAiB;AACjB,iBAAiB;AACjB,EAAE;AACF,wCAAwC;AACxC,oCAAoC;AACpC,EAAE;AACF,iHAAiH;;;AAGjH,qDAAkE;AAClE,gEAAgC;AAGhC,oEAAoC;AAEpC,MAAqB,cAAc;IAAnC;QAEE,qCAAqC;QACrC,aAAQ,GAAG,sCAAsC,CAAC;QAClD,cAAS,GAAG,sCAAsC,CAAC;QACnD,kBAAa,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC,CAAC;QAEjG,6BAA6B;QACrB,eAAU,GAA2B,IAAI,CAAC;QAC1C,sBAAiB,GAA6C,IAAI,CAAC;QACnE,sBAAiB,GAA6C,IAAI,CAAC;QAE3E,kBAAkB;QACV,oBAAe,GAA0B,IAAI,CAAC;QAEtD,gBAAgB;QACR,iBAAY,GAA2B,IAAI,CAAC;QAEpD,uBAAuB;QACf,mBAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,2BAAsB,GAAG,CAAC,CAAC;QAClB,eAAU,GAAG,CAAC,CAAC;QAEhC,6BAA6B;QACrB,iBAAY,GAAG,KAAK,CAAC;QACZ,oBAAe,GAAG,CAAC,CAAC;QAErC,oBAAoB;QACZ,qBAAgB,GAAoC,IAAI,CAAC;QAEjE,0BAA0B;QAClB,2BAAsB,GAAG,EAAE,CAAC;QAC5B,4BAAuB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"RaftChannelBLE.web.js","sourceRoot":"","sources":["../../src/RaftChannelBLE.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import RaftChannel from "./RaftChannel";
|
|
2
|
+
import RaftMsgHandler from "./RaftMsgHandler";
|
|
3
|
+
import { RaftConnEventFn } from "./RaftConnEvents";
|
|
4
|
+
import { ConnectorOptions } from "./RaftSystemType";
|
|
5
|
+
export default class RaftChannelSimulated implements RaftChannel {
|
|
6
|
+
private _raftMsgHandler;
|
|
7
|
+
private _isConnected;
|
|
8
|
+
private _simulatedDeviceInfo;
|
|
9
|
+
private _simulatedDeviceInfoTimers;
|
|
10
|
+
private _simulatedDeviceInfoTimeMs;
|
|
11
|
+
private _onConnEvent;
|
|
12
|
+
private _requestedBatchAckSize;
|
|
13
|
+
private _requestedFileBlockSize;
|
|
14
|
+
fhBatchAckSize(): number;
|
|
15
|
+
fhFileBlockSize(): number;
|
|
16
|
+
isConnected(): boolean;
|
|
17
|
+
setMsgHandler(raftMsgHandler: RaftMsgHandler): void;
|
|
18
|
+
requiresSubscription(): boolean;
|
|
19
|
+
ricRestCmdBeforeDisconnect(): string | null;
|
|
20
|
+
setOnConnEvent(connEventFn: RaftConnEventFn): void;
|
|
21
|
+
getConnectedLocator(): string | object;
|
|
22
|
+
connect(locator: string | object, connectorOptions: ConnectorOptions): Promise<boolean>;
|
|
23
|
+
disconnect(): Promise<void>;
|
|
24
|
+
pauseConnection(pause: boolean): void;
|
|
25
|
+
sendTxMsg(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
|
|
26
|
+
sendTxMsgNoAwait(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
|
|
27
|
+
sendTxMsgRaw(msg: string): boolean;
|
|
28
|
+
sendTxMsgRawAndWaitForReply<T>(msgPayload: Uint8Array): T;
|
|
29
|
+
private _createSimulatedDeviceInfoMsg;
|
|
30
|
+
private _bytesToHexStr;
|
|
31
|
+
private _deviceTypeInfo;
|
|
32
|
+
}
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
3
|
+
//
|
|
4
|
+
// RaftChannelSimulated.ts
|
|
5
|
+
// Part of RaftJS
|
|
6
|
+
//
|
|
7
|
+
// Rob Dobson 2020-2025
|
|
8
|
+
// (C) 2020-2025 All rights reserved
|
|
9
|
+
//
|
|
10
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const tslib_1 = require("tslib");
|
|
13
|
+
const RaftLog_1 = tslib_1.__importDefault(require("./RaftLog"));
|
|
14
|
+
const RaftConnEvents_1 = require("./RaftConnEvents");
|
|
15
|
+
const RaftProtocolDefs_1 = require("./RaftProtocolDefs");
|
|
16
|
+
class RaftChannelSimulated {
|
|
17
|
+
constructor() {
|
|
18
|
+
// Message handler
|
|
19
|
+
this._raftMsgHandler = null;
|
|
20
|
+
// Is connected
|
|
21
|
+
this._isConnected = false;
|
|
22
|
+
// Simulated device name and rate
|
|
23
|
+
this._simulatedDeviceInfo = null;
|
|
24
|
+
// Simulated device information timer
|
|
25
|
+
this._simulatedDeviceInfoTimers = null;
|
|
26
|
+
this._simulatedDeviceInfoTimeMs = [];
|
|
27
|
+
// Conn event fn
|
|
28
|
+
this._onConnEvent = null;
|
|
29
|
+
// File Handler parameters
|
|
30
|
+
this._requestedBatchAckSize = 10;
|
|
31
|
+
this._requestedFileBlockSize = 500;
|
|
32
|
+
// Simulated device type information - this is a copy of part of DeviceTypeInfo in RaftCore
|
|
33
|
+
this._deviceTypeInfo = {
|
|
34
|
+
"LSM6DS": {
|
|
35
|
+
"name": "LSM6DS",
|
|
36
|
+
"desc": "6-Axis IMU",
|
|
37
|
+
"manu": "ST",
|
|
38
|
+
"type": "LSM6DS",
|
|
39
|
+
"clas": ["ACC", "GYRO"],
|
|
40
|
+
"resp": {
|
|
41
|
+
"b": 12,
|
|
42
|
+
"a": [
|
|
43
|
+
{
|
|
44
|
+
"n": "gx",
|
|
45
|
+
"t": "<h",
|
|
46
|
+
"u": "°/s",
|
|
47
|
+
"r": [-2000, 2000],
|
|
48
|
+
"d": 16.384,
|
|
49
|
+
"f": ".2f",
|
|
50
|
+
"o": "float"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"n": "gy",
|
|
54
|
+
"t": "<h",
|
|
55
|
+
"u": "°/s",
|
|
56
|
+
"r": [-2000, 2000],
|
|
57
|
+
"d": 16.384,
|
|
58
|
+
"f": ".2f",
|
|
59
|
+
"o": "float"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"n": "gz",
|
|
63
|
+
"t": "<h",
|
|
64
|
+
"u": "°/s",
|
|
65
|
+
"r": [-2000, 2000],
|
|
66
|
+
"d": 16.384,
|
|
67
|
+
"f": ".2f",
|
|
68
|
+
"o": "float"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"n": "ax",
|
|
72
|
+
"t": "<h",
|
|
73
|
+
"u": "g",
|
|
74
|
+
"r": [-4.0, 4.0],
|
|
75
|
+
"d": 8192,
|
|
76
|
+
"f": ".2f",
|
|
77
|
+
"o": "float"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"n": "ay",
|
|
81
|
+
"t": "<h",
|
|
82
|
+
"u": "g",
|
|
83
|
+
"r": [-4.0, 4.0],
|
|
84
|
+
"d": 8192,
|
|
85
|
+
"f": ".2f",
|
|
86
|
+
"o": "float"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"n": "az",
|
|
90
|
+
"t": "<h",
|
|
91
|
+
"u": "g",
|
|
92
|
+
"r": [-4.0, 4.0],
|
|
93
|
+
"d": 8192,
|
|
94
|
+
"f": ".2f",
|
|
95
|
+
"o": "float"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
fhBatchAckSize() { return this._requestedBatchAckSize; }
|
|
103
|
+
fhFileBlockSize() { return this._requestedFileBlockSize; }
|
|
104
|
+
// isConnected
|
|
105
|
+
isConnected() {
|
|
106
|
+
return this._isConnected;
|
|
107
|
+
}
|
|
108
|
+
// Set message handler
|
|
109
|
+
setMsgHandler(raftMsgHandler) {
|
|
110
|
+
this._raftMsgHandler = raftMsgHandler;
|
|
111
|
+
this._raftMsgHandler.setRawMsgMode(true);
|
|
112
|
+
}
|
|
113
|
+
// WebSocket interfaces require subscription to published messages
|
|
114
|
+
requiresSubscription() {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
// RICREST command before disconnect
|
|
118
|
+
ricRestCmdBeforeDisconnect() {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
// Set onConnEvent handler
|
|
122
|
+
setOnConnEvent(connEventFn) {
|
|
123
|
+
this._onConnEvent = connEventFn;
|
|
124
|
+
}
|
|
125
|
+
// Get connected locator
|
|
126
|
+
getConnectedLocator() {
|
|
127
|
+
return "simulated";
|
|
128
|
+
}
|
|
129
|
+
// Connect to a device
|
|
130
|
+
async connect(locator, connectorOptions) {
|
|
131
|
+
// Debug
|
|
132
|
+
RaftLog_1.default.debug(`RaftChannelSimulated.connect connected ${locator.toString()} options ${JSON.stringify(connectorOptions)}`);
|
|
133
|
+
// Extract SimulatedDeviceInfo from JSON locator
|
|
134
|
+
if (typeof locator === 'string') {
|
|
135
|
+
try {
|
|
136
|
+
const parsedLocator = JSON.parse(locator);
|
|
137
|
+
if (parsedLocator && Array.isArray(parsedLocator)) {
|
|
138
|
+
this._simulatedDeviceInfo = parsedLocator;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
RaftLog_1.default.warn(`RaftChannelSimulated.connect - error parsing locator ${locator}`);
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Handle simulated devices
|
|
147
|
+
if (this._simulatedDeviceInfo) {
|
|
148
|
+
// Create timers for simulated devices
|
|
149
|
+
this._simulatedDeviceInfoTimers = [];
|
|
150
|
+
for (let i = 0; i < this._simulatedDeviceInfo.length; i++) {
|
|
151
|
+
const deviceInfo = this._simulatedDeviceInfo[i];
|
|
152
|
+
const deviceName = deviceInfo.name ? deviceInfo.name : `SimulatedDevice${i}`;
|
|
153
|
+
this._simulatedDeviceInfoTimeMs.push(0);
|
|
154
|
+
const deviceRate = deviceInfo.publishRatePerSecond ? deviceInfo.publishRatePerSecond : 1;
|
|
155
|
+
let deviceIntervalMs = 911;
|
|
156
|
+
if ((deviceRate > 0.01) && (deviceRate < 1000)) {
|
|
157
|
+
deviceIntervalMs = Math.floor(1000 / deviceRate);
|
|
158
|
+
}
|
|
159
|
+
const deviceTypeInfo = this._deviceTypeInfo[deviceName];
|
|
160
|
+
if (deviceTypeInfo) {
|
|
161
|
+
const timer = setInterval(() => {
|
|
162
|
+
var _a;
|
|
163
|
+
const msg = this._createSimulatedDeviceInfoMsg(deviceIntervalMs, deviceName, deviceTypeInfo, this._simulatedDeviceInfoTimeMs[i]);
|
|
164
|
+
(_a = this._raftMsgHandler) === null || _a === void 0 ? void 0 : _a.handleNewRxMsgRaw(msg, RaftProtocolDefs_1.RaftCommsMsgTypeCode.MSG_TYPE_PUBLISH, 0, this._simulatedDeviceInfoTimeMs[i]);
|
|
165
|
+
this._simulatedDeviceInfoTimeMs[i] += deviceIntervalMs;
|
|
166
|
+
}, deviceIntervalMs);
|
|
167
|
+
this._simulatedDeviceInfoTimers.push(timer);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
RaftLog_1.default.warn(`RaftChannelSimulated.connect - device type info not found for ${deviceName}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
RaftLog_1.default.warn(`RaftChannelSimulated.connect - no simulated devices found`);
|
|
176
|
+
}
|
|
177
|
+
// Connected
|
|
178
|
+
this._isConnected = true;
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
// Disconnect
|
|
182
|
+
async disconnect() {
|
|
183
|
+
// Not connected
|
|
184
|
+
this._isConnected = false;
|
|
185
|
+
// Clear timers
|
|
186
|
+
if (this._simulatedDeviceInfoTimers) {
|
|
187
|
+
for (const timer of this._simulatedDeviceInfoTimers) {
|
|
188
|
+
clearInterval(timer);
|
|
189
|
+
}
|
|
190
|
+
this._simulatedDeviceInfoTimers = null;
|
|
191
|
+
}
|
|
192
|
+
// Notify connection event
|
|
193
|
+
if (this._onConnEvent) {
|
|
194
|
+
this._onConnEvent(RaftConnEvents_1.RaftConnEvent.CONN_DISCONNECTED);
|
|
195
|
+
}
|
|
196
|
+
// Debug
|
|
197
|
+
RaftLog_1.default.debug(`RaftChannelSimulated.disconnect closed`);
|
|
198
|
+
}
|
|
199
|
+
pauseConnection(pause) {
|
|
200
|
+
RaftLog_1.default.debug(`pauseConnection ${pause} - no effect for this channel type`);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
// Send a message
|
|
204
|
+
async sendTxMsg(msg, sendWithResponse) {
|
|
205
|
+
// Check connected
|
|
206
|
+
if (!this._isConnected)
|
|
207
|
+
return false;
|
|
208
|
+
// Debug
|
|
209
|
+
RaftLog_1.default.debug(`RaftChannelSimulated.sendTxMsg ${msg.toString()} sendWithResp ${sendWithResponse.toString()}`);
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
async sendTxMsgNoAwait(msg, sendWithResponse) {
|
|
213
|
+
// Check connected
|
|
214
|
+
if (!this._isConnected)
|
|
215
|
+
return false;
|
|
216
|
+
// Debug
|
|
217
|
+
RaftLog_1.default.debug(`RaftChannelSimulated.sendTxMsgNoAwait ${msg.toString()} sendWithResp ${sendWithResponse.toString()}`);
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
// Method used for testing and simulation should never be called
|
|
221
|
+
sendTxMsgRaw(msg) {
|
|
222
|
+
RaftLog_1.default.debug(`sendTxMsgRaw - not implemented ${msg}`);
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
// Method used for testing and simulation should never be called
|
|
226
|
+
sendTxMsgRawAndWaitForReply(msgPayload) {
|
|
227
|
+
RaftLog_1.default.debug(`sendTxMsgRawAndWaitForReply ${msgPayload}`);
|
|
228
|
+
// Decode the message from Uint8Array to string
|
|
229
|
+
const textDecoder = new TextDecoder('utf-8');
|
|
230
|
+
const decodedString = textDecoder.decode(msgPayload.slice(1)).replace("\0", "").trim();
|
|
231
|
+
RaftLog_1.default.debug(`sendTxMsgRawAndWaitForReply ${decodedString}`);
|
|
232
|
+
// Check for version request
|
|
233
|
+
if (decodedString === "v") {
|
|
234
|
+
// R"({"req":"%s","rslt":"ok","SystemName":"%s","SystemVersion":"%s","Friendly":"%s","SerialNo":"%s","MAC":"%s",%s})",
|
|
235
|
+
const response = {
|
|
236
|
+
req: "v",
|
|
237
|
+
rslt: "ok",
|
|
238
|
+
SystemName: "Simulated",
|
|
239
|
+
SystemVersion: "1.0.0",
|
|
240
|
+
Friendly: "Simulated",
|
|
241
|
+
SerialNo: "123456",
|
|
242
|
+
MAC: "00:00:00:00:00:00"
|
|
243
|
+
};
|
|
244
|
+
return response;
|
|
245
|
+
}
|
|
246
|
+
else if (decodedString.startsWith("sub")) {
|
|
247
|
+
const response = {
|
|
248
|
+
req: decodedString,
|
|
249
|
+
rslt: "ok"
|
|
250
|
+
};
|
|
251
|
+
return response;
|
|
252
|
+
}
|
|
253
|
+
// Check if this is a device type info request
|
|
254
|
+
else if (decodedString.startsWith("devman/typeinfo?")) {
|
|
255
|
+
// Extract the type parameter from the request
|
|
256
|
+
const match = decodedString.match(/type=([^&]+)/);
|
|
257
|
+
if (match && match[1]) {
|
|
258
|
+
const deviceType = match[1];
|
|
259
|
+
// Look up the device type in the _deviceTypeInfo
|
|
260
|
+
if (deviceType in this._deviceTypeInfo) {
|
|
261
|
+
// Prepare response with the device type info
|
|
262
|
+
const response = {
|
|
263
|
+
req: decodedString,
|
|
264
|
+
rslt: "ok",
|
|
265
|
+
devinfo: this._deviceTypeInfo[deviceType]
|
|
266
|
+
};
|
|
267
|
+
RaftLog_1.default.debug(`Device type info for ${deviceType} found, returning response`);
|
|
268
|
+
return response;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// Device type not found
|
|
272
|
+
const response = {
|
|
273
|
+
req: decodedString,
|
|
274
|
+
rslt: "err",
|
|
275
|
+
msg: `Device type ${deviceType} not found`
|
|
276
|
+
};
|
|
277
|
+
RaftLog_1.default.warn(`Device type info for ${deviceType} not found`);
|
|
278
|
+
return response;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Unknown message
|
|
283
|
+
const response = {
|
|
284
|
+
req: decodedString,
|
|
285
|
+
rslt: "err",
|
|
286
|
+
msg: `Unknown request`
|
|
287
|
+
};
|
|
288
|
+
return response;
|
|
289
|
+
}
|
|
290
|
+
// Create simulated device info message
|
|
291
|
+
_createSimulatedDeviceInfoMsg(deviceIntervalMs, deviceName, deviceTypeInfo, deviceTimeMs) {
|
|
292
|
+
var _a;
|
|
293
|
+
// Make sure we have response metadata
|
|
294
|
+
if (!((_a = deviceTypeInfo === null || deviceTypeInfo === void 0 ? void 0 : deviceTypeInfo.resp) === null || _a === void 0 ? void 0 : _a.a)) {
|
|
295
|
+
return new Uint8Array(0);
|
|
296
|
+
}
|
|
297
|
+
const attributes = deviceTypeInfo.resp.a;
|
|
298
|
+
const dataBlockSizeBytes = deviceTypeInfo.resp.b;
|
|
299
|
+
// Create a buffer for the data
|
|
300
|
+
const dataBuffer = new ArrayBuffer(dataBlockSizeBytes + 2);
|
|
301
|
+
const dataView = new DataView(dataBuffer);
|
|
302
|
+
let bytePos = 0;
|
|
303
|
+
// Add 16 bit big endian deviceTimeMs mod 65536 to the buffer
|
|
304
|
+
dataView.setUint16(bytePos, deviceTimeMs % 65536, false);
|
|
305
|
+
bytePos += 2;
|
|
306
|
+
// Calculate sine wave with phase offsets for each attribute
|
|
307
|
+
const numAttributes = attributes.length;
|
|
308
|
+
// Adjust frequency based on the device interval with N samples per cycle
|
|
309
|
+
const numSamplesPerCycle = 10;
|
|
310
|
+
let frequencyHz = 0.1; // Default frequency in Hz
|
|
311
|
+
if (deviceIntervalMs > 0) {
|
|
312
|
+
frequencyHz = (1000 / deviceIntervalMs) / numSamplesPerCycle;
|
|
313
|
+
}
|
|
314
|
+
// Amplitude of the sine wave (0 to 1)
|
|
315
|
+
const amplitude = 0.8;
|
|
316
|
+
// Iterate through attributes and set values
|
|
317
|
+
for (let i = 0; i < numAttributes; i++) {
|
|
318
|
+
const attr = attributes[i];
|
|
319
|
+
// Calculate phase offset for this attribute
|
|
320
|
+
const phaseOffset = (2 * Math.PI * i) / numAttributes;
|
|
321
|
+
// Generate sine wave value
|
|
322
|
+
const timeRadians = deviceTimeMs * frequencyHz * (2 * Math.PI) / 1000;
|
|
323
|
+
const sinValue = Math.sin(timeRadians + phaseOffset);
|
|
324
|
+
// Scale the value to fit within the attribute's range
|
|
325
|
+
let scaledValue;
|
|
326
|
+
if (attr.r && attr.r.length >= 2) {
|
|
327
|
+
const minValue = attr.r[0];
|
|
328
|
+
const maxValue = attr.r[1];
|
|
329
|
+
const midPoint = (maxValue + minValue) / 2;
|
|
330
|
+
const range = (maxValue - minValue) / 2;
|
|
331
|
+
scaledValue = midPoint + sinValue * range * amplitude;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
// Default range if not specified
|
|
335
|
+
scaledValue = sinValue * 1000 * amplitude;
|
|
336
|
+
}
|
|
337
|
+
// Convert to raw integer value if needed
|
|
338
|
+
let rawValue = scaledValue;
|
|
339
|
+
if (attr.d) {
|
|
340
|
+
// Multiply by the divisor to get the raw value (reverse of what happens when decoding)
|
|
341
|
+
rawValue = scaledValue * attr.d;
|
|
342
|
+
}
|
|
343
|
+
// Write the value to the buffer based on its type
|
|
344
|
+
if (attr.t === "b") {
|
|
345
|
+
dataView.setUint8(bytePos, Math.round(rawValue));
|
|
346
|
+
bytePos += 1;
|
|
347
|
+
}
|
|
348
|
+
else if (attr.t === "B") {
|
|
349
|
+
dataView.setUint8(bytePos, Math.round(rawValue));
|
|
350
|
+
bytePos += 1;
|
|
351
|
+
}
|
|
352
|
+
else if (attr.t === "c") {
|
|
353
|
+
dataView.setInt8(bytePos, Math.round(rawValue));
|
|
354
|
+
bytePos += 1;
|
|
355
|
+
}
|
|
356
|
+
else if (attr.t === "C") {
|
|
357
|
+
dataView.setUint8(bytePos, Math.round(rawValue));
|
|
358
|
+
bytePos += 1;
|
|
359
|
+
}
|
|
360
|
+
else if (attr.t === "<h") {
|
|
361
|
+
dataView.setInt16(bytePos, Math.round(rawValue), true); // Little endian
|
|
362
|
+
bytePos += 2;
|
|
363
|
+
}
|
|
364
|
+
else if (attr.t === ">h") {
|
|
365
|
+
dataView.setInt16(bytePos, Math.round(rawValue), false); // Big endian
|
|
366
|
+
bytePos += 2;
|
|
367
|
+
}
|
|
368
|
+
else if (attr.t === "<H") {
|
|
369
|
+
dataView.setUint16(bytePos, Math.round(rawValue), true); // Little endian
|
|
370
|
+
bytePos += 2;
|
|
371
|
+
}
|
|
372
|
+
else if (attr.t === ">H") {
|
|
373
|
+
dataView.setUint16(bytePos, Math.round(rawValue), false); // Big endian
|
|
374
|
+
bytePos += 2;
|
|
375
|
+
}
|
|
376
|
+
else if (attr.t === "f" || attr.t === "<f") {
|
|
377
|
+
dataView.setFloat32(bytePos, rawValue, true); // Little endian
|
|
378
|
+
bytePos += 4;
|
|
379
|
+
}
|
|
380
|
+
else if (attr.t === ">f") {
|
|
381
|
+
dataView.setFloat32(bytePos, rawValue, false); // Big endian
|
|
382
|
+
bytePos += 4;
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
RaftLog_1.default.warn(`RaftChannelSimulated._createSimulatedDeviceInfoMsg - unsupported attribute type ${attr.t}`);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// Convert the buffer to a byte array
|
|
389
|
+
const dataBytes = new Uint8Array(dataBuffer);
|
|
390
|
+
// Create the JSON message structure
|
|
391
|
+
const message = {
|
|
392
|
+
"BUS1": {
|
|
393
|
+
[deviceName]: {
|
|
394
|
+
"_t": deviceTypeInfo.type,
|
|
395
|
+
"_o": 1, // Device is online
|
|
396
|
+
"pub": this._bytesToHexStr(dataBytes)
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
// Convert the JSON to a string and then to Uint8Array with prepended timestamp
|
|
401
|
+
const jsonString = JSON.stringify(message);
|
|
402
|
+
const encodedMsg = new TextEncoder().encode(jsonString);
|
|
403
|
+
const msgWithPrefix = new ArrayBuffer(2 + encodedMsg.byteLength);
|
|
404
|
+
const msgWithPrefixView = new DataView(msgWithPrefix);
|
|
405
|
+
const msgPrefixBytes = new Uint8Array(msgWithPrefix);
|
|
406
|
+
msgWithPrefixView.setUint16(0, 0, false);
|
|
407
|
+
msgPrefixBytes.set(encodedMsg, 2);
|
|
408
|
+
return msgPrefixBytes;
|
|
409
|
+
}
|
|
410
|
+
// Helper function to convert bytes to hex string
|
|
411
|
+
_bytesToHexStr(bytes) {
|
|
412
|
+
return Array.from(bytes)
|
|
413
|
+
.map(byte => byte.toString(16).padStart(2, '0'))
|
|
414
|
+
.join('');
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
exports.default = RaftChannelSimulated;
|
|
418
|
+
//# sourceMappingURL=RaftChannelSimulated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RaftChannelSimulated.js","sourceRoot":"","sources":["../../src/RaftChannelSimulated.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,4 +34,6 @@ export default class RaftChannelWebSerial implements RaftChannel {
|
|
|
34
34
|
sendTxMsg(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
|
|
35
35
|
sendTxMsgNoAwait(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>;
|
|
36
36
|
_readLoop(): Promise<void>;
|
|
37
|
+
sendTxMsgRaw(): boolean;
|
|
38
|
+
sendTxMsgRawAndWaitForReply<T>(): T;
|
|
37
39
|
}
|