@robdobsn/raftjs 1.1.1 → 1.3.2

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.
Files changed (257) hide show
  1. package/README.md +2 -0
  2. package/dist/{RaftAttributeHandler.js → react-native/RaftAttributeHandler.js} +1 -1
  3. package/dist/react-native/RaftAttributeHandler.js.map +1 -0
  4. package/dist/react-native/RaftChannel.js.map +1 -0
  5. package/dist/react-native/RaftChannelBLE.native.d.ts +93 -0
  6. package/dist/react-native/RaftChannelBLE.native.js +455 -0
  7. package/dist/react-native/RaftChannelBLE.native.js.map +1 -0
  8. package/dist/{RaftChannelWebBLE.d.ts → react-native/RaftChannelBLE.web.d.ts} +3 -2
  9. package/dist/{RaftChannelWebBLE.js → react-native/RaftChannelBLE.web.js} +48 -28
  10. package/dist/react-native/RaftChannelBLE.web.js.map +1 -0
  11. package/dist/react-native/RaftChannelBLEFactory.d.ts +10 -0
  12. package/dist/react-native/RaftChannelBLEFactory.js +17 -0
  13. package/dist/react-native/RaftChannelBLEFactory.js.map +1 -0
  14. package/dist/react-native/RaftChannelBLEScanner.native.d.ts +18 -0
  15. package/dist/react-native/RaftChannelBLEScanner.native.js +146 -0
  16. package/dist/react-native/RaftChannelBLEScanner.native.js.map +1 -0
  17. package/dist/{RaftChannelWebSerial.js → react-native/RaftChannelWebSerial.js} +3 -2
  18. package/dist/react-native/RaftChannelWebSerial.js.map +1 -0
  19. package/dist/react-native/RaftChannelWebSocket.js.map +1 -0
  20. package/dist/react-native/RaftCommsStats.js.map +1 -0
  21. package/dist/{RaftConnEvents.d.ts → react-native/RaftConnEvents.d.ts} +10 -2
  22. package/dist/{RaftConnEvents.js → react-native/RaftConnEvents.js} +10 -0
  23. package/dist/react-native/RaftConnEvents.js.map +1 -0
  24. package/dist/{RaftConnector.d.ts → react-native/RaftConnector.d.ts} +6 -3
  25. package/dist/{RaftConnector.js → react-native/RaftConnector.js} +75 -74
  26. package/dist/react-native/RaftConnector.js.map +1 -0
  27. package/dist/react-native/RaftCustomAttrHandler.js.map +1 -0
  28. package/dist/{RaftDeviceInfo.d.ts → react-native/RaftDeviceInfo.d.ts} +5 -10
  29. package/dist/react-native/RaftDeviceInfo.js.map +1 -0
  30. package/dist/{RaftDeviceManager.d.ts → react-native/RaftDeviceManager.d.ts} +14 -16
  31. package/dist/{RaftDeviceManager.js → react-native/RaftDeviceManager.js} +116 -213
  32. package/dist/react-native/RaftDeviceManager.js.map +1 -0
  33. package/dist/react-native/RaftDeviceMgrIF.d.ts +12 -0
  34. package/dist/react-native/RaftDeviceMgrIF.js +11 -0
  35. package/dist/react-native/RaftDeviceMgrIF.js.map +1 -0
  36. package/dist/react-native/RaftDeviceMsg.js.map +1 -0
  37. package/dist/{RaftDeviceStates.d.ts → react-native/RaftDeviceStates.d.ts} +1 -1
  38. package/dist/react-native/RaftDeviceStates.js.map +1 -0
  39. package/dist/react-native/RaftFileHandler.js.map +1 -0
  40. package/dist/react-native/RaftLog.js.map +1 -0
  41. package/dist/{RaftMiniHDLC.js → react-native/RaftMiniHDLC.js} +1 -1
  42. package/dist/react-native/RaftMiniHDLC.js.map +1 -0
  43. package/dist/{RaftMsgHandler.js → react-native/RaftMsgHandler.js} +2 -2
  44. package/dist/react-native/RaftMsgHandler.js.map +1 -0
  45. package/dist/react-native/RaftMsgTrackInfo.js.map +1 -0
  46. package/dist/react-native/RaftProtocolDefs.js.map +1 -0
  47. package/dist/react-native/RaftStreamHandler.js.map +1 -0
  48. package/dist/{RaftSystemType.d.ts → react-native/RaftSystemType.d.ts} +4 -0
  49. package/dist/{RaftSystemType.js.map → react-native/RaftSystemType.js.map} +1 -1
  50. package/dist/react-native/RaftSystemUtils.js.map +1 -0
  51. package/dist/{RaftTypes.d.ts → react-native/RaftTypes.d.ts} +11 -0
  52. package/dist/{RaftTypes.js → react-native/RaftTypes.js} +34 -1
  53. package/dist/react-native/RaftTypes.js.map +1 -0
  54. package/dist/react-native/RaftUpdateEvents.js.map +1 -0
  55. package/dist/react-native/RaftUpdateManager.js.map +1 -0
  56. package/dist/{RaftUtils.js → react-native/RaftUtils.js} +1 -1
  57. package/dist/react-native/RaftUtils.js.map +1 -0
  58. package/dist/react-native/RaftWifiTypes.js.map +1 -0
  59. package/dist/react-native/main.d.ts +21 -0
  60. package/dist/{main.js → react-native/main.js} +7 -3
  61. package/dist/react-native/main.js.map +1 -0
  62. package/dist/web/RaftAttributeHandler.d.ts +12 -0
  63. package/dist/web/RaftAttributeHandler.js +241 -0
  64. package/dist/web/RaftAttributeHandler.js.map +1 -0
  65. package/dist/web/RaftChannel.d.ts +18 -0
  66. package/dist/web/RaftChannel.js +12 -0
  67. package/dist/web/RaftChannel.js.map +1 -0
  68. package/dist/web/RaftChannelBLE.web.d.ts +39 -0
  69. package/dist/web/RaftChannelBLE.web.js +294 -0
  70. package/dist/web/RaftChannelBLE.web.js.map +1 -0
  71. package/dist/web/RaftChannelBLEFactory.d.ts +10 -0
  72. package/dist/web/RaftChannelBLEFactory.js +17 -0
  73. package/dist/web/RaftChannelBLEFactory.js.map +1 -0
  74. package/dist/web/RaftChannelWebSerial.d.ts +37 -0
  75. package/dist/web/RaftChannelWebSerial.js +320 -0
  76. package/dist/web/RaftChannelWebSerial.js.map +1 -0
  77. package/dist/web/RaftChannelWebSocket.d.ts +28 -0
  78. package/dist/web/RaftChannelWebSocket.js +197 -0
  79. package/dist/web/RaftChannelWebSocket.js.map +1 -0
  80. package/dist/web/RaftCommsStats.d.ts +39 -0
  81. package/dist/web/RaftCommsStats.js +128 -0
  82. package/dist/web/RaftCommsStats.js.map +1 -0
  83. package/dist/web/RaftConnEvents.d.ts +39 -0
  84. package/dist/web/RaftConnEvents.js +54 -0
  85. package/dist/web/RaftConnEvents.js.map +1 -0
  86. package/dist/web/RaftConnector.d.ts +245 -0
  87. package/dist/web/RaftConnector.js +614 -0
  88. package/dist/web/RaftConnector.js.map +1 -0
  89. package/dist/web/RaftCustomAttrHandler.d.ts +4 -0
  90. package/dist/web/RaftCustomAttrHandler.js +50 -0
  91. package/dist/web/RaftCustomAttrHandler.js.map +1 -0
  92. package/dist/web/RaftDeviceInfo.d.ts +59 -0
  93. package/dist/web/RaftDeviceInfo.js +36 -0
  94. package/dist/web/RaftDeviceInfo.js.map +1 -0
  95. package/dist/web/RaftDeviceManager.d.ts +35 -0
  96. package/dist/web/RaftDeviceManager.js +353 -0
  97. package/dist/web/RaftDeviceManager.js.map +1 -0
  98. package/dist/web/RaftDeviceMgrIF.d.ts +12 -0
  99. package/dist/web/RaftDeviceMgrIF.js +11 -0
  100. package/dist/web/RaftDeviceMgrIF.js.map +1 -0
  101. package/dist/web/RaftDeviceMsg.d.ts +9 -0
  102. package/dist/web/RaftDeviceMsg.js +11 -0
  103. package/dist/web/RaftDeviceMsg.js.map +1 -0
  104. package/dist/web/RaftDeviceStates.d.ts +33 -0
  105. package/dist/web/RaftDeviceStates.js +60 -0
  106. package/dist/web/RaftDeviceStates.js.map +1 -0
  107. package/dist/web/RaftFileHandler.d.ts +52 -0
  108. package/dist/web/RaftFileHandler.js +502 -0
  109. package/dist/web/RaftFileHandler.js.map +1 -0
  110. package/dist/web/RaftLog.d.ts +22 -0
  111. package/dist/web/RaftLog.js +63 -0
  112. package/dist/web/RaftLog.js.map +1 -0
  113. package/dist/web/RaftMiniHDLC.d.ts +18 -0
  114. package/dist/web/RaftMiniHDLC.js +383 -0
  115. package/dist/web/RaftMiniHDLC.js.map +1 -0
  116. package/dist/web/RaftMsgHandler.d.ts +57 -0
  117. package/dist/web/RaftMsgHandler.js +480 -0
  118. package/dist/web/RaftMsgHandler.js.map +1 -0
  119. package/dist/web/RaftMsgTrackInfo.d.ts +17 -0
  120. package/dist/web/RaftMsgTrackInfo.js +42 -0
  121. package/dist/web/RaftMsgTrackInfo.js.map +1 -0
  122. package/dist/web/RaftProtocolDefs.d.ts +30 -0
  123. package/dist/web/RaftProtocolDefs.js +48 -0
  124. package/dist/web/RaftProtocolDefs.js.map +1 -0
  125. package/dist/web/RaftStreamHandler.d.ts +38 -0
  126. package/dist/web/RaftStreamHandler.js +257 -0
  127. package/dist/web/RaftStreamHandler.js.map +1 -0
  128. package/dist/web/RaftSystemType.d.ts +25 -0
  129. package/dist/web/RaftSystemType.js +3 -0
  130. package/dist/web/RaftSystemType.js.map +1 -0
  131. package/dist/web/RaftSystemUtils.d.ts +136 -0
  132. package/dist/web/RaftSystemUtils.js +410 -0
  133. package/dist/web/RaftSystemUtils.js.map +1 -0
  134. package/dist/web/RaftTypes.d.ts +195 -0
  135. package/dist/web/RaftTypes.js +190 -0
  136. package/dist/web/RaftTypes.js.map +1 -0
  137. package/dist/web/RaftUpdateEvents.d.ts +33 -0
  138. package/dist/web/RaftUpdateEvents.js +46 -0
  139. package/dist/web/RaftUpdateEvents.js.map +1 -0
  140. package/dist/web/RaftUpdateManager.d.ts +61 -0
  141. package/dist/web/RaftUpdateManager.js +618 -0
  142. package/dist/web/RaftUpdateManager.js.map +1 -0
  143. package/dist/web/RaftUtils.d.ts +125 -0
  144. package/dist/web/RaftUtils.js +454 -0
  145. package/dist/web/RaftUtils.js.map +1 -0
  146. package/dist/web/RaftWifiTypes.d.ts +23 -0
  147. package/dist/web/RaftWifiTypes.js +43 -0
  148. package/dist/web/RaftWifiTypes.js.map +1 -0
  149. package/dist/{main.d.ts → web/main.d.ts} +4 -1
  150. package/dist/web/main.js +46 -0
  151. package/dist/web/main.js.map +1 -0
  152. package/examples/dashboard/package.json +4 -0
  153. package/examples/dashboard/src/CommandPanel.tsx +147 -0
  154. package/examples/dashboard/src/ConnManager.ts +11 -12
  155. package/examples/dashboard/src/DeviceActionsForm.tsx +133 -0
  156. package/examples/dashboard/src/DeviceAttrsForm.tsx +49 -0
  157. package/examples/dashboard/src/DeviceLineChart.tsx +139 -0
  158. package/examples/dashboard/src/DevicePanel.tsx +135 -0
  159. package/examples/dashboard/src/DevicesPanel.tsx +57 -0
  160. package/examples/dashboard/src/DispLedGrid.tsx +110 -0
  161. package/examples/dashboard/src/DispOneLed.tsx +20 -0
  162. package/examples/dashboard/src/Main.tsx +53 -47
  163. package/examples/dashboard/src/{StatusScreen.tsx → StatusPanel.tsx} +13 -14
  164. package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +135 -122
  165. package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +15 -8
  166. package/examples/dashboard/src/SystemTypeMarty/RICCommsStats.ts +0 -0
  167. package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +47 -1
  168. package/examples/dashboard/src/SystemTypeMarty/SystemTypeMarty.ts +4 -1
  169. package/examples/dashboard/src/styles.css +274 -10
  170. package/package.json +57 -48
  171. package/src/RaftAttributeHandler.ts +1 -1
  172. package/src/RaftChannelBLE.native.ts +583 -0
  173. package/src/{RaftChannelWebBLE.ts → RaftChannelBLE.web.ts} +60 -40
  174. package/src/RaftChannelBLEFactory.ts +13 -0
  175. package/src/RaftChannelBLEScanner.native.ts +190 -0
  176. package/src/RaftChannelWebSerial.ts +1 -0
  177. package/src/RaftConnEvents.ts +14 -2
  178. package/src/RaftConnector.ts +80 -88
  179. package/src/RaftDeviceInfo.ts +6 -12
  180. package/src/RaftDeviceManager.ts +139 -245
  181. package/src/RaftDeviceMgrIF.ts +28 -0
  182. package/src/RaftDeviceStates.ts +1 -2
  183. package/src/RaftMiniHDLC.ts +1 -1
  184. package/src/RaftMsgHandler.ts +2 -2
  185. package/src/RaftSystemType.ts +4 -0
  186. package/src/RaftTypes.ts +48 -17
  187. package/src/RaftUtils.ts +1 -1
  188. package/src/main.ts +8 -1
  189. package/tsconfig.json +5 -2
  190. package/tsconfig.react-native.json +29 -0
  191. package/dist/RaftAttributeHandler.js.map +0 -1
  192. package/dist/RaftChannel.js.map +0 -1
  193. package/dist/RaftChannelWebBLE.js.map +0 -1
  194. package/dist/RaftChannelWebSerial.js.map +0 -1
  195. package/dist/RaftChannelWebSocket.js.map +0 -1
  196. package/dist/RaftCommsStats.js.map +0 -1
  197. package/dist/RaftConnEvents.js.map +0 -1
  198. package/dist/RaftConnector.js.map +0 -1
  199. package/dist/RaftCustomAttrHandler.js.map +0 -1
  200. package/dist/RaftDeviceInfo.js.map +0 -1
  201. package/dist/RaftDeviceManager.js.map +0 -1
  202. package/dist/RaftDeviceMsg.js.map +0 -1
  203. package/dist/RaftDeviceStates.js.map +0 -1
  204. package/dist/RaftFileHandler.js.map +0 -1
  205. package/dist/RaftLog.js.map +0 -1
  206. package/dist/RaftMiniHDLC.js.map +0 -1
  207. package/dist/RaftMsgHandler.js.map +0 -1
  208. package/dist/RaftMsgTrackInfo.js.map +0 -1
  209. package/dist/RaftProtocolDefs.js.map +0 -1
  210. package/dist/RaftStreamHandler.js.map +0 -1
  211. package/dist/RaftSystemUtils.js.map +0 -1
  212. package/dist/RaftTypes.js.map +0 -1
  213. package/dist/RaftUpdateEvents.js.map +0 -1
  214. package/dist/RaftUpdateManager.js.map +0 -1
  215. package/dist/RaftUtils.js.map +0 -1
  216. package/dist/RaftWifiTypes.js.map +0 -1
  217. package/dist/TestDataGen.d.ts +0 -7
  218. package/dist/TestDataGen.js +0 -133
  219. package/dist/TestDataGen.js.map +0 -1
  220. package/dist/main.js.map +0 -1
  221. package/src/TestDataGen.ts +0 -157
  222. /package/dist/{RaftAttributeHandler.d.ts → react-native/RaftAttributeHandler.d.ts} +0 -0
  223. /package/dist/{RaftChannel.d.ts → react-native/RaftChannel.d.ts} +0 -0
  224. /package/dist/{RaftChannel.js → react-native/RaftChannel.js} +0 -0
  225. /package/dist/{RaftChannelWebSerial.d.ts → react-native/RaftChannelWebSerial.d.ts} +0 -0
  226. /package/dist/{RaftChannelWebSocket.d.ts → react-native/RaftChannelWebSocket.d.ts} +0 -0
  227. /package/dist/{RaftChannelWebSocket.js → react-native/RaftChannelWebSocket.js} +0 -0
  228. /package/dist/{RaftCommsStats.d.ts → react-native/RaftCommsStats.d.ts} +0 -0
  229. /package/dist/{RaftCommsStats.js → react-native/RaftCommsStats.js} +0 -0
  230. /package/dist/{RaftCustomAttrHandler.d.ts → react-native/RaftCustomAttrHandler.d.ts} +0 -0
  231. /package/dist/{RaftCustomAttrHandler.js → react-native/RaftCustomAttrHandler.js} +0 -0
  232. /package/dist/{RaftDeviceInfo.js → react-native/RaftDeviceInfo.js} +0 -0
  233. /package/dist/{RaftDeviceMsg.d.ts → react-native/RaftDeviceMsg.d.ts} +0 -0
  234. /package/dist/{RaftDeviceMsg.js → react-native/RaftDeviceMsg.js} +0 -0
  235. /package/dist/{RaftDeviceStates.js → react-native/RaftDeviceStates.js} +0 -0
  236. /package/dist/{RaftFileHandler.d.ts → react-native/RaftFileHandler.d.ts} +0 -0
  237. /package/dist/{RaftFileHandler.js → react-native/RaftFileHandler.js} +0 -0
  238. /package/dist/{RaftLog.d.ts → react-native/RaftLog.d.ts} +0 -0
  239. /package/dist/{RaftLog.js → react-native/RaftLog.js} +0 -0
  240. /package/dist/{RaftMiniHDLC.d.ts → react-native/RaftMiniHDLC.d.ts} +0 -0
  241. /package/dist/{RaftMsgHandler.d.ts → react-native/RaftMsgHandler.d.ts} +0 -0
  242. /package/dist/{RaftMsgTrackInfo.d.ts → react-native/RaftMsgTrackInfo.d.ts} +0 -0
  243. /package/dist/{RaftMsgTrackInfo.js → react-native/RaftMsgTrackInfo.js} +0 -0
  244. /package/dist/{RaftProtocolDefs.d.ts → react-native/RaftProtocolDefs.d.ts} +0 -0
  245. /package/dist/{RaftProtocolDefs.js → react-native/RaftProtocolDefs.js} +0 -0
  246. /package/dist/{RaftStreamHandler.d.ts → react-native/RaftStreamHandler.d.ts} +0 -0
  247. /package/dist/{RaftStreamHandler.js → react-native/RaftStreamHandler.js} +0 -0
  248. /package/dist/{RaftSystemType.js → react-native/RaftSystemType.js} +0 -0
  249. /package/dist/{RaftSystemUtils.d.ts → react-native/RaftSystemUtils.d.ts} +0 -0
  250. /package/dist/{RaftSystemUtils.js → react-native/RaftSystemUtils.js} +0 -0
  251. /package/dist/{RaftUpdateEvents.d.ts → react-native/RaftUpdateEvents.d.ts} +0 -0
  252. /package/dist/{RaftUpdateEvents.js → react-native/RaftUpdateEvents.js} +0 -0
  253. /package/dist/{RaftUpdateManager.d.ts → react-native/RaftUpdateManager.d.ts} +0 -0
  254. /package/dist/{RaftUpdateManager.js → react-native/RaftUpdateManager.js} +0 -0
  255. /package/dist/{RaftUtils.d.ts → react-native/RaftUtils.d.ts} +0 -0
  256. /package/dist/{RaftWifiTypes.d.ts → react-native/RaftWifiTypes.d.ts} +0 -0
  257. /package/dist/{RaftWifiTypes.js → react-native/RaftWifiTypes.js} +0 -0
@@ -0,0 +1,39 @@
1
+ export default class RaftCommsStats {
2
+ _msgRxCount: number;
3
+ _msgRxCountInWindow: number;
4
+ _msgRxLastCalcMs: number;
5
+ _msgRxRate: number;
6
+ _msgTooShort: number;
7
+ _msgTxCount: number;
8
+ _msgTxCountInWindow: number;
9
+ _msgTxLastCalcMs: number;
10
+ _msgTxRate: number;
11
+ _msgNumCollisions: number;
12
+ _msgNumUnmatched: number;
13
+ _msgRoundtripWorstMs: number;
14
+ _msgRoundtripBestMs: number;
15
+ _msgRoundtripLastMs: number;
16
+ _msgTimeout: number;
17
+ _msgRetry: number;
18
+ _msgNoConnection: number;
19
+ _streamBytes: number;
20
+ _fileBytes: number;
21
+ clear(): void;
22
+ msgRx(): void;
23
+ getMsgRxRate(): number;
24
+ msgTooShort(): void;
25
+ msgTx(): void;
26
+ getMsgTxRate(): number;
27
+ getRTWorstMs(): number;
28
+ getRTLastMs(): number;
29
+ getRTBestMs(): number;
30
+ getRetries(): number;
31
+ recordMsgNumCollision(): void;
32
+ recordMsgNumUnmatched(): void;
33
+ recordMsgResp(roundTripMs: number): void;
34
+ recordMsgTimeout(): void;
35
+ recordMsgNoConnection(): void;
36
+ recordMsgRetry(): void;
37
+ recordStreamBytes(bytes: number): void;
38
+ recordFileBytes(bytes: number): void;
39
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
+ //
4
+ // RaftCommStats
5
+ // Part of RaftJS
6
+ //
7
+ // Rob Dobson & Chris Greening 2020-2024
8
+ // (C) 2020-2024 All rights reserved
9
+ //
10
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ class RaftCommsStats {
13
+ constructor() {
14
+ this._msgRxCount = 0;
15
+ this._msgRxCountInWindow = 0;
16
+ this._msgRxLastCalcMs = 0;
17
+ this._msgRxRate = 0;
18
+ this._msgTooShort = 0;
19
+ this._msgTxCount = 0;
20
+ this._msgTxCountInWindow = 0;
21
+ this._msgTxLastCalcMs = 0;
22
+ this._msgTxRate = 0;
23
+ this._msgNumCollisions = 0;
24
+ this._msgNumUnmatched = 0;
25
+ this._msgRoundtripWorstMs = 0;
26
+ this._msgRoundtripBestMs = 0;
27
+ this._msgRoundtripLastMs = 0;
28
+ this._msgTimeout = 0;
29
+ this._msgRetry = 0;
30
+ this._msgNoConnection = 0;
31
+ this._streamBytes = 0;
32
+ this._fileBytes = 0;
33
+ }
34
+ clear() {
35
+ this._msgRxCount = 0;
36
+ this._msgRxCountInWindow = 0;
37
+ this._msgRxLastCalcMs = Date.now();
38
+ this._msgRxRate = 0;
39
+ this._msgTooShort = 0;
40
+ this._msgTxCount = 0;
41
+ this._msgTxCountInWindow = 0;
42
+ this._msgTxLastCalcMs = Date.now();
43
+ this._msgTxRate = 0;
44
+ this._msgNumCollisions = 0;
45
+ this._msgNumUnmatched = 0;
46
+ this._msgRoundtripBestMs = 0;
47
+ this._msgRoundtripWorstMs = 0;
48
+ this._msgRoundtripLastMs = 0;
49
+ this._msgTimeout = 0;
50
+ this._msgRetry = 0;
51
+ this._msgNoConnection = 0;
52
+ this._streamBytes = 0;
53
+ this._fileBytes = 0;
54
+ }
55
+ msgRx() {
56
+ this._msgRxCount++;
57
+ this._msgRxCountInWindow++;
58
+ }
59
+ getMsgRxRate() {
60
+ if (this._msgRxLastCalcMs + 1000 < Date.now()) {
61
+ this._msgRxRate =
62
+ (1000.0 * this._msgRxCountInWindow) /
63
+ (Date.now() - this._msgRxLastCalcMs);
64
+ this._msgRxLastCalcMs = Date.now();
65
+ this._msgRxCountInWindow = 0;
66
+ }
67
+ return this._msgRxRate;
68
+ }
69
+ msgTooShort() {
70
+ this._msgTooShort++;
71
+ }
72
+ msgTx() {
73
+ this._msgTxCount++;
74
+ this._msgTxCountInWindow++;
75
+ }
76
+ getMsgTxRate() {
77
+ if (this._msgTxLastCalcMs + 1000 < Date.now()) {
78
+ this._msgTxRate =
79
+ (1000.0 * this._msgTxCountInWindow) /
80
+ (Date.now() - this._msgTxLastCalcMs);
81
+ this._msgTxLastCalcMs = Date.now();
82
+ this._msgTxCountInWindow = 0;
83
+ }
84
+ return this._msgTxRate;
85
+ }
86
+ getRTWorstMs() {
87
+ return this._msgRoundtripWorstMs;
88
+ }
89
+ getRTLastMs() {
90
+ return this._msgRoundtripLastMs;
91
+ }
92
+ getRTBestMs() {
93
+ return this._msgRoundtripBestMs;
94
+ }
95
+ getRetries() {
96
+ return this._msgRetry;
97
+ }
98
+ recordMsgNumCollision() {
99
+ this._msgNumCollisions++;
100
+ }
101
+ recordMsgNumUnmatched() {
102
+ this._msgNumUnmatched++;
103
+ }
104
+ recordMsgResp(roundTripMs) {
105
+ if (this._msgRoundtripWorstMs < roundTripMs)
106
+ this._msgRoundtripWorstMs = roundTripMs;
107
+ if (this._msgRoundtripBestMs == 0 || this._msgRoundtripBestMs > roundTripMs)
108
+ this._msgRoundtripBestMs = roundTripMs;
109
+ this._msgRoundtripLastMs = roundTripMs;
110
+ }
111
+ recordMsgTimeout() {
112
+ this._msgTimeout++;
113
+ }
114
+ recordMsgNoConnection() {
115
+ this._msgNoConnection++;
116
+ }
117
+ recordMsgRetry() {
118
+ this._msgRetry++;
119
+ }
120
+ recordStreamBytes(bytes) {
121
+ this._streamBytes += bytes;
122
+ }
123
+ recordFileBytes(bytes) {
124
+ this._fileBytes += bytes;
125
+ }
126
+ }
127
+ exports.default = RaftCommsStats;
128
+ //# sourceMappingURL=RaftCommsStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RaftCommsStats.js","sourceRoot":"","sources":["../../src/RaftCommsStats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export declare enum RaftConnEvent {
2
+ CONN_CONNECTING = 0,
3
+ CONN_CONNECTED = 1,
4
+ CONN_CONNECTION_FAILED = 2,
5
+ CONN_DISCONNECTED = 3,
6
+ CONN_REJECTED = 4,
7
+ CONN_ISSUE_DETECTED = 5,
8
+ CONN_ISSUE_RESOLVED = 6,
9
+ CONN_VERIFYING_CORRECT = 7,
10
+ CONN_VERIFIED_CORRECT = 8,
11
+ CONN_GETTING_INFO = 9,
12
+ CONN_GOT_INFO = 10,
13
+ CONN_BLUETOOTH_STATE = 11,
14
+ CONN_STREAMING_ISSUE = 12,
15
+ BLE_SCANNING_STARTED = 13,
16
+ BLE_DEVICE_FOUND = 14,
17
+ BLE_SCANNING_FINISHED = 15,
18
+ BLE_BLUETOOTH_STATE = 16
19
+ }
20
+ export declare const RaftConnEventNames: {
21
+ 0: string;
22
+ 1: string;
23
+ 2: string;
24
+ 3: string;
25
+ 4: string;
26
+ 5: string;
27
+ 6: string;
28
+ 7: string;
29
+ 8: string;
30
+ 9: string;
31
+ 10: string;
32
+ 11: string;
33
+ 12: string;
34
+ 13: string;
35
+ 14: string;
36
+ 15: string;
37
+ 16: string;
38
+ };
39
+ export type RaftConnEventFn = (eventType: RaftConnEvent, data?: any | string[] | string | null) => void;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
+ //
4
+ // RaftConnEvents
5
+ // Part of RaftJS
6
+ //
7
+ // Rob Dobson & Chris Greening 2020-2024
8
+ // (C) 2020-2024 All rights reserved
9
+ //
10
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RaftConnEventNames = exports.RaftConnEvent = void 0;
13
+ var RaftConnEvent;
14
+ (function (RaftConnEvent) {
15
+ RaftConnEvent[RaftConnEvent["CONN_CONNECTING"] = 0] = "CONN_CONNECTING";
16
+ RaftConnEvent[RaftConnEvent["CONN_CONNECTED"] = 1] = "CONN_CONNECTED";
17
+ RaftConnEvent[RaftConnEvent["CONN_CONNECTION_FAILED"] = 2] = "CONN_CONNECTION_FAILED";
18
+ RaftConnEvent[RaftConnEvent["CONN_DISCONNECTED"] = 3] = "CONN_DISCONNECTED";
19
+ RaftConnEvent[RaftConnEvent["CONN_REJECTED"] = 4] = "CONN_REJECTED";
20
+ RaftConnEvent[RaftConnEvent["CONN_ISSUE_DETECTED"] = 5] = "CONN_ISSUE_DETECTED";
21
+ RaftConnEvent[RaftConnEvent["CONN_ISSUE_RESOLVED"] = 6] = "CONN_ISSUE_RESOLVED";
22
+ RaftConnEvent[RaftConnEvent["CONN_VERIFYING_CORRECT"] = 7] = "CONN_VERIFYING_CORRECT";
23
+ RaftConnEvent[RaftConnEvent["CONN_VERIFIED_CORRECT"] = 8] = "CONN_VERIFIED_CORRECT";
24
+ RaftConnEvent[RaftConnEvent["CONN_GETTING_INFO"] = 9] = "CONN_GETTING_INFO";
25
+ RaftConnEvent[RaftConnEvent["CONN_GOT_INFO"] = 10] = "CONN_GOT_INFO";
26
+ RaftConnEvent[RaftConnEvent["CONN_BLUETOOTH_STATE"] = 11] = "CONN_BLUETOOTH_STATE";
27
+ RaftConnEvent[RaftConnEvent["CONN_STREAMING_ISSUE"] = 12] = "CONN_STREAMING_ISSUE";
28
+ // PHONE_BLE_ONLY
29
+ RaftConnEvent[RaftConnEvent["BLE_SCANNING_STARTED"] = 13] = "BLE_SCANNING_STARTED";
30
+ RaftConnEvent[RaftConnEvent["BLE_DEVICE_FOUND"] = 14] = "BLE_DEVICE_FOUND";
31
+ RaftConnEvent[RaftConnEvent["BLE_SCANNING_FINISHED"] = 15] = "BLE_SCANNING_FINISHED";
32
+ RaftConnEvent[RaftConnEvent["BLE_BLUETOOTH_STATE"] = 16] = "BLE_BLUETOOTH_STATE";
33
+ })(RaftConnEvent || (exports.RaftConnEvent = RaftConnEvent = {}));
34
+ exports.RaftConnEventNames = {
35
+ [RaftConnEvent.CONN_CONNECTING]: 'CONNECTING',
36
+ [RaftConnEvent.CONN_CONNECTED]: 'CONNECTED',
37
+ [RaftConnEvent.CONN_CONNECTION_FAILED]: 'CONNECTION_FAILED',
38
+ [RaftConnEvent.CONN_DISCONNECTED]: 'DISCONNECTED',
39
+ [RaftConnEvent.CONN_REJECTED]: 'REJECTED',
40
+ [RaftConnEvent.CONN_ISSUE_DETECTED]: 'ISSUE_DETECTED',
41
+ [RaftConnEvent.CONN_ISSUE_RESOLVED]: 'ISSUE_RESOLVED',
42
+ [RaftConnEvent.CONN_VERIFYING_CORRECT]: 'VERIFYING_CORRECT',
43
+ [RaftConnEvent.CONN_VERIFIED_CORRECT]: 'VERIFIED_CORRECT',
44
+ [RaftConnEvent.CONN_GETTING_INFO]: 'GETTING_INFO',
45
+ [RaftConnEvent.CONN_GOT_INFO]: 'GOT_INFO',
46
+ [RaftConnEvent.CONN_BLUETOOTH_STATE]: 'BLUETOOTH_STATE',
47
+ [RaftConnEvent.CONN_STREAMING_ISSUE]: 'STREAMING_ISSUE',
48
+ // PHONE_BLE_ONLY
49
+ [RaftConnEvent.BLE_SCANNING_STARTED]: 'BLE_SCANNING_STARTED',
50
+ [RaftConnEvent.BLE_DEVICE_FOUND]: 'BLE_DEVICE_FOUND',
51
+ [RaftConnEvent.BLE_SCANNING_FINISHED]: 'BLE_SCANNING_FINISHED',
52
+ [RaftConnEvent.BLE_BLUETOOTH_STATE]: 'BLE_BLUETOOTH_STATE',
53
+ };
54
+ //# sourceMappingURL=RaftConnEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RaftConnEvents.js","sourceRoot":"","sources":["../../src/RaftConnEvents.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,iBAAiB;AACjB,iBAAiB;AACjB,EAAE;AACF,wCAAwC;AACxC,oCAAoC;AACpC,EAAE;AACF,iHAAiH;;;AAEjH,IAAY,aAoBX;AApBD,WAAY,aAAa;IACrB,uEAAe,CAAA;IACf,qEAAc,CAAA;IACd,qFAAsB,CAAA;IACtB,2EAAiB,CAAA;IACjB,mEAAa,CAAA;IACb,+EAAmB,CAAA;IACnB,+EAAmB,CAAA;IACnB,qFAAsB,CAAA;IACtB,mFAAqB,CAAA;IACrB,2EAAiB,CAAA;IACjB,oEAAa,CAAA;IACb,kFAAoB,CAAA;IACpB,kFAAoB,CAAA;IAEpB,iBAAiB;IACjB,kFAAoB,CAAA;IACpB,0EAAgB,CAAA;IAChB,oFAAqB,CAAA;IACrB,gFAAmB,CAAA;AACvB,CAAC,EApBW,aAAa,6BAAb,aAAa,QAoBxB;AAEY,QAAA,kBAAkB,GAAG;IAC9B,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,YAAY;IAC7C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,WAAW;IAC3C,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,mBAAmB;IAC3D,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,cAAc;IACjD,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,UAAU;IACzC,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,gBAAgB;IACrD,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,gBAAgB;IACrD,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,mBAAmB;IAC3D,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,kBAAkB;IACzD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,cAAc;IACjD,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,UAAU;IACzC,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,iBAAiB;IACvD,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,iBAAiB;IAEvD,iBAAiB;IACjB,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,sBAAsB;IAC5D,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;IACpD,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,uBAAuB;IAC9D,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,qBAAqB;CAC7D,CAAC"}
@@ -0,0 +1,245 @@
1
+ import RaftChannel from "./RaftChannel";
2
+ import RaftMsgHandler, { RaftMsgResultCode } from "./RaftMsgHandler";
3
+ import RaftCommsStats from "./RaftCommsStats";
4
+ import { RaftEventFn, RaftOKFail, RaftFileDownloadResult, RaftProgressCBType, RaftBridgeSetupResp, RaftFileDownloadFn } from "./RaftTypes";
5
+ import RaftSystemUtils from "./RaftSystemUtils";
6
+ import { RaftConnEvent } from "./RaftConnEvents";
7
+ import { RaftGetSystemTypeCBType, RaftSystemType } from "./RaftSystemType";
8
+ import { RaftUpdateEvent } from "./RaftUpdateEvents";
9
+ export default class RaftConnector {
10
+ private _getSystemTypeCB;
11
+ private _systemType;
12
+ private _raftChannel;
13
+ private _channelConnMethod;
14
+ private _channelConnLocator;
15
+ private _commsStats;
16
+ private _raftMsgHandler;
17
+ private _raftSystemUtils;
18
+ private readonly _testConnPerfBlockSize;
19
+ private readonly _testConnPerfNumBlocks;
20
+ private readonly _connPerfRsltDelayMs;
21
+ private _retryIfLostEnabled;
22
+ private _retryIfLostForSecs;
23
+ private _retryIfLostIsConnected;
24
+ private _retryIfLostDisconnectTime;
25
+ private readonly _retryIfLostRetryDelayMs;
26
+ private _raftFileHandler;
27
+ private _raftStreamHandler;
28
+ private _onEventFn;
29
+ private _raftUpdateManager;
30
+ /**
31
+ * RaftConnector constructor
32
+ * @param getSystemTypeCB - callback to get system type
33
+ */
34
+ constructor(getSystemTypeCB?: RaftGetSystemTypeCBType | null);
35
+ /**
36
+ * Configure the file handler
37
+ * @param fileBlockSize - size of file blocks to send
38
+ * @param batchAckSize - number of blocks to send before waiting for ack
39
+ * @returns void
40
+ */
41
+ configureFileHandler(fileBlockSize: number, batchAckSize: number): void;
42
+ /**
43
+ * Set event listener
44
+ * @param onEventFn - event listener
45
+ * @returns void
46
+ * */
47
+ setEventListener(onEventFn: RaftEventFn): void;
48
+ /**
49
+ * isConnected
50
+ * @returns boolean - true if connected
51
+ * */
52
+ isConnected(): boolean;
53
+ /**
54
+ * Set try to reconnect if connection lost
55
+ * @param enableRetry - true to enable retry
56
+ * @param retryForSecs - retry for this many seconds
57
+ * @returns void
58
+ * */
59
+ setRetryConnectionIfLost(enableRetry: boolean, retryForSecs: number): void;
60
+ /**
61
+ * Get Raft system type (the type of hardware connected to - determined using the getSystemInfo API)
62
+ * @returns RaftSystemType | null - Raft system type
63
+ * */
64
+ getSystemType(): RaftSystemType | null;
65
+ /**
66
+ * Get connection method
67
+ * @returns string - connection method
68
+ * */
69
+ getConnMethod(): string;
70
+ /**
71
+ * Get connection locator
72
+ * @returns string | object - connection locator
73
+ * */
74
+ getConnLocator(): any | null;
75
+ /**
76
+ * Get Raft channel (this is the channel used for commuinications with the Raft application)
77
+ * @returns RaftChannel | null - Raft channel
78
+ * */
79
+ getRaftChannel(): RaftChannel | null;
80
+ /**
81
+ * Get Raft system utils (access to system information and control)
82
+ * @returns RaftSystemUtils - Raft system utils
83
+ * */
84
+ getRaftSystemUtils(): RaftSystemUtils;
85
+ /**
86
+ * Get communication stats
87
+ * @returns RaftCommsStats - communication stats
88
+ * */
89
+ getCommsStats(): RaftCommsStats;
90
+ /**
91
+ * Get Raft message handler (to allow message sending and receiving)
92
+ * @returns RaftMsgHandler - Raft message handler
93
+ * */
94
+ getRaftMsgHandler(): RaftMsgHandler;
95
+ /**
96
+ * Pause connection
97
+ * @param pause - true to pause, false to resume
98
+ */
99
+ pauseConnection(pause?: boolean): void;
100
+ /**
101
+ * Initialize the Raft channel
102
+ */
103
+ initializeChannel(method: string): Promise<boolean>;
104
+ /**
105
+ * Connect to a Raft device
106
+ *
107
+ * @param {string | object} locator - either a string (WebSocket URL or serial port) or an object (WebBLE)
108
+ * @returns Promise<boolean>
109
+ *
110
+ */
111
+ connect(locator: string | object): Promise<boolean>;
112
+ disconnect(): Promise<void>;
113
+ /**
114
+ *
115
+ * sendRICRESTMsg
116
+ * @param commandName command API string
117
+ * @param params parameters (simple name value pairs only) to parameterize trajectory
118
+ * @returns Promise<RaftOKFail>
119
+ *
120
+ */
121
+ sendRICRESTMsg(commandName: string, params: object, bridgeID?: number | undefined): Promise<RaftOKFail>;
122
+ /**
123
+ * onRxReply - handle a reply message
124
+ * @param msgHandle number indicating the message that is being replied to (from the original message)
125
+ * @param msgRsltCode result code
126
+ * @param msgRsltJsonObj result object
127
+ */
128
+ onRxReply(msgHandle: number, msgRsltCode: RaftMsgResultCode, msgRsltJsonObj: object | null): void;
129
+ /**
130
+ * onRxUnnumberedMsg - handle an unnumbered message
131
+ * @param msgRsltJsonObj result object
132
+ */
133
+ onRxUnnumberedMsg(msgRsltJsonObj: {
134
+ [key: string]: number | string;
135
+ }): void;
136
+ /**
137
+ * onRxFileBlock - handle a file block
138
+ * @param filePos file position
139
+ * @param fileBlockData file block data
140
+ */
141
+ onRxFileBlock(filePos: number, fileBlockData: Uint8Array): void;
142
+ /**
143
+ * onRxOtherMsgType - handle other message types
144
+ * @param payload message payload
145
+ * @param frameTimeMs time of frame
146
+ */
147
+ onRxOtherMsgType(payload: Uint8Array, _frameTimeMs: number): void;
148
+ /**
149
+ * sendFile - send a file
150
+ * @param fileName name of file to send
151
+ * @param fileContents file contents
152
+ * @param progressCallback callback to receive progress updates
153
+ * @returns Promise<boolean> - true if file sent successfully
154
+ */
155
+ sendFile(fileName: string, fileContents: Uint8Array, progressCallback: ((sent: number, total: number, progress: number) => void) | undefined): Promise<boolean>;
156
+ /**
157
+ * streamAudio - stream audio
158
+ * @param streamContents audio data
159
+ * @param clearExisting true to clear existing audio
160
+ * @param duration duration of audio
161
+ */
162
+ streamAudio(streamContents: Uint8Array, clearExisting: boolean, duration: number): void;
163
+ /**
164
+ * isStreamStarting - check if stream is starting
165
+ */
166
+ isStreamStarting(): boolean;
167
+ /**
168
+ * fsGetContents - get file contents
169
+ * @param fileName name of file to get
170
+ * @param fileSource source of file to get (e.g. "fs" or "bridgeserial1", if omitted defaults to "fs")
171
+ * @param progressCallback callback to receive progress updates
172
+ * @returns Promise<RaftFileDownloadResult>
173
+ */
174
+ fsGetContents(fileName: string, fileSource: string, progressCallback: RaftProgressCBType | undefined): Promise<RaftFileDownloadResult>;
175
+ /**
176
+ * setLegacySoktoMode - set legacy sokto mode
177
+ * @param legacyMode true to set legacy mode
178
+ */
179
+ setLegacySoktoMode(legacyMode: boolean): void;
180
+ /**
181
+ * createCommsBridge - create a comms bridge
182
+ * @param bridgeSource source of bridge (e.g. "Serial1")
183
+ * @param bridgeName name of bridge
184
+ * @param idleCloseSecs idle close time seconds
185
+ * @returns Promise<RaftBridgeSetupResp>
186
+ */
187
+ createCommsBridge(bridgeSource: string, bridgeName: string, idleCloseSecs?: number): Promise<RaftBridgeSetupResp>;
188
+ /**
189
+ * ParkMiller random number generator
190
+ * @param seed
191
+ * @returns number
192
+ */
193
+ private parkmiller_next;
194
+ /**
195
+ * checkConnPerformance - check connection performance
196
+ * @returns Promise<number | undefined> - connection performance
197
+ */
198
+ checkConnPerformance(): Promise<number | undefined>;
199
+ /**
200
+ * onConnEvent - handle connection event
201
+ * @param eventEnum connection event enumeration
202
+ * @param data data associated with event
203
+ * @returns void
204
+ */
205
+ onConnEvent(eventEnum: RaftConnEvent, data?: object | string | null | undefined): void;
206
+ /**
207
+ * Retry connection
208
+ */
209
+ private _retryConnection;
210
+ /**
211
+ * Connect to channel
212
+ * @returns Promise<boolean> - true if connected
213
+ */
214
+ private _connectToChannel;
215
+ /**
216
+ * onUpdateEvent - handle update event
217
+ * @param eventEnum
218
+ * @param data
219
+ */
220
+ _onUpdateEvent(eventEnum: RaftUpdateEvent, data?: object | string | null | undefined): void;
221
+ /**
222
+ * otaUpdateCheck - check for OTA update
223
+ * @returns Promise<RaftUpdateEvent> - update event
224
+ * */
225
+ otaUpdateCheck(): Promise<RaftUpdateEvent>;
226
+ /**
227
+ * otaUpdateStart - start OTA update
228
+ * @returns Promise<RaftUpdateEvent> - update event
229
+ * */
230
+ otaUpdateStart(): Promise<RaftUpdateEvent>;
231
+ /**
232
+ * otaUpdateCancel - cancel OTA update
233
+ * @returns Promise<void>
234
+ * */
235
+ otaUpdateCancel(): Promise<void>;
236
+ /**
237
+ * setupUpdateManager - setup the update manager
238
+ * @param appVersion - app version
239
+ * @param appUpdateURL - app update URL
240
+ * @param firmwareBaseURL - firmware base URL
241
+ * @param fileDownloader - file downloader
242
+ * @returns void
243
+ * */
244
+ setupUpdateManager(appVersion: string, appUpdateURL: string, firmwareBaseURL: string, fileDownloader: RaftFileDownloadFn): void;
245
+ }