@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
|
@@ -0,0 +1,242 @@
|
|
|
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
|
+
* Connect to a Raft application
|
|
102
|
+
*
|
|
103
|
+
* @param {string} method - can be "WebBLE", "WebSocket" or "WebSerial"
|
|
104
|
+
* @param {string | object} locator - either a string (WebSocket URL or serial port) or an object (WebBLE)
|
|
105
|
+
* @returns Promise<boolean>
|
|
106
|
+
*
|
|
107
|
+
*/
|
|
108
|
+
connect(method: string, locator: string | object): Promise<boolean>;
|
|
109
|
+
disconnect(): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
*
|
|
112
|
+
* sendRICRESTMsg
|
|
113
|
+
* @param commandName command API string
|
|
114
|
+
* @param params parameters (simple name value pairs only) to parameterize trajectory
|
|
115
|
+
* @returns Promise<RaftOKFail>
|
|
116
|
+
*
|
|
117
|
+
*/
|
|
118
|
+
sendRICRESTMsg(commandName: string, params: object, bridgeID?: number | undefined): Promise<RaftOKFail>;
|
|
119
|
+
/**
|
|
120
|
+
* onRxReply - handle a reply message
|
|
121
|
+
* @param msgHandle number indicating the message that is being replied to (from the original message)
|
|
122
|
+
* @param msgRsltCode result code
|
|
123
|
+
* @param msgRsltJsonObj result object
|
|
124
|
+
*/
|
|
125
|
+
onRxReply(msgHandle: number, msgRsltCode: RaftMsgResultCode, msgRsltJsonObj: object | null): void;
|
|
126
|
+
/**
|
|
127
|
+
* onRxUnnumberedMsg - handle an unnumbered message
|
|
128
|
+
* @param msgRsltJsonObj result object
|
|
129
|
+
*/
|
|
130
|
+
onRxUnnumberedMsg(msgRsltJsonObj: {
|
|
131
|
+
[key: string]: number | string;
|
|
132
|
+
}): void;
|
|
133
|
+
/**
|
|
134
|
+
* onRxFileBlock - handle a file block
|
|
135
|
+
* @param filePos file position
|
|
136
|
+
* @param fileBlockData file block data
|
|
137
|
+
*/
|
|
138
|
+
onRxFileBlock(filePos: number, fileBlockData: Uint8Array): void;
|
|
139
|
+
/**
|
|
140
|
+
* onRxOtherMsgType - handle other message types
|
|
141
|
+
* @param payload message payload
|
|
142
|
+
* @param frameTimeMs time of frame
|
|
143
|
+
*/
|
|
144
|
+
onRxOtherMsgType(payload: Uint8Array, _frameTimeMs: number): void;
|
|
145
|
+
/**
|
|
146
|
+
* sendFile - send a file
|
|
147
|
+
* @param fileName name of file to send
|
|
148
|
+
* @param fileContents file contents
|
|
149
|
+
* @param progressCallback callback to receive progress updates
|
|
150
|
+
* @returns Promise<boolean> - true if file sent successfully
|
|
151
|
+
*/
|
|
152
|
+
sendFile(fileName: string, fileContents: Uint8Array, progressCallback: ((sent: number, total: number, progress: number) => void) | undefined): Promise<boolean>;
|
|
153
|
+
/**
|
|
154
|
+
* streamAudio - stream audio
|
|
155
|
+
* @param streamContents audio data
|
|
156
|
+
* @param clearExisting true to clear existing audio
|
|
157
|
+
* @param duration duration of audio
|
|
158
|
+
*/
|
|
159
|
+
streamAudio(streamContents: Uint8Array, clearExisting: boolean, duration: number): void;
|
|
160
|
+
/**
|
|
161
|
+
* isStreamStarting - check if stream is starting
|
|
162
|
+
*/
|
|
163
|
+
isStreamStarting(): boolean;
|
|
164
|
+
/**
|
|
165
|
+
* fsGetContents - get file contents
|
|
166
|
+
* @param fileName name of file to get
|
|
167
|
+
* @param fileSource source of file to get (e.g. "fs" or "bridgeserial1", if omitted defaults to "fs")
|
|
168
|
+
* @param progressCallback callback to receive progress updates
|
|
169
|
+
* @returns Promise<RaftFileDownloadResult>
|
|
170
|
+
*/
|
|
171
|
+
fsGetContents(fileName: string, fileSource: string, progressCallback: RaftProgressCBType | undefined): Promise<RaftFileDownloadResult>;
|
|
172
|
+
/**
|
|
173
|
+
* setLegacySoktoMode - set legacy sokto mode
|
|
174
|
+
* @param legacyMode true to set legacy mode
|
|
175
|
+
*/
|
|
176
|
+
setLegacySoktoMode(legacyMode: boolean): void;
|
|
177
|
+
/**
|
|
178
|
+
* createCommsBridge - create a comms bridge
|
|
179
|
+
* @param bridgeSource source of bridge (e.g. "Serial1")
|
|
180
|
+
* @param bridgeName name of bridge
|
|
181
|
+
* @param idleCloseSecs idle close time seconds
|
|
182
|
+
* @returns Promise<RaftBridgeSetupResp>
|
|
183
|
+
*/
|
|
184
|
+
createCommsBridge(bridgeSource: string, bridgeName: string, idleCloseSecs?: number): Promise<RaftBridgeSetupResp>;
|
|
185
|
+
/**
|
|
186
|
+
* ParkMiller random number generator
|
|
187
|
+
* @param seed
|
|
188
|
+
* @returns number
|
|
189
|
+
*/
|
|
190
|
+
private parkmiller_next;
|
|
191
|
+
/**
|
|
192
|
+
* checkConnPerformance - check connection performance
|
|
193
|
+
* @returns Promise<number | undefined> - connection performance
|
|
194
|
+
*/
|
|
195
|
+
checkConnPerformance(): Promise<number | undefined>;
|
|
196
|
+
/**
|
|
197
|
+
* onConnEvent - handle connection event
|
|
198
|
+
* @param eventEnum connection event enumeration
|
|
199
|
+
* @param data data associated with event
|
|
200
|
+
* @returns void
|
|
201
|
+
*/
|
|
202
|
+
onConnEvent(eventEnum: RaftConnEvent, data?: object | string | null | undefined): void;
|
|
203
|
+
/**
|
|
204
|
+
* Retry connection
|
|
205
|
+
*/
|
|
206
|
+
private _retryConnection;
|
|
207
|
+
/**
|
|
208
|
+
* Connect to channel
|
|
209
|
+
* @returns Promise<boolean> - true if connected
|
|
210
|
+
*/
|
|
211
|
+
private _connectToChannel;
|
|
212
|
+
/**
|
|
213
|
+
* onUpdateEvent - handle update event
|
|
214
|
+
* @param eventEnum
|
|
215
|
+
* @param data
|
|
216
|
+
*/
|
|
217
|
+
_onUpdateEvent(eventEnum: RaftUpdateEvent, data?: object | string | null | undefined): void;
|
|
218
|
+
/**
|
|
219
|
+
* otaUpdateCheck - check for OTA update
|
|
220
|
+
* @returns Promise<RaftUpdateEvent> - update event
|
|
221
|
+
* */
|
|
222
|
+
otaUpdateCheck(): Promise<RaftUpdateEvent>;
|
|
223
|
+
/**
|
|
224
|
+
* otaUpdateStart - start OTA update
|
|
225
|
+
* @returns Promise<RaftUpdateEvent> - update event
|
|
226
|
+
* */
|
|
227
|
+
otaUpdateStart(): Promise<RaftUpdateEvent>;
|
|
228
|
+
/**
|
|
229
|
+
* otaUpdateCancel - cancel OTA update
|
|
230
|
+
* @returns Promise<void>
|
|
231
|
+
* */
|
|
232
|
+
otaUpdateCancel(): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* setupUpdateManager - setup the update manager
|
|
235
|
+
* @param appVersion - app version
|
|
236
|
+
* @param appUpdateURL - app update URL
|
|
237
|
+
* @param firmwareBaseURL - firmware base URL
|
|
238
|
+
* @param fileDownloader - file downloader
|
|
239
|
+
* @returns void
|
|
240
|
+
* */
|
|
241
|
+
setupUpdateManager(appVersion: string, appUpdateURL: string, firmwareBaseURL: string, fileDownloader: RaftFileDownloadFn): void;
|
|
242
|
+
}
|