@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.
- package/.editorconfig +14 -0
- package/.gitattributes +11 -0
- package/.nvmrc +1 -0
- package/LICENSE +22 -0
- package/README.md +11 -0
- package/TODO.md +1 -0
- package/dist/RaftAttributeHandler.d.ts +12 -0
- package/dist/RaftAttributeHandler.js +241 -0
- package/dist/RaftAttributeHandler.js.map +1 -0
- package/dist/RaftChannel.d.ts +18 -0
- package/dist/RaftChannel.js +12 -0
- package/dist/RaftChannel.js.map +1 -0
- package/dist/RaftChannelWebBLE.d.ts +38 -0
- package/dist/RaftChannelWebBLE.js +274 -0
- package/dist/RaftChannelWebBLE.js.map +1 -0
- package/dist/RaftChannelWebSerial.d.ts +37 -0
- package/dist/RaftChannelWebSerial.js +319 -0
- package/dist/RaftChannelWebSerial.js.map +1 -0
- package/dist/RaftChannelWebSocket.d.ts +28 -0
- package/dist/RaftChannelWebSocket.js +197 -0
- package/dist/RaftChannelWebSocket.js.map +1 -0
- package/dist/RaftCommsStats.d.ts +39 -0
- package/dist/RaftCommsStats.js +128 -0
- package/dist/RaftCommsStats.js.map +1 -0
- package/dist/RaftConnEvents.d.ts +31 -0
- package/dist/RaftConnEvents.js +44 -0
- package/dist/RaftConnEvents.js.map +1 -0
- package/dist/RaftConnector.d.ts +242 -0
- package/dist/RaftConnector.js +613 -0
- package/dist/RaftConnector.js.map +1 -0
- package/dist/RaftCustomAttrHandler.d.ts +4 -0
- package/dist/RaftCustomAttrHandler.js +50 -0
- package/dist/RaftCustomAttrHandler.js.map +1 -0
- package/dist/RaftDeviceInfo.d.ts +64 -0
- package/dist/RaftDeviceInfo.js +36 -0
- package/dist/RaftDeviceInfo.js.map +1 -0
- package/dist/RaftDeviceManager.d.ts +37 -0
- package/dist/RaftDeviceManager.js +450 -0
- package/dist/RaftDeviceManager.js.map +1 -0
- package/dist/RaftDeviceMsg.d.ts +9 -0
- package/dist/RaftDeviceMsg.js +11 -0
- package/dist/RaftDeviceMsg.js.map +1 -0
- package/dist/RaftDeviceStates.d.ts +33 -0
- package/dist/RaftDeviceStates.js +60 -0
- package/dist/RaftDeviceStates.js.map +1 -0
- package/dist/RaftFileHandler.d.ts +52 -0
- package/dist/RaftFileHandler.js +502 -0
- package/dist/RaftFileHandler.js.map +1 -0
- package/dist/RaftLog.d.ts +22 -0
- package/dist/RaftLog.js +63 -0
- package/dist/RaftLog.js.map +1 -0
- package/dist/RaftMiniHDLC.d.ts +18 -0
- package/dist/RaftMiniHDLC.js +383 -0
- package/dist/RaftMiniHDLC.js.map +1 -0
- package/dist/RaftMsgHandler.d.ts +57 -0
- package/dist/RaftMsgHandler.js +480 -0
- package/dist/RaftMsgHandler.js.map +1 -0
- package/dist/RaftMsgTrackInfo.d.ts +17 -0
- package/dist/RaftMsgTrackInfo.js +42 -0
- package/dist/RaftMsgTrackInfo.js.map +1 -0
- package/dist/RaftProtocolDefs.d.ts +30 -0
- package/dist/RaftProtocolDefs.js +48 -0
- package/dist/RaftProtocolDefs.js.map +1 -0
- package/dist/RaftStreamHandler.d.ts +38 -0
- package/dist/RaftStreamHandler.js +257 -0
- package/dist/RaftStreamHandler.js.map +1 -0
- package/dist/RaftSystemType.d.ts +21 -0
- package/dist/RaftSystemType.js +3 -0
- package/dist/RaftSystemType.js.map +1 -0
- package/dist/RaftSystemUtils.d.ts +136 -0
- package/dist/RaftSystemUtils.js +410 -0
- package/dist/RaftSystemUtils.js.map +1 -0
- package/dist/RaftTypes.d.ts +184 -0
- package/dist/RaftTypes.js +157 -0
- package/dist/RaftTypes.js.map +1 -0
- package/dist/RaftUpdateEvents.d.ts +33 -0
- package/dist/RaftUpdateEvents.js +46 -0
- package/dist/RaftUpdateEvents.js.map +1 -0
- package/dist/RaftUpdateManager.d.ts +61 -0
- package/dist/RaftUpdateManager.js +618 -0
- package/dist/RaftUpdateManager.js.map +1 -0
- package/dist/RaftUtils.d.ts +125 -0
- package/dist/RaftUtils.js +454 -0
- package/dist/RaftUtils.js.map +1 -0
- package/dist/RaftWifiTypes.d.ts +23 -0
- package/dist/RaftWifiTypes.js +43 -0
- package/dist/RaftWifiTypes.js.map +1 -0
- package/dist/TestDataGen.d.ts +7 -0
- package/dist/TestDataGen.js +133 -0
- package/dist/TestDataGen.js.map +1 -0
- package/dist/main.d.ts +18 -0
- package/dist/main.js +42 -0
- package/dist/main.js.map +1 -0
- package/eslint.config.mjs +33 -0
- package/examples/dashboard/package.json +39 -0
- package/examples/dashboard/src/ConnManager.ts +86 -0
- package/examples/dashboard/src/Main.tsx +100 -0
- package/examples/dashboard/src/StatusScreen.tsx +72 -0
- package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +144 -0
- package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +77 -0
- package/examples/dashboard/src/SystemTypeMarty/RICAddOn.ts +70 -0
- package/examples/dashboard/src/SystemTypeMarty/RICAddOnBase.ts +33 -0
- package/examples/dashboard/src/SystemTypeMarty/RICAddOnManager.ts +342 -0
- package/examples/dashboard/src/SystemTypeMarty/RICCommsStats.ts +170 -0
- package/examples/dashboard/src/SystemTypeMarty/RICHWElem.ts +123 -0
- package/examples/dashboard/src/SystemTypeMarty/RICLEDPatternChecker.ts +207 -0
- package/examples/dashboard/src/SystemTypeMarty/RICROSSerial.ts +464 -0
- package/examples/dashboard/src/SystemTypeMarty/RICServoFaultDetector.ts +146 -0
- package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +32 -0
- package/examples/dashboard/src/SystemTypeMarty/RICSystemUtils.ts +371 -0
- package/examples/dashboard/src/SystemTypeMarty/RICTypes.ts +20 -0
- package/examples/dashboard/src/SystemTypeMarty/SystemTypeMarty.ts +113 -0
- package/examples/dashboard/src/index.html +15 -0
- package/examples/dashboard/src/index.tsx +15 -0
- package/examples/dashboard/src/styles.css +122 -0
- package/examples/dashboard/tsconfig.json +18 -0
- package/jest.config.js +11 -0
- package/package.json +50 -0
- package/src/RaftAttributeHandler.ts +289 -0
- package/src/RaftChannel.ts +30 -0
- package/src/RaftChannelWebBLE.ts +342 -0
- package/src/RaftChannelWebSerial.ts +408 -0
- package/src/RaftChannelWebSocket.ts +245 -0
- package/src/RaftCommsStats.ts +142 -0
- package/src/RaftConnEvents.ts +46 -0
- package/src/RaftConnector.ts +745 -0
- package/src/RaftCustomAttrHandler.ts +54 -0
- package/src/RaftDeviceInfo.ts +104 -0
- package/src/RaftDeviceManager.ts +542 -0
- package/src/RaftDeviceMsg.ts +20 -0
- package/src/RaftDeviceStates.ts +89 -0
- package/src/RaftFileHandler.ts +668 -0
- package/src/RaftLog.ts +70 -0
- package/src/RaftMiniHDLC.ts +396 -0
- package/src/RaftMsgHandler.ts +778 -0
- package/src/RaftMsgTrackInfo.ts +51 -0
- package/src/RaftProtocolDefs.ts +46 -0
- package/src/RaftStreamHandler.ts +328 -0
- package/src/RaftSystemType.ts +25 -0
- package/src/RaftSystemUtils.ts +487 -0
- package/src/RaftTypes.ts +250 -0
- package/src/RaftUpdateEvents.ts +48 -0
- package/src/RaftUpdateManager.ts +778 -0
- package/src/RaftUtils.ts +484 -0
- package/src/RaftWifiTypes.ts +36 -0
- package/src/TestDataGen.ts +157 -0
- package/src/main.ts +28 -0
- package/testdata/TestDeviceTypeRecs.json +492 -0
- package/tsconfig.json +27 -0
package/src/RaftTypes.ts
ADDED
|
@@ -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;
|