@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,142 @@
|
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// RaftCommStats
|
|
4
|
+
// Part of RaftJS
|
|
5
|
+
//
|
|
6
|
+
// Rob Dobson & Chris Greening 2020-2024
|
|
7
|
+
// (C) 2020-2024 All rights reserved
|
|
8
|
+
//
|
|
9
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
|
|
11
|
+
export default class RaftCommsStats {
|
|
12
|
+
_msgRxCount = 0;
|
|
13
|
+
_msgRxCountInWindow = 0;
|
|
14
|
+
_msgRxLastCalcMs = 0;
|
|
15
|
+
_msgRxRate = 0;
|
|
16
|
+
_msgTooShort = 0;
|
|
17
|
+
_msgTxCount = 0;
|
|
18
|
+
_msgTxCountInWindow = 0;
|
|
19
|
+
_msgTxLastCalcMs = 0;
|
|
20
|
+
_msgTxRate = 0;
|
|
21
|
+
_msgNumCollisions = 0;
|
|
22
|
+
_msgNumUnmatched = 0;
|
|
23
|
+
_msgRoundtripWorstMs = 0;
|
|
24
|
+
_msgRoundtripBestMs = 0;
|
|
25
|
+
_msgRoundtripLastMs = 0;
|
|
26
|
+
_msgTimeout = 0;
|
|
27
|
+
_msgRetry = 0;
|
|
28
|
+
|
|
29
|
+
_msgNoConnection = 0;
|
|
30
|
+
_streamBytes = 0;
|
|
31
|
+
_fileBytes = 0;
|
|
32
|
+
|
|
33
|
+
clear() {
|
|
34
|
+
this._msgRxCount = 0;
|
|
35
|
+
this._msgRxCountInWindow = 0;
|
|
36
|
+
this._msgRxLastCalcMs = Date.now();
|
|
37
|
+
this._msgRxRate = 0;
|
|
38
|
+
this._msgTooShort = 0;
|
|
39
|
+
this._msgTxCount = 0;
|
|
40
|
+
this._msgTxCountInWindow = 0;
|
|
41
|
+
this._msgTxLastCalcMs = Date.now();
|
|
42
|
+
this._msgTxRate = 0;
|
|
43
|
+
this._msgNumCollisions = 0;
|
|
44
|
+
this._msgNumUnmatched = 0;
|
|
45
|
+
this._msgRoundtripBestMs = 0;
|
|
46
|
+
this._msgRoundtripWorstMs = 0;
|
|
47
|
+
this._msgRoundtripLastMs = 0;
|
|
48
|
+
this._msgTimeout = 0;
|
|
49
|
+
this._msgRetry = 0;
|
|
50
|
+
this._msgNoConnection = 0;
|
|
51
|
+
this._streamBytes = 0;
|
|
52
|
+
this._fileBytes = 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
msgRx(): void {
|
|
56
|
+
this._msgRxCount++;
|
|
57
|
+
this._msgRxCountInWindow++;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
getMsgRxRate(): number {
|
|
61
|
+
if (this._msgRxLastCalcMs + 1000 < Date.now()) {
|
|
62
|
+
this._msgRxRate =
|
|
63
|
+
(1000.0 * this._msgRxCountInWindow) /
|
|
64
|
+
(Date.now() - this._msgRxLastCalcMs);
|
|
65
|
+
this._msgRxLastCalcMs = Date.now();
|
|
66
|
+
this._msgRxCountInWindow = 0;
|
|
67
|
+
}
|
|
68
|
+
return this._msgRxRate;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
msgTooShort(): void {
|
|
72
|
+
this._msgTooShort++;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
msgTx(): void {
|
|
76
|
+
this._msgTxCount++;
|
|
77
|
+
this._msgTxCountInWindow++;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
getMsgTxRate(): number {
|
|
81
|
+
if (this._msgTxLastCalcMs + 1000 < Date.now()) {
|
|
82
|
+
this._msgTxRate =
|
|
83
|
+
(1000.0 * this._msgTxCountInWindow) /
|
|
84
|
+
(Date.now() - this._msgTxLastCalcMs);
|
|
85
|
+
this._msgTxLastCalcMs = Date.now();
|
|
86
|
+
this._msgTxCountInWindow = 0;
|
|
87
|
+
}
|
|
88
|
+
return this._msgTxRate;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
getRTWorstMs(): number {
|
|
92
|
+
return this._msgRoundtripWorstMs;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
getRTLastMs(): number {
|
|
96
|
+
return this._msgRoundtripLastMs;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
getRTBestMs(): number {
|
|
100
|
+
return this._msgRoundtripBestMs;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
getRetries(): number {
|
|
104
|
+
return this._msgRetry;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
recordMsgNumCollision(): void {
|
|
108
|
+
this._msgNumCollisions++;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
recordMsgNumUnmatched(): void {
|
|
112
|
+
this._msgNumUnmatched++;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
recordMsgResp(roundTripMs: number): void {
|
|
116
|
+
if (this._msgRoundtripWorstMs < roundTripMs)
|
|
117
|
+
this._msgRoundtripWorstMs = roundTripMs;
|
|
118
|
+
if (this._msgRoundtripBestMs == 0 || this._msgRoundtripBestMs > roundTripMs)
|
|
119
|
+
this._msgRoundtripBestMs = roundTripMs;
|
|
120
|
+
this._msgRoundtripLastMs = roundTripMs;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
recordMsgTimeout(): void {
|
|
124
|
+
this._msgTimeout++;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
recordMsgNoConnection(): void {
|
|
128
|
+
this._msgNoConnection++;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
recordMsgRetry(): void {
|
|
132
|
+
this._msgRetry++;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
recordStreamBytes(bytes: number): void {
|
|
136
|
+
this._streamBytes += bytes;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
recordFileBytes(bytes: number): void {
|
|
140
|
+
this._fileBytes += bytes;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
//
|
|
3
|
+
// RaftConnEvents
|
|
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 RaftConnEvent {
|
|
12
|
+
CONN_CONNECTING,
|
|
13
|
+
CONN_CONNECTED,
|
|
14
|
+
CONN_CONNECTION_FAILED,
|
|
15
|
+
CONN_DISCONNECTED,
|
|
16
|
+
CONN_REJECTED,
|
|
17
|
+
CONN_ISSUE_DETECTED,
|
|
18
|
+
CONN_ISSUE_RESOLVED,
|
|
19
|
+
CONN_VERIFYING_CORRECT,
|
|
20
|
+
CONN_VERIFIED_CORRECT,
|
|
21
|
+
CONN_GETTING_INFO,
|
|
22
|
+
CONN_GOT_INFO,
|
|
23
|
+
CONN_BLUETOOTH_STATE,
|
|
24
|
+
CONN_STREAMING_ISSUE
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const RaftConnEventNames = {
|
|
28
|
+
[RaftConnEvent.CONN_CONNECTING]: 'CONNECTING',
|
|
29
|
+
[RaftConnEvent.CONN_CONNECTED]: 'CONNECTED',
|
|
30
|
+
[RaftConnEvent.CONN_CONNECTION_FAILED]: 'CONNECTION_FAILED',
|
|
31
|
+
[RaftConnEvent.CONN_DISCONNECTED]: 'DISCONNECTED',
|
|
32
|
+
[RaftConnEvent.CONN_REJECTED]: 'REJECTED',
|
|
33
|
+
[RaftConnEvent.CONN_ISSUE_DETECTED]: 'ISSUE_DETECTED',
|
|
34
|
+
[RaftConnEvent.CONN_ISSUE_RESOLVED]: 'ISSUE_RESOLVED',
|
|
35
|
+
[RaftConnEvent.CONN_VERIFYING_CORRECT]: 'VERIFYING_CORRECT',
|
|
36
|
+
[RaftConnEvent.CONN_VERIFIED_CORRECT]: 'VERIFIED_CORRECT',
|
|
37
|
+
[RaftConnEvent.CONN_GETTING_INFO]: 'GETTING_INFO',
|
|
38
|
+
[RaftConnEvent.CONN_GOT_INFO]: 'GOT_INFO',
|
|
39
|
+
[RaftConnEvent.CONN_BLUETOOTH_STATE]: 'BLUETOOTH_STATE',
|
|
40
|
+
[RaftConnEvent.CONN_STREAMING_ISSUE]: 'STREAMING_ISSUE',
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export type RaftConnEventFn = (
|
|
44
|
+
eventType: RaftConnEvent,
|
|
45
|
+
data?: string[] | string | null,
|
|
46
|
+
) => void;
|