@robdobsn/raftjs 1.1.1

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 (149) hide show
  1. package/.editorconfig +14 -0
  2. package/.gitattributes +11 -0
  3. package/.nvmrc +1 -0
  4. package/LICENSE +22 -0
  5. package/README.md +11 -0
  6. package/TODO.md +1 -0
  7. package/dist/RaftAttributeHandler.d.ts +12 -0
  8. package/dist/RaftAttributeHandler.js +241 -0
  9. package/dist/RaftAttributeHandler.js.map +1 -0
  10. package/dist/RaftChannel.d.ts +18 -0
  11. package/dist/RaftChannel.js +12 -0
  12. package/dist/RaftChannel.js.map +1 -0
  13. package/dist/RaftChannelWebBLE.d.ts +38 -0
  14. package/dist/RaftChannelWebBLE.js +274 -0
  15. package/dist/RaftChannelWebBLE.js.map +1 -0
  16. package/dist/RaftChannelWebSerial.d.ts +37 -0
  17. package/dist/RaftChannelWebSerial.js +319 -0
  18. package/dist/RaftChannelWebSerial.js.map +1 -0
  19. package/dist/RaftChannelWebSocket.d.ts +28 -0
  20. package/dist/RaftChannelWebSocket.js +197 -0
  21. package/dist/RaftChannelWebSocket.js.map +1 -0
  22. package/dist/RaftCommsStats.d.ts +39 -0
  23. package/dist/RaftCommsStats.js +128 -0
  24. package/dist/RaftCommsStats.js.map +1 -0
  25. package/dist/RaftConnEvents.d.ts +31 -0
  26. package/dist/RaftConnEvents.js +44 -0
  27. package/dist/RaftConnEvents.js.map +1 -0
  28. package/dist/RaftConnector.d.ts +242 -0
  29. package/dist/RaftConnector.js +613 -0
  30. package/dist/RaftConnector.js.map +1 -0
  31. package/dist/RaftCustomAttrHandler.d.ts +4 -0
  32. package/dist/RaftCustomAttrHandler.js +50 -0
  33. package/dist/RaftCustomAttrHandler.js.map +1 -0
  34. package/dist/RaftDeviceInfo.d.ts +64 -0
  35. package/dist/RaftDeviceInfo.js +36 -0
  36. package/dist/RaftDeviceInfo.js.map +1 -0
  37. package/dist/RaftDeviceManager.d.ts +37 -0
  38. package/dist/RaftDeviceManager.js +450 -0
  39. package/dist/RaftDeviceManager.js.map +1 -0
  40. package/dist/RaftDeviceMsg.d.ts +9 -0
  41. package/dist/RaftDeviceMsg.js +11 -0
  42. package/dist/RaftDeviceMsg.js.map +1 -0
  43. package/dist/RaftDeviceStates.d.ts +33 -0
  44. package/dist/RaftDeviceStates.js +60 -0
  45. package/dist/RaftDeviceStates.js.map +1 -0
  46. package/dist/RaftFileHandler.d.ts +52 -0
  47. package/dist/RaftFileHandler.js +502 -0
  48. package/dist/RaftFileHandler.js.map +1 -0
  49. package/dist/RaftLog.d.ts +22 -0
  50. package/dist/RaftLog.js +63 -0
  51. package/dist/RaftLog.js.map +1 -0
  52. package/dist/RaftMiniHDLC.d.ts +18 -0
  53. package/dist/RaftMiniHDLC.js +383 -0
  54. package/dist/RaftMiniHDLC.js.map +1 -0
  55. package/dist/RaftMsgHandler.d.ts +57 -0
  56. package/dist/RaftMsgHandler.js +480 -0
  57. package/dist/RaftMsgHandler.js.map +1 -0
  58. package/dist/RaftMsgTrackInfo.d.ts +17 -0
  59. package/dist/RaftMsgTrackInfo.js +42 -0
  60. package/dist/RaftMsgTrackInfo.js.map +1 -0
  61. package/dist/RaftProtocolDefs.d.ts +30 -0
  62. package/dist/RaftProtocolDefs.js +48 -0
  63. package/dist/RaftProtocolDefs.js.map +1 -0
  64. package/dist/RaftStreamHandler.d.ts +38 -0
  65. package/dist/RaftStreamHandler.js +257 -0
  66. package/dist/RaftStreamHandler.js.map +1 -0
  67. package/dist/RaftSystemType.d.ts +21 -0
  68. package/dist/RaftSystemType.js +3 -0
  69. package/dist/RaftSystemType.js.map +1 -0
  70. package/dist/RaftSystemUtils.d.ts +136 -0
  71. package/dist/RaftSystemUtils.js +410 -0
  72. package/dist/RaftSystemUtils.js.map +1 -0
  73. package/dist/RaftTypes.d.ts +184 -0
  74. package/dist/RaftTypes.js +157 -0
  75. package/dist/RaftTypes.js.map +1 -0
  76. package/dist/RaftUpdateEvents.d.ts +33 -0
  77. package/dist/RaftUpdateEvents.js +46 -0
  78. package/dist/RaftUpdateEvents.js.map +1 -0
  79. package/dist/RaftUpdateManager.d.ts +61 -0
  80. package/dist/RaftUpdateManager.js +618 -0
  81. package/dist/RaftUpdateManager.js.map +1 -0
  82. package/dist/RaftUtils.d.ts +125 -0
  83. package/dist/RaftUtils.js +454 -0
  84. package/dist/RaftUtils.js.map +1 -0
  85. package/dist/RaftWifiTypes.d.ts +23 -0
  86. package/dist/RaftWifiTypes.js +43 -0
  87. package/dist/RaftWifiTypes.js.map +1 -0
  88. package/dist/TestDataGen.d.ts +7 -0
  89. package/dist/TestDataGen.js +133 -0
  90. package/dist/TestDataGen.js.map +1 -0
  91. package/dist/main.d.ts +18 -0
  92. package/dist/main.js +42 -0
  93. package/dist/main.js.map +1 -0
  94. package/eslint.config.mjs +33 -0
  95. package/examples/dashboard/package.json +39 -0
  96. package/examples/dashboard/src/ConnManager.ts +86 -0
  97. package/examples/dashboard/src/Main.tsx +100 -0
  98. package/examples/dashboard/src/StatusScreen.tsx +72 -0
  99. package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +144 -0
  100. package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +77 -0
  101. package/examples/dashboard/src/SystemTypeMarty/RICAddOn.ts +70 -0
  102. package/examples/dashboard/src/SystemTypeMarty/RICAddOnBase.ts +33 -0
  103. package/examples/dashboard/src/SystemTypeMarty/RICAddOnManager.ts +342 -0
  104. package/examples/dashboard/src/SystemTypeMarty/RICCommsStats.ts +170 -0
  105. package/examples/dashboard/src/SystemTypeMarty/RICHWElem.ts +123 -0
  106. package/examples/dashboard/src/SystemTypeMarty/RICLEDPatternChecker.ts +207 -0
  107. package/examples/dashboard/src/SystemTypeMarty/RICROSSerial.ts +464 -0
  108. package/examples/dashboard/src/SystemTypeMarty/RICServoFaultDetector.ts +146 -0
  109. package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +32 -0
  110. package/examples/dashboard/src/SystemTypeMarty/RICSystemUtils.ts +371 -0
  111. package/examples/dashboard/src/SystemTypeMarty/RICTypes.ts +20 -0
  112. package/examples/dashboard/src/SystemTypeMarty/SystemTypeMarty.ts +113 -0
  113. package/examples/dashboard/src/index.html +15 -0
  114. package/examples/dashboard/src/index.tsx +15 -0
  115. package/examples/dashboard/src/styles.css +122 -0
  116. package/examples/dashboard/tsconfig.json +18 -0
  117. package/jest.config.js +11 -0
  118. package/package.json +50 -0
  119. package/src/RaftAttributeHandler.ts +289 -0
  120. package/src/RaftChannel.ts +30 -0
  121. package/src/RaftChannelWebBLE.ts +342 -0
  122. package/src/RaftChannelWebSerial.ts +408 -0
  123. package/src/RaftChannelWebSocket.ts +245 -0
  124. package/src/RaftCommsStats.ts +142 -0
  125. package/src/RaftConnEvents.ts +46 -0
  126. package/src/RaftConnector.ts +745 -0
  127. package/src/RaftCustomAttrHandler.ts +54 -0
  128. package/src/RaftDeviceInfo.ts +104 -0
  129. package/src/RaftDeviceManager.ts +542 -0
  130. package/src/RaftDeviceMsg.ts +20 -0
  131. package/src/RaftDeviceStates.ts +89 -0
  132. package/src/RaftFileHandler.ts +668 -0
  133. package/src/RaftLog.ts +70 -0
  134. package/src/RaftMiniHDLC.ts +396 -0
  135. package/src/RaftMsgHandler.ts +778 -0
  136. package/src/RaftMsgTrackInfo.ts +51 -0
  137. package/src/RaftProtocolDefs.ts +46 -0
  138. package/src/RaftStreamHandler.ts +328 -0
  139. package/src/RaftSystemType.ts +25 -0
  140. package/src/RaftSystemUtils.ts +487 -0
  141. package/src/RaftTypes.ts +250 -0
  142. package/src/RaftUpdateEvents.ts +48 -0
  143. package/src/RaftUpdateManager.ts +778 -0
  144. package/src/RaftUtils.ts +484 -0
  145. package/src/RaftWifiTypes.ts +36 -0
  146. package/src/TestDataGen.ts +157 -0
  147. package/src/main.ts +28 -0
  148. package/testdata/TestDeviceTypeRecs.json +492 -0
  149. package/tsconfig.json +27 -0
@@ -0,0 +1,250 @@
1
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // RaftTypes
4
+ // Part of RaftJS
5
+ //
6
+ // Rob Dobson & Chris Greening 2020-2024
7
+ // (C) 2020-2024 All rights reserved
8
+ //
9
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10
+
11
+ import { RaftConnEvent } from './RaftConnEvents';
12
+ import { RaftUpdateEvent } from './RaftUpdateEvents';
13
+
14
+ export enum RaftPublishEvent {
15
+ PUBLISH_EVENT_DATA,
16
+ }
17
+
18
+ export const RaftPublishEventNames = {
19
+ [RaftPublishEvent.PUBLISH_EVENT_DATA]: 'PUBLISH_EVENT_DATA'
20
+ };
21
+
22
+ export enum RaftFileSendType {
23
+ NORMAL_FILE,
24
+ FIRMWARE_UPDATE,
25
+ }
26
+
27
+ export enum RaftStreamType {
28
+ REAL_TIME_STREAM,
29
+ }
30
+
31
+ export type RaftEventFn = (
32
+ eventType: string,
33
+ eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent,
34
+ eventName: string,
35
+ data?: object | string | null,
36
+ ) => void;
37
+
38
+ export interface RaftSubscription {
39
+ remove(): void;
40
+ }
41
+
42
+ export class RaftFriendlyName {
43
+ friendlyName = '';
44
+ friendlyNameIsSet?= false;
45
+ req?= '';
46
+ rslt?= 'commsFail';
47
+ validMs?= 0;
48
+ }
49
+
50
+ export class RaftSystemInfo {
51
+ rslt = '';
52
+ SystemName = 'Unknown';
53
+ SystemVersion = '0.0.0';
54
+ RicHwRevNo?: string | number = 0;
55
+ HwRev?: string | number = "";
56
+ MAC?= "";
57
+ SerialNo?= "";
58
+ validMs?= 0;
59
+ Friendly? = "";
60
+ }
61
+
62
+ export class RaftCalibInfo {
63
+ rslt = '';
64
+ calDone = 0;
65
+ validMs?= 0;
66
+ }
67
+
68
+ export class RaftOKFail {
69
+ RAFT_OK = 'ok';
70
+ set(rsltFlag: boolean) {
71
+ if (rsltFlag) {
72
+ this.rslt = this.RAFT_OK;
73
+ } else {
74
+ this.rslt = 'fail';
75
+ }
76
+ }
77
+ rslt = 'commsFail';
78
+ isOk() {
79
+ return this.rslt === this.RAFT_OK;
80
+ }
81
+ }
82
+
83
+ export class RaftReportMsg {
84
+ msgType?: string;
85
+ rslt = '';
86
+ timeReceived?: number;
87
+ hexRd?: string;
88
+ elemName?: string;
89
+ IDNo?: number;
90
+ msgKey?: string;
91
+ addr?: number;
92
+ msgBody?: string;
93
+ }
94
+
95
+ export class RaftHWFWStat {
96
+ s = '';
97
+ m = '';
98
+ v = '';
99
+ n = '';
100
+ p = 0;
101
+ i = 0;
102
+ }
103
+
104
+ export class RaftHWFWUpdRslt {
105
+ req = '';
106
+ rslt = 'commsFail';
107
+ st: RaftHWFWStat = new RaftHWFWStat();
108
+ }
109
+
110
+ export type RaftFWInfo = {
111
+ elemType: string;
112
+ version: string;
113
+ destname: string;
114
+ md5: string;
115
+ releaseNotes: string;
116
+ comments: string;
117
+ updaters: Array<string>;
118
+ downloadUrl: string;
119
+ firmware?: string;
120
+ };
121
+
122
+ // TODO - decide what to do with ricRevision
123
+
124
+ export type RaftUpdateInfo = {
125
+ rslt: string;
126
+ firmwareVersion: string;
127
+ ricRevision: string;
128
+ files: Array<RaftFWInfo>;
129
+ minimumUpdaterVersion: Dictionary<string>;
130
+ note: string;
131
+ };
132
+
133
+ export type RaftFileStartResp = {
134
+ rslt: string;
135
+ batchMsgSize: number;
136
+ batchAckSize: number;
137
+ };
138
+
139
+ export type RaftStreamStartResp = {
140
+ rslt: string;
141
+ streamID: number;
142
+ maxBlockSize?: number;
143
+ };
144
+
145
+ export type RaftBridgeSetupResp = {
146
+ rslt: string;
147
+ bridgeID: number;
148
+ };
149
+
150
+ export type RaftFile = {
151
+ name: string;
152
+ size: number;
153
+ };
154
+
155
+ export class RaftFileList {
156
+ req = '';
157
+ rslt = 'ok';
158
+ fsName = 'spiffs';
159
+ fsBase = '/spiffs';
160
+ diskSize = 0;
161
+ diskUsed = 0;
162
+ folder = '/spiffs/';
163
+ files: Array<RaftFile> = [];
164
+ }
165
+
166
+ export class RaftSysModInfoBLEMan {
167
+ req?= '';
168
+ rslt = 'ok';
169
+ isConn = false;
170
+ isAdv = false;
171
+ advName?= "";
172
+ BLEMAC = "";
173
+ rssi = -200;
174
+ rxM = 0;
175
+ rxB = 0;
176
+ rxBPS = 0.0;
177
+ txM = 0;
178
+ txB = 0;
179
+ txBPS = 0.0;
180
+ txErr = 0;
181
+ txErrPS = 0;
182
+ tM?= 0;
183
+ tB?= 0;
184
+ tBPS?= 0.0;
185
+ tSeqErrs?= 0;
186
+ tDatErrs?= 0;
187
+ }
188
+
189
+ export type RaftProgressCBType = (received: number, total: number) => void;
190
+
191
+ export class RaftFileDownloadResult
192
+ {
193
+ fileData: Uint8Array | null = null;
194
+ downloadedOk = false;
195
+ constructor(buffer: Uint8Array | undefined = undefined) {
196
+ if (buffer !== undefined) {
197
+ this.fileData = buffer;
198
+ this.downloadedOk = true;
199
+ } else {
200
+ this.fileData = null;
201
+ this.downloadedOk = false;
202
+ }
203
+ }
204
+
205
+ }
206
+
207
+ export type RaftFileDownloadFn = (downloadUrl: string, progressCB: RaftProgressCBType) => Promise<RaftFileDownloadResult>;
208
+
209
+ export type RaftFileDownloadResp = {
210
+ req: string;
211
+ rslt: string;
212
+ }
213
+
214
+ export type RaftFileDownloadStartResp = {
215
+ req: string;
216
+ rslt: string;
217
+ batchMsgSize: number;
218
+ batchAckSize: number;
219
+ streamID: number;
220
+ fileLen: number;
221
+ crc16: string;
222
+ }
223
+
224
+ export interface Dictionary<T> {
225
+ [key: string]: T;
226
+ }
227
+
228
+ export type RaftWifiScanResults = {
229
+ req: string;
230
+ rslt: string;
231
+ wifi: WifiScanWifiItem[];
232
+ };
233
+
234
+ export type WifiScanWifiItem = {
235
+ ssid: string;
236
+ rssi: number;
237
+ ch1: number;
238
+ ch2: number;
239
+ auth: string;
240
+ bssid: string;
241
+ pair: string;
242
+ group: string;
243
+ };
244
+
245
+ export type PystatusMsgType = {
246
+ req: string;
247
+ running: string;
248
+ rslt: string;
249
+ };
250
+
@@ -0,0 +1,48 @@
1
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // RaftUpdateEvents
4
+ // Part of RaftJS
5
+ //
6
+ // Rob Dobson & Chris Greening 2020-2024
7
+ // (C) 2020-2024 All rights reserved
8
+ //
9
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10
+
11
+ export enum RaftUpdateEvent {
12
+ UPDATE_CANT_REACH_SERVER,
13
+ UPDATE_APP_UPDATE_REQUIRED,
14
+ UPDATE_IS_AVAILABLE,
15
+ UPDATE_NOT_AVAILABLE,
16
+ UPDATE_STARTED,
17
+ UPDATE_PROGRESS,
18
+ UPDATE_PROGRESS_FILESYSTEM,
19
+ UPDATE_FAILED,
20
+ UPDATE_SUCCESS_ALL,
21
+ UPDATE_SUCCESS_MAIN_ONLY,
22
+ UPDATE_CANCELLING,
23
+ UPDATE_NOT_CONFIGURED,
24
+ UPDATE_RECONNECTED,
25
+ UPDATE_DISCONNECTED
26
+ }
27
+
28
+ export const RaftUpdateEventNames = {
29
+ [RaftUpdateEvent.UPDATE_CANT_REACH_SERVER]: 'CANT_REACH_SERVER',
30
+ [RaftUpdateEvent.UPDATE_APP_UPDATE_REQUIRED]: 'APP_UPDATE_REQUIRED',
31
+ [RaftUpdateEvent.UPDATE_IS_AVAILABLE]: 'IS_AVAILABLE',
32
+ [RaftUpdateEvent.UPDATE_NOT_AVAILABLE]: 'NOT_AVAILABLE',
33
+ [RaftUpdateEvent.UPDATE_STARTED]: 'STARTED',
34
+ [RaftUpdateEvent.UPDATE_PROGRESS]: 'PROGRESS',
35
+ [RaftUpdateEvent.UPDATE_PROGRESS_FILESYSTEM]: 'PROGRESS_FILESYSTEM',
36
+ [RaftUpdateEvent.UPDATE_FAILED]: 'FAILED',
37
+ [RaftUpdateEvent.UPDATE_SUCCESS_ALL]: 'SUCCESS_ALL',
38
+ [RaftUpdateEvent.UPDATE_SUCCESS_MAIN_ONLY]: 'SUCCESS_MAIN_ONLY',
39
+ [RaftUpdateEvent.UPDATE_CANCELLING]: 'CANCELLING',
40
+ [RaftUpdateEvent.UPDATE_NOT_CONFIGURED]: 'NOT_CONFIGURED',
41
+ [RaftUpdateEvent.UPDATE_RECONNECTED]: 'RECONNECTED',
42
+ [RaftUpdateEvent.UPDATE_DISCONNECTED]: 'DISCONNECTED',
43
+ };
44
+
45
+ export type RaftUpdateEventFn = (
46
+ eventType: RaftUpdateEvent,
47
+ data?: object | string | null,
48
+ ) => void;