@v5x/serial 0.5.1 → 0.5.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.
- package/dist/Vex.d.ts +235 -0
- package/dist/VexCRC.d.ts +19 -0
- package/dist/VexConnection.d.ts +45 -0
- package/dist/VexDevice.d.ts +177 -0
- package/dist/VexEvent.d.ts +16 -0
- package/dist/VexFirmwareVersion.d.ts +55 -0
- package/dist/VexIniConfig.d.ts +27 -0
- package/dist/VexPacket.d.ts +512 -0
- package/dist/VexPacketView.d.ts +18 -0
- package/dist/index.d.ts +9 -0
- package/dist/v5-serial-protocol.cjs.js +4516 -0
- package/dist/v5-serial-protocol.cjs.js.map +1 -0
- package/dist/v5-serial-protocol.es.js +4401 -0
- package/dist/v5-serial-protocol.es.js.map +1 -0
- package/dts/VexPacket.js +5 -7
- package/dts/VexPacket.js.map +1 -1
- package/index.d.ts +1098 -0
- package/package.json +5 -4
package/index.d.ts
ADDED
|
@@ -0,0 +1,1098 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V5 Serial Protocol v0.5.2
|
|
3
|
+
* Copyright 2022-2026 jerrylum <me@jerryio.com>
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/// <reference types="dom-serial" />
|
|
7
|
+
/**
|
|
8
|
+
* This is a class to make it easier to handle passing the VEXos version
|
|
9
|
+
* information around in the application. This provides ways to get any
|
|
10
|
+
* form of the string representation and quickly compare versions.
|
|
11
|
+
*/
|
|
12
|
+
declare class VexFirmwareVersion {
|
|
13
|
+
major: number;
|
|
14
|
+
minor: number;
|
|
15
|
+
build: number;
|
|
16
|
+
beta: number;
|
|
17
|
+
constructor(major: number, minor: number, build: number, beta: number);
|
|
18
|
+
/**
|
|
19
|
+
* Take a a string of MAJOR.MINOR.BUILD.bBETA and converts it to a
|
|
20
|
+
* VexFirmwareVersion instance
|
|
21
|
+
* @param version the string to process
|
|
22
|
+
* @returns a VexFirmwareVersion representing the provided string
|
|
23
|
+
*/
|
|
24
|
+
static fromString(version: string): VexFirmwareVersion;
|
|
25
|
+
/**
|
|
26
|
+
* Take a a Uint8Array and converts it to a VexFirmwareVersion instance
|
|
27
|
+
* @param data the array to process
|
|
28
|
+
* @param offset the offset to start at
|
|
29
|
+
* @returns a VexFirmwareVersion representing the provided string
|
|
30
|
+
*/
|
|
31
|
+
static fromUint8Array(data: Uint8Array, offset?: number, reverse?: boolean): VexFirmwareVersion;
|
|
32
|
+
static allZero(): VexFirmwareVersion;
|
|
33
|
+
/**
|
|
34
|
+
* Take a a string of MAJOR_MINOR_BUILD_BETA and converts it to a
|
|
35
|
+
* VexFirmwareVersion instance
|
|
36
|
+
* @param version the string to process
|
|
37
|
+
* @returns a VexFirmwareVersion representing the provided string
|
|
38
|
+
*/
|
|
39
|
+
static fromCatalogString(version: string): VexFirmwareVersion;
|
|
40
|
+
isBeta(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* returns version as Uint Array
|
|
43
|
+
*/
|
|
44
|
+
toUint8Array(reverse?: boolean): Uint8Array;
|
|
45
|
+
/**
|
|
46
|
+
* returns version as major.minor.build
|
|
47
|
+
*/
|
|
48
|
+
toUserString(): string;
|
|
49
|
+
/**
|
|
50
|
+
* returns version as ${major}.${minor}.{build}.b${beta}
|
|
51
|
+
*/
|
|
52
|
+
toInternalString(): string;
|
|
53
|
+
/**
|
|
54
|
+
* compares this version to the provided version.
|
|
55
|
+
* * if this < b: negative
|
|
56
|
+
* * if this = b: 0
|
|
57
|
+
* * if this > b: positive
|
|
58
|
+
* @param that the version to compare again
|
|
59
|
+
*/
|
|
60
|
+
compare(that: VexFirmwareVersion): number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
declare class CrcGenerator {
|
|
64
|
+
crc16Table: Uint32Array;
|
|
65
|
+
crc32Table: Uint32Array;
|
|
66
|
+
static POLYNOMIAL_CRC32: number;
|
|
67
|
+
static POLYNOMIAL_CRC16: number;
|
|
68
|
+
constructor();
|
|
69
|
+
/**
|
|
70
|
+
* Calculate CRC16 for buffer
|
|
71
|
+
*/
|
|
72
|
+
crc16(buf: Uint8Array, initValue: number): number;
|
|
73
|
+
/**
|
|
74
|
+
* Generate CRC32 reverse table
|
|
75
|
+
*/
|
|
76
|
+
crc32GenTable(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Calculate CRC32 for buffer
|
|
79
|
+
*/
|
|
80
|
+
crc32(buf: Uint8Array, initValue: number): number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare class PacketEncoder {
|
|
84
|
+
static HEADERS_LENGTH: number;
|
|
85
|
+
static HEADER_TO_DEVICE: number[];
|
|
86
|
+
static HEADER_TO_HOST: number[];
|
|
87
|
+
static J2000_EPOCH: number;
|
|
88
|
+
vexVersion: number;
|
|
89
|
+
crcgen: CrcGenerator;
|
|
90
|
+
allPacketsTable: Record<string, typeof HostBoundPacket>;
|
|
91
|
+
static getInstance(): PacketEncoder;
|
|
92
|
+
private constructor();
|
|
93
|
+
/**
|
|
94
|
+
* Create the vex CDC header
|
|
95
|
+
* @param buf the bytes to send
|
|
96
|
+
*/
|
|
97
|
+
createHeader(buf: ArrayBuffer | undefined): Uint8Array;
|
|
98
|
+
/**
|
|
99
|
+
* Create the vex CDC simple message
|
|
100
|
+
* @param cmd the CDC command byte
|
|
101
|
+
*/
|
|
102
|
+
cdcCommand(cmd: number): Uint8Array;
|
|
103
|
+
/**
|
|
104
|
+
* Create the vex CDC simple message
|
|
105
|
+
* @param cmd the CDC command byte
|
|
106
|
+
* @param data the data to send
|
|
107
|
+
*/
|
|
108
|
+
cdcCommandWithData(cmd: number, data: Uint8Array): Uint8Array;
|
|
109
|
+
/**
|
|
110
|
+
* Create the vex CDC extended message
|
|
111
|
+
* @param cmd the CDC command byte
|
|
112
|
+
* @param ext the CDC extended command byte
|
|
113
|
+
* @return a message
|
|
114
|
+
*/
|
|
115
|
+
cdc2Command(cmd: number, ext: number): Uint8Array;
|
|
116
|
+
/**
|
|
117
|
+
* Calculate buffer length for new CDC extended command
|
|
118
|
+
* @param data the CDC extended command payload
|
|
119
|
+
* @returns the required buffer length of the command message
|
|
120
|
+
*/
|
|
121
|
+
cdc2CommandBufferLength(data: Uint8Array): number;
|
|
122
|
+
/**
|
|
123
|
+
* Create the vex CDC extended message with some data
|
|
124
|
+
* @param cmd the CDC command byte
|
|
125
|
+
* @param ext the CDC extended command byte
|
|
126
|
+
* @param data the CDC extended command payload
|
|
127
|
+
* @return a message
|
|
128
|
+
*/
|
|
129
|
+
cdc2CommandWithData(cmd: number, ext: number, data: Uint8Array): Uint8Array;
|
|
130
|
+
validateHeader(data: Uint8Array): boolean;
|
|
131
|
+
validateMessageCdc(data: Uint8Array): boolean;
|
|
132
|
+
getPayloadSize(data: Uint8Array): number;
|
|
133
|
+
}
|
|
134
|
+
declare abstract class Packet {
|
|
135
|
+
data: Uint8Array;
|
|
136
|
+
static ENCODER: PacketEncoder;
|
|
137
|
+
constructor(rawData: DataArray);
|
|
138
|
+
}
|
|
139
|
+
declare class DeviceBoundPacket extends Packet {
|
|
140
|
+
constructor(payload?: Uint8Array);
|
|
141
|
+
}
|
|
142
|
+
declare class Query1H2DPacket extends DeviceBoundPacket {
|
|
143
|
+
static COMMAND_ID: number;
|
|
144
|
+
static COMMAND_EXTENDED_ID: undefined;
|
|
145
|
+
constructor();
|
|
146
|
+
}
|
|
147
|
+
declare class SystemVersionH2DPacket extends DeviceBoundPacket {
|
|
148
|
+
static COMMAND_ID: number;
|
|
149
|
+
static COMMAND_EXTENDED_ID: undefined;
|
|
150
|
+
constructor();
|
|
151
|
+
}
|
|
152
|
+
declare class UpdateMatchModeH2DPacket extends DeviceBoundPacket {
|
|
153
|
+
static COMMAND_ID: number;
|
|
154
|
+
static COMMAND_EXTENDED_ID: number;
|
|
155
|
+
constructor(mode: MatchMode, matchClock: number);
|
|
156
|
+
}
|
|
157
|
+
declare class GetMatchStatusH2DPacket extends DeviceBoundPacket {
|
|
158
|
+
static COMMAND_ID: number;
|
|
159
|
+
static COMMAND_EXTENDED_ID: number;
|
|
160
|
+
constructor();
|
|
161
|
+
}
|
|
162
|
+
declare class GetRadioModeH2DPacket extends DeviceBoundPacket {
|
|
163
|
+
static COMMAND_ID: number;
|
|
164
|
+
static COMMAND_EXTENDED_ID: number;
|
|
165
|
+
constructor(mode: number);
|
|
166
|
+
}
|
|
167
|
+
declare class FileControlH2DPacket extends DeviceBoundPacket {
|
|
168
|
+
static COMMAND_ID: number;
|
|
169
|
+
static COMMAND_EXTENDED_ID: number;
|
|
170
|
+
constructor(a: number, b: number);
|
|
171
|
+
}
|
|
172
|
+
declare class InitFileTransferH2DPacket extends DeviceBoundPacket {
|
|
173
|
+
static COMMAND_ID: number;
|
|
174
|
+
static COMMAND_EXTENDED_ID: number;
|
|
175
|
+
constructor(operation: FileInitAction, target: FileDownloadTarget, vendor: FileVendor, options: FileInitOption, binary: Uint8Array, addr: number, name: string, type?: string, version?: VexFirmwareVersion);
|
|
176
|
+
}
|
|
177
|
+
declare class ExitFileTransferH2DPacket extends DeviceBoundPacket {
|
|
178
|
+
static COMMAND_ID: number;
|
|
179
|
+
static COMMAND_EXTENDED_ID: number;
|
|
180
|
+
constructor(action: FileExitAction);
|
|
181
|
+
}
|
|
182
|
+
declare class WriteFileH2DPacket extends DeviceBoundPacket {
|
|
183
|
+
static COMMAND_ID: number;
|
|
184
|
+
static COMMAND_EXTENDED_ID: number;
|
|
185
|
+
constructor(addr: number, buf: Uint8Array);
|
|
186
|
+
}
|
|
187
|
+
declare class ReadFileH2DPacket extends DeviceBoundPacket {
|
|
188
|
+
static COMMAND_ID: number;
|
|
189
|
+
static COMMAND_EXTENDED_ID: number;
|
|
190
|
+
constructor(addr: number, size: number);
|
|
191
|
+
}
|
|
192
|
+
declare class LinkFileH2DPacket extends DeviceBoundPacket {
|
|
193
|
+
static COMMAND_ID: number;
|
|
194
|
+
static COMMAND_EXTENDED_ID: number;
|
|
195
|
+
constructor(vendor: FileVendor, fileName: string, options: number);
|
|
196
|
+
}
|
|
197
|
+
declare class GetDirectoryFileCountH2DPacket extends DeviceBoundPacket {
|
|
198
|
+
static COMMAND_ID: number;
|
|
199
|
+
static COMMAND_EXTENDED_ID: number;
|
|
200
|
+
constructor(vendor: FileVendor);
|
|
201
|
+
}
|
|
202
|
+
declare class GetDirectoryEntryH2DPacket extends DeviceBoundPacket {
|
|
203
|
+
static COMMAND_ID: number;
|
|
204
|
+
static COMMAND_EXTENDED_ID: number;
|
|
205
|
+
constructor(index: number);
|
|
206
|
+
}
|
|
207
|
+
declare class LoadFileActionH2DPacket extends DeviceBoundPacket {
|
|
208
|
+
static COMMAND_ID: number;
|
|
209
|
+
static COMMAND_EXTENDED_ID: number;
|
|
210
|
+
constructor(vendor: FileVendor, actionId: FileLoadAction, fileNameOrSlotNumber: SlotNumber | string);
|
|
211
|
+
}
|
|
212
|
+
declare class GetFileMetadataH2DPacket extends DeviceBoundPacket {
|
|
213
|
+
static COMMAND_ID: number;
|
|
214
|
+
static COMMAND_EXTENDED_ID: number;
|
|
215
|
+
constructor(vendor: FileVendor, fileName: string, options: number);
|
|
216
|
+
}
|
|
217
|
+
declare class SetFileMetadataH2DPacket extends DeviceBoundPacket {
|
|
218
|
+
static COMMAND_ID: number;
|
|
219
|
+
static COMMAND_EXTENDED_ID: number;
|
|
220
|
+
constructor(vendor: FileVendor, fileName: string, fileInfo: IFileMetadata, options: number);
|
|
221
|
+
}
|
|
222
|
+
declare class EraseFileH2DPacket extends DeviceBoundPacket {
|
|
223
|
+
static COMMAND_ID: number;
|
|
224
|
+
static COMMAND_EXTENDED_ID: number;
|
|
225
|
+
constructor(vendor: FileVendor, fileName: string);
|
|
226
|
+
}
|
|
227
|
+
declare class GetProgramSlotInfoH2DPacket extends DeviceBoundPacket {
|
|
228
|
+
static COMMAND_ID: number;
|
|
229
|
+
static COMMAND_EXTENDED_ID: number;
|
|
230
|
+
constructor(vendor: FileVendor, fileName: string);
|
|
231
|
+
}
|
|
232
|
+
declare class FileClearUpH2DPacket extends DeviceBoundPacket {
|
|
233
|
+
static COMMAND_ID: number;
|
|
234
|
+
static COMMAND_EXTENDED_ID: number;
|
|
235
|
+
constructor(vendor: FileVendor);
|
|
236
|
+
}
|
|
237
|
+
declare class FileFormatH2DPacket extends DeviceBoundPacket {
|
|
238
|
+
static COMMAND_ID: number;
|
|
239
|
+
static COMMAND_EXTENDED_ID: number;
|
|
240
|
+
constructor();
|
|
241
|
+
}
|
|
242
|
+
declare class GetSystemFlagsH2DPacket extends DeviceBoundPacket {
|
|
243
|
+
static COMMAND_ID: number;
|
|
244
|
+
static COMMAND_EXTENDED_ID: number;
|
|
245
|
+
}
|
|
246
|
+
declare class GetDeviceStatusH2DPacket extends DeviceBoundPacket {
|
|
247
|
+
static COMMAND_ID: number;
|
|
248
|
+
static COMMAND_EXTENDED_ID: number;
|
|
249
|
+
constructor();
|
|
250
|
+
}
|
|
251
|
+
declare class GetSystemStatusH2DPacket extends DeviceBoundPacket {
|
|
252
|
+
static COMMAND_ID: number;
|
|
253
|
+
static COMMAND_EXTENDED_ID: number;
|
|
254
|
+
constructor();
|
|
255
|
+
}
|
|
256
|
+
declare class GetFdtStatusH2DPacket extends DeviceBoundPacket {
|
|
257
|
+
static COMMAND_ID: number;
|
|
258
|
+
static COMMAND_EXTENDED_ID: number;
|
|
259
|
+
constructor();
|
|
260
|
+
}
|
|
261
|
+
declare class GetLogCountH2DPacket extends DeviceBoundPacket {
|
|
262
|
+
static COMMAND_ID: number;
|
|
263
|
+
static COMMAND_EXTENDED_ID: number;
|
|
264
|
+
constructor();
|
|
265
|
+
}
|
|
266
|
+
declare class ReadLogPageH2DPacket extends DeviceBoundPacket {
|
|
267
|
+
static COMMAND_ID: number;
|
|
268
|
+
static COMMAND_EXTENDED_ID: number;
|
|
269
|
+
constructor(offset: number, count: number);
|
|
270
|
+
}
|
|
271
|
+
declare class GetRadioStatusH2DPacket extends DeviceBoundPacket {
|
|
272
|
+
static COMMAND_ID: number;
|
|
273
|
+
static COMMAND_EXTENDED_ID: number;
|
|
274
|
+
constructor();
|
|
275
|
+
}
|
|
276
|
+
declare class GetUserDataH2DPacket extends DeviceBoundPacket {
|
|
277
|
+
static COMMAND_ID: number;
|
|
278
|
+
static COMMAND_EXTENDED_ID: number;
|
|
279
|
+
constructor(e?: Uint8Array);
|
|
280
|
+
}
|
|
281
|
+
declare class ScreenCaptureH2DPacket extends DeviceBoundPacket {
|
|
282
|
+
static COMMAND_ID: number;
|
|
283
|
+
static COMMAND_EXTENDED_ID: number;
|
|
284
|
+
constructor(e: number);
|
|
285
|
+
}
|
|
286
|
+
declare class SendDashTouchH2DPacket extends DeviceBoundPacket {
|
|
287
|
+
static COMMAND_ID: number;
|
|
288
|
+
static COMMAND_EXTENDED_ID: number;
|
|
289
|
+
constructor(x: number, y: number, press: boolean);
|
|
290
|
+
}
|
|
291
|
+
declare class SelectDashH2DPacket extends DeviceBoundPacket {
|
|
292
|
+
static COMMAND_ID: number;
|
|
293
|
+
static COMMAND_EXTENDED_ID: number;
|
|
294
|
+
/** @param port untested */
|
|
295
|
+
constructor(screen: number | SelectDashScreen, port: number);
|
|
296
|
+
}
|
|
297
|
+
declare class EnableDashH2DPacket extends DeviceBoundPacket {
|
|
298
|
+
static COMMAND_ID: number;
|
|
299
|
+
static COMMAND_EXTENDED_ID: number;
|
|
300
|
+
constructor(unknown1?: number);
|
|
301
|
+
}
|
|
302
|
+
declare class DisableDashH2DPacket extends DeviceBoundPacket {
|
|
303
|
+
static COMMAND_ID: number;
|
|
304
|
+
static COMMAND_EXTENDED_ID: number;
|
|
305
|
+
constructor();
|
|
306
|
+
}
|
|
307
|
+
declare class ReadKeyValueH2DPacket extends DeviceBoundPacket {
|
|
308
|
+
static COMMAND_ID: number;
|
|
309
|
+
static COMMAND_EXTENDED_ID: number;
|
|
310
|
+
constructor(key: string);
|
|
311
|
+
}
|
|
312
|
+
declare class WriteKeyValueH2DPacket extends DeviceBoundPacket {
|
|
313
|
+
static COMMAND_ID: number;
|
|
314
|
+
static COMMAND_EXTENDED_ID: number;
|
|
315
|
+
constructor(key: string, value: string);
|
|
316
|
+
}
|
|
317
|
+
declare class GetSlot1to4InfoH2DPacket extends DeviceBoundPacket {
|
|
318
|
+
static COMMAND_ID: number;
|
|
319
|
+
static COMMAND_EXTENDED_ID: number;
|
|
320
|
+
constructor();
|
|
321
|
+
}
|
|
322
|
+
declare class GetSlot5to8InfoH2DPacket extends DeviceBoundPacket {
|
|
323
|
+
static COMMAND_ID: number;
|
|
324
|
+
static COMMAND_EXTENDED_ID: number;
|
|
325
|
+
constructor();
|
|
326
|
+
}
|
|
327
|
+
declare class FactoryStatusH2DPacket extends DeviceBoundPacket {
|
|
328
|
+
static COMMAND_ID: number;
|
|
329
|
+
static COMMAND_EXTENDED_ID: number;
|
|
330
|
+
}
|
|
331
|
+
declare class FactoryEnableH2DPacket extends DeviceBoundPacket {
|
|
332
|
+
static COMMAND_ID: number;
|
|
333
|
+
static COMMAND_EXTENDED_ID: number;
|
|
334
|
+
constructor();
|
|
335
|
+
}
|
|
336
|
+
declare class HostBoundPacket extends Packet {
|
|
337
|
+
ack: AckType;
|
|
338
|
+
payloadSize: number;
|
|
339
|
+
ackIndex: number;
|
|
340
|
+
constructor(data: DataArray);
|
|
341
|
+
static isValidPacket(data: Uint8Array, n: number): boolean;
|
|
342
|
+
}
|
|
343
|
+
declare class Query1ReplyD2HPacket extends HostBoundPacket {
|
|
344
|
+
static COMMAND_ID: number;
|
|
345
|
+
static COMMAND_EXTENDED_ID: undefined;
|
|
346
|
+
joystickFlag1: number;
|
|
347
|
+
joystickFlag2: number;
|
|
348
|
+
brainFlag1: number;
|
|
349
|
+
brainFlag2: number;
|
|
350
|
+
bootloadFlag1: number;
|
|
351
|
+
bootloadFlag2: number;
|
|
352
|
+
constructor(data: DataArray);
|
|
353
|
+
}
|
|
354
|
+
declare class SystemVersionReplyD2HPacket extends HostBoundPacket {
|
|
355
|
+
static COMMAND_ID: number;
|
|
356
|
+
static COMMAND_EXTENDED_ID: undefined;
|
|
357
|
+
version: VexFirmwareVersion;
|
|
358
|
+
hardware: number;
|
|
359
|
+
constructor(data: DataArray);
|
|
360
|
+
}
|
|
361
|
+
declare class MatchModeReplyD2HPacket extends HostBoundPacket {
|
|
362
|
+
static COMMAND_ID: number;
|
|
363
|
+
static COMMAND_EXTENDED_ID: number;
|
|
364
|
+
modebit: number;
|
|
365
|
+
constructor(data: DataArray);
|
|
366
|
+
}
|
|
367
|
+
declare class MatchStatusReplyD2HPacket extends HostBoundPacket {
|
|
368
|
+
static COMMAND_ID: number;
|
|
369
|
+
static COMMAND_EXTENDED_ID: number;
|
|
370
|
+
rssi: number;
|
|
371
|
+
systemStatusBits: number;
|
|
372
|
+
radioStatusBits: number;
|
|
373
|
+
fieldStatusBits: number;
|
|
374
|
+
matchClock: number;
|
|
375
|
+
brainBatteryPercent: number;
|
|
376
|
+
controllerBatteryPercent: number;
|
|
377
|
+
partnerControllerBatteryPercent: number;
|
|
378
|
+
pad: number;
|
|
379
|
+
buttons: number;
|
|
380
|
+
activeProgram: number;
|
|
381
|
+
radioType: number;
|
|
382
|
+
radioChannel: number;
|
|
383
|
+
radioSlot: number;
|
|
384
|
+
robotName: string;
|
|
385
|
+
controllerFlags: number;
|
|
386
|
+
rxSignalQuality: number;
|
|
387
|
+
constructor(data: DataArray);
|
|
388
|
+
}
|
|
389
|
+
declare class FileControlReplyD2HPacket extends HostBoundPacket {
|
|
390
|
+
static COMMAND_ID: number;
|
|
391
|
+
static COMMAND_EXTENDED_ID: number;
|
|
392
|
+
}
|
|
393
|
+
declare class InitFileTransferReplyD2HPacket extends HostBoundPacket {
|
|
394
|
+
static COMMAND_ID: number;
|
|
395
|
+
static COMMAND_EXTENDED_ID: number;
|
|
396
|
+
windowSize: number;
|
|
397
|
+
fileSize: number;
|
|
398
|
+
crc32: number;
|
|
399
|
+
constructor(data: DataArray);
|
|
400
|
+
}
|
|
401
|
+
declare class ExitFileTransferReplyD2HPacket extends HostBoundPacket {
|
|
402
|
+
static COMMAND_ID: number;
|
|
403
|
+
static COMMAND_EXTENDED_ID: number;
|
|
404
|
+
}
|
|
405
|
+
declare class WriteFileReplyD2HPacket extends HostBoundPacket {
|
|
406
|
+
static COMMAND_ID: number;
|
|
407
|
+
static COMMAND_EXTENDED_ID: number;
|
|
408
|
+
}
|
|
409
|
+
declare class ReadFileReplyD2HPacket extends HostBoundPacket {
|
|
410
|
+
static COMMAND_ID: number;
|
|
411
|
+
static COMMAND_EXTENDED_ID: number;
|
|
412
|
+
addr: number;
|
|
413
|
+
length: number;
|
|
414
|
+
buf: ArrayBuffer;
|
|
415
|
+
constructor(data: DataArray);
|
|
416
|
+
static isValidPacket(data: Uint8Array, n: number): boolean;
|
|
417
|
+
}
|
|
418
|
+
declare class LinkFileReplyD2HPacket extends HostBoundPacket {
|
|
419
|
+
static COMMAND_ID: number;
|
|
420
|
+
static COMMAND_EXTENDED_ID: number;
|
|
421
|
+
}
|
|
422
|
+
declare class GetDirectoryFileCountReplyD2HPacket extends HostBoundPacket {
|
|
423
|
+
static COMMAND_ID: number;
|
|
424
|
+
static COMMAND_EXTENDED_ID: number;
|
|
425
|
+
count: number;
|
|
426
|
+
constructor(data: DataArray);
|
|
427
|
+
}
|
|
428
|
+
declare class GetDirectoryEntryReplyD2HPacket extends HostBoundPacket {
|
|
429
|
+
static COMMAND_ID: number;
|
|
430
|
+
static COMMAND_EXTENDED_ID: number;
|
|
431
|
+
file?: IFileEntry;
|
|
432
|
+
constructor(data: DataArray);
|
|
433
|
+
}
|
|
434
|
+
declare class LoadFileActionReplyD2HPacket extends HostBoundPacket {
|
|
435
|
+
static COMMAND_ID: number;
|
|
436
|
+
static COMMAND_EXTENDED_ID: number;
|
|
437
|
+
}
|
|
438
|
+
declare class GetFileMetadataReplyD2HPacket extends HostBoundPacket {
|
|
439
|
+
static COMMAND_ID: number;
|
|
440
|
+
static COMMAND_EXTENDED_ID: number;
|
|
441
|
+
file?: IFileMetadata;
|
|
442
|
+
constructor(data: DataArray);
|
|
443
|
+
}
|
|
444
|
+
declare class SetFileMetadataReplyD2HPacket extends HostBoundPacket {
|
|
445
|
+
static COMMAND_ID: number;
|
|
446
|
+
static COMMAND_EXTENDED_ID: number;
|
|
447
|
+
}
|
|
448
|
+
declare class EraseFileReplyD2HPacket extends HostBoundPacket {
|
|
449
|
+
static COMMAND_ID: number;
|
|
450
|
+
static COMMAND_EXTENDED_ID: number;
|
|
451
|
+
}
|
|
452
|
+
declare class GetProgramSlotInfoReplyD2HPacket extends HostBoundPacket {
|
|
453
|
+
static COMMAND_ID: number;
|
|
454
|
+
static COMMAND_EXTENDED_ID: number;
|
|
455
|
+
requestedSlot: number;
|
|
456
|
+
slot: number;
|
|
457
|
+
constructor(data: DataArray);
|
|
458
|
+
}
|
|
459
|
+
declare class FileClearUpReplyD2HPacket extends HostBoundPacket {
|
|
460
|
+
static COMMAND_ID: number;
|
|
461
|
+
static COMMAND_EXTENDED_ID: number;
|
|
462
|
+
}
|
|
463
|
+
declare class FileFormatReplyD2HPacket extends HostBoundPacket {
|
|
464
|
+
static COMMAND_ID: number;
|
|
465
|
+
static COMMAND_EXTENDED_ID: number;
|
|
466
|
+
}
|
|
467
|
+
declare class GetSystemFlagsReplyD2HPacket extends HostBoundPacket {
|
|
468
|
+
static COMMAND_ID: number;
|
|
469
|
+
static COMMAND_EXTENDED_ID: number;
|
|
470
|
+
flags: number;
|
|
471
|
+
radioSearching: boolean;
|
|
472
|
+
radioQuality?: number;
|
|
473
|
+
controllerBatteryPercent?: number;
|
|
474
|
+
partnerControllerBatteryPercent?: number;
|
|
475
|
+
battery?: number;
|
|
476
|
+
currentProgram: number;
|
|
477
|
+
constructor(data: DataArray);
|
|
478
|
+
}
|
|
479
|
+
declare class GetDeviceStatusReplyD2HPacket extends HostBoundPacket {
|
|
480
|
+
static COMMAND_ID: number;
|
|
481
|
+
static COMMAND_EXTENDED_ID: number;
|
|
482
|
+
count: number;
|
|
483
|
+
devices: ISmartDeviceInfo[];
|
|
484
|
+
constructor(data: DataArray);
|
|
485
|
+
}
|
|
486
|
+
declare class GetSystemStatusReplyD2HPacket extends HostBoundPacket {
|
|
487
|
+
static COMMAND_ID: number;
|
|
488
|
+
static COMMAND_EXTENDED_ID: number;
|
|
489
|
+
systemVersion: VexFirmwareVersion;
|
|
490
|
+
cpu0Version: VexFirmwareVersion;
|
|
491
|
+
cpu1Version: VexFirmwareVersion;
|
|
492
|
+
nxpVersion: VexFirmwareVersion;
|
|
493
|
+
touchVersion: VexFirmwareVersion;
|
|
494
|
+
uniqueId: number;
|
|
495
|
+
sysflags: number[];
|
|
496
|
+
eventBrain: boolean;
|
|
497
|
+
romBootloaderActive: boolean;
|
|
498
|
+
ramBootloaderActive: boolean;
|
|
499
|
+
goldenVersion: VexFirmwareVersion;
|
|
500
|
+
constructor(data: DataArray);
|
|
501
|
+
}
|
|
502
|
+
declare class GetFdtStatusReplyD2HPacket extends HostBoundPacket {
|
|
503
|
+
static COMMAND_ID: number;
|
|
504
|
+
static COMMAND_EXTENDED_ID: number;
|
|
505
|
+
count: number;
|
|
506
|
+
status: unknown[];
|
|
507
|
+
constructor(data: DataArray);
|
|
508
|
+
}
|
|
509
|
+
declare class GetLogCountReplyD2HPacket extends HostBoundPacket {
|
|
510
|
+
static COMMAND_ID: number;
|
|
511
|
+
static COMMAND_EXTENDED_ID: number;
|
|
512
|
+
count: number;
|
|
513
|
+
constructor(data: DataArray);
|
|
514
|
+
}
|
|
515
|
+
declare class ReadLogPageReplyD2HPacket extends HostBoundPacket {
|
|
516
|
+
static COMMAND_ID: number;
|
|
517
|
+
static COMMAND_EXTENDED_ID: number;
|
|
518
|
+
offset: number;
|
|
519
|
+
count: number;
|
|
520
|
+
entries: unknown[];
|
|
521
|
+
constructor(data: DataArray);
|
|
522
|
+
}
|
|
523
|
+
declare class GetRadioStatusReplyD2HPacket extends HostBoundPacket {
|
|
524
|
+
static COMMAND_ID: number;
|
|
525
|
+
static COMMAND_EXTENDED_ID: number;
|
|
526
|
+
device: number;
|
|
527
|
+
quality: number;
|
|
528
|
+
strength: number;
|
|
529
|
+
channel: number;
|
|
530
|
+
timeslot: number;
|
|
531
|
+
constructor(data: DataArray);
|
|
532
|
+
}
|
|
533
|
+
declare class GetUserDataReplyD2HPacket extends HostBoundPacket {
|
|
534
|
+
static COMMAND_ID: number;
|
|
535
|
+
static COMMAND_EXTENDED_ID: number;
|
|
536
|
+
}
|
|
537
|
+
declare class ScreenCaptureReplyD2HPacket extends HostBoundPacket {
|
|
538
|
+
static COMMAND_ID: number;
|
|
539
|
+
static COMMAND_EXTENDED_ID: number;
|
|
540
|
+
}
|
|
541
|
+
declare class SendDashTouchReplyD2HPacket extends HostBoundPacket {
|
|
542
|
+
static COMMAND_ID: number;
|
|
543
|
+
static COMMAND_EXTENDED_ID: number;
|
|
544
|
+
}
|
|
545
|
+
declare class SelectDashReplyD2HPacket extends HostBoundPacket {
|
|
546
|
+
static COMMAND_ID: number;
|
|
547
|
+
static COMMAND_EXTENDED_ID: number;
|
|
548
|
+
}
|
|
549
|
+
declare class EnableDashReplyD2HPacket extends HostBoundPacket {
|
|
550
|
+
static COMMAND_ID: number;
|
|
551
|
+
static COMMAND_EXTENDED_ID: number;
|
|
552
|
+
}
|
|
553
|
+
declare class DisableDashReplyD2HPacket extends HostBoundPacket {
|
|
554
|
+
static COMMAND_ID: number;
|
|
555
|
+
static COMMAND_EXTENDED_ID: number;
|
|
556
|
+
}
|
|
557
|
+
declare class ReadKeyValueReplyD2HPacket extends HostBoundPacket {
|
|
558
|
+
static COMMAND_ID: number;
|
|
559
|
+
static COMMAND_EXTENDED_ID: number;
|
|
560
|
+
value: string;
|
|
561
|
+
constructor(data: DataArray);
|
|
562
|
+
}
|
|
563
|
+
declare class WriteKeyValueReplyD2HPacket extends HostBoundPacket {
|
|
564
|
+
static COMMAND_ID: number;
|
|
565
|
+
static COMMAND_EXTENDED_ID: number;
|
|
566
|
+
}
|
|
567
|
+
declare class GetSlot1to4InfoReplyD2HPacket extends HostBoundPacket {
|
|
568
|
+
static COMMAND_ID: number;
|
|
569
|
+
static COMMAND_EXTENDED_ID: number;
|
|
570
|
+
slotFlags: number;
|
|
571
|
+
slots: unknown[];
|
|
572
|
+
constructor(data: DataArray, start?: number);
|
|
573
|
+
}
|
|
574
|
+
declare class GetSlot5to8InfoReplyD2HPacket extends GetSlot1to4InfoReplyD2HPacket {
|
|
575
|
+
static COMMAND_ID: number;
|
|
576
|
+
static COMMAND_EXTENDED_ID: number;
|
|
577
|
+
slotStartIndex: number;
|
|
578
|
+
constructor(data: DataArray);
|
|
579
|
+
}
|
|
580
|
+
declare class FactoryStatusReplyD2HPacket extends HostBoundPacket {
|
|
581
|
+
static COMMAND_ID: number;
|
|
582
|
+
static COMMAND_EXTENDED_ID: number;
|
|
583
|
+
status: number;
|
|
584
|
+
percent: number;
|
|
585
|
+
constructor(data: DataArray);
|
|
586
|
+
}
|
|
587
|
+
declare class FactoryEnableReplyD2HPacket extends HostBoundPacket {
|
|
588
|
+
static COMMAND_ID: number;
|
|
589
|
+
static COMMAND_EXTENDED_ID: number;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
declare const USER_PROG_CHUNK_SIZE = 4096;
|
|
593
|
+
declare const USER_FLASH_START = 50331648;
|
|
594
|
+
declare const USER_FLASH_SYS_CODE_START = 54525952;
|
|
595
|
+
declare const USER_FLASH_USR_CODE_START = 58720256;
|
|
596
|
+
declare const USER_FLASH_END = 134217728;
|
|
597
|
+
declare const USER_FLASH_MAX_FILE_SIZE = 2097152;
|
|
598
|
+
declare const USER_FLASH_START_B = 270532608;
|
|
599
|
+
declare const USER_FLASH_END_B = 272629760;
|
|
600
|
+
declare const USER_FLASH_START_C = 807403520;
|
|
601
|
+
declare const USER_FLASH_END_C = 822083584;
|
|
602
|
+
interface ISmartDeviceInfo {
|
|
603
|
+
port: number;
|
|
604
|
+
type: SmartDeviceType;
|
|
605
|
+
status: number;
|
|
606
|
+
betaversion: number;
|
|
607
|
+
version: number;
|
|
608
|
+
bootversion: number;
|
|
609
|
+
}
|
|
610
|
+
interface IFileBasicInfo {
|
|
611
|
+
filename: string;
|
|
612
|
+
vendor: FileVendor;
|
|
613
|
+
loadAddress?: number;
|
|
614
|
+
size?: number;
|
|
615
|
+
}
|
|
616
|
+
interface IFileMetadata {
|
|
617
|
+
loadAddress: number;
|
|
618
|
+
size: number;
|
|
619
|
+
crc32: number;
|
|
620
|
+
type: string;
|
|
621
|
+
timestamp: number;
|
|
622
|
+
version: VexFirmwareVersion;
|
|
623
|
+
}
|
|
624
|
+
interface IFileHandle extends IFileBasicInfo, IFileMetadata {
|
|
625
|
+
loadAddress: number;
|
|
626
|
+
size: number;
|
|
627
|
+
}
|
|
628
|
+
interface IFileEntry extends IFileMetadata {
|
|
629
|
+
index: number;
|
|
630
|
+
filename: string;
|
|
631
|
+
}
|
|
632
|
+
interface IFileWriteRequest {
|
|
633
|
+
filename: string;
|
|
634
|
+
vendor?: FileVendor;
|
|
635
|
+
loadAddress?: number;
|
|
636
|
+
buf?: Uint8Array;
|
|
637
|
+
downloadTarget: FileDownloadTarget;
|
|
638
|
+
exttype?: string;
|
|
639
|
+
autoRun: boolean;
|
|
640
|
+
linkedFile?: IFileWriteRequest;
|
|
641
|
+
}
|
|
642
|
+
interface IProgramInfo {
|
|
643
|
+
name: string;
|
|
644
|
+
binfile: string;
|
|
645
|
+
size: number;
|
|
646
|
+
time: Date;
|
|
647
|
+
slot: number;
|
|
648
|
+
requestedSlot: number;
|
|
649
|
+
}
|
|
650
|
+
interface IPacketCallback {
|
|
651
|
+
callback: (data: HostBoundPacket | ArrayBuffer | AckType) => void;
|
|
652
|
+
timeout: ReturnType<typeof setTimeout>;
|
|
653
|
+
wantedCommandId: number | undefined;
|
|
654
|
+
wantedCommandExId: number | undefined;
|
|
655
|
+
}
|
|
656
|
+
type DataArray = ArrayBuffer | Uint8Array;
|
|
657
|
+
type MatchMode = "driver" | "autonomous" | "disabled";
|
|
658
|
+
declare enum FileVendor {
|
|
659
|
+
USER = 1,
|
|
660
|
+
SYS = 15,
|
|
661
|
+
DEV1 = 16,
|
|
662
|
+
DEV2 = 24,
|
|
663
|
+
DEV3 = 32,
|
|
664
|
+
DEV4 = 40,
|
|
665
|
+
DEV5 = 48,
|
|
666
|
+
DEV6 = 56,
|
|
667
|
+
VEXVM = 64,
|
|
668
|
+
VEX = 240,
|
|
669
|
+
UNDEFINED = 241
|
|
670
|
+
}
|
|
671
|
+
declare enum FileDownloadTarget {
|
|
672
|
+
FILE_TARGET_DDR = 0,
|
|
673
|
+
FILE_TARGET_QSPI = 1,
|
|
674
|
+
FILE_TARGET_CBUF = 2,
|
|
675
|
+
FILE_TARGET_VBUF = 3,
|
|
676
|
+
FILE_TARGET_DDRC = 4,
|
|
677
|
+
FILE_TARGET_DDRE = 5,
|
|
678
|
+
FILE_TARGET_FLASH = 6,
|
|
679
|
+
FILE_TARGET_RADIO = 7,
|
|
680
|
+
FILE_TARGET_A1 = 13,
|
|
681
|
+
FILE_TARGET_B1 = 14,
|
|
682
|
+
FILE_TARGET_B2 = 15
|
|
683
|
+
}
|
|
684
|
+
declare enum FileInitAction {
|
|
685
|
+
WRITE = 1,
|
|
686
|
+
READ = 2
|
|
687
|
+
}
|
|
688
|
+
declare enum FileInitOption {
|
|
689
|
+
NONE = 0,
|
|
690
|
+
OVERWRITE = 1
|
|
691
|
+
}
|
|
692
|
+
declare enum FileLoadAction {
|
|
693
|
+
RUN = 0,
|
|
694
|
+
STOP = 128
|
|
695
|
+
}
|
|
696
|
+
declare enum FileExitAction {
|
|
697
|
+
EXIT_NONE = 0,
|
|
698
|
+
EXIT_RUN = 1,
|
|
699
|
+
EXIT_HALT = 3
|
|
700
|
+
}
|
|
701
|
+
declare enum RadioChannelType {
|
|
702
|
+
PIT = 0,
|
|
703
|
+
DOWNLOAD = 1
|
|
704
|
+
}
|
|
705
|
+
type SlotNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
706
|
+
type ZerobaseSlotNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
707
|
+
type PortNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;
|
|
708
|
+
declare enum AckType {
|
|
709
|
+
CDC2_ACK = 118,
|
|
710
|
+
CDC2_NACK = 255,
|
|
711
|
+
CDC2_NACK_PACKET_CRC = 206,
|
|
712
|
+
CDC2_NACK_CMD_LENGTH = 208,
|
|
713
|
+
CDC2_NACK_SIZE = 209,
|
|
714
|
+
CDC2_NACK_CRC = 210,
|
|
715
|
+
CDC2_NACK_FILE = 211,
|
|
716
|
+
CDC2_NACK_INIT = 212,
|
|
717
|
+
CDC2_NACK_FUNC = 213,
|
|
718
|
+
CDC2_NACK_ALIGN = 214,
|
|
719
|
+
CDC2_NACK_ADDR = 215,
|
|
720
|
+
CDC2_NACK_INCOMPLETE = 216,
|
|
721
|
+
CDC2_NACK_DIR_INDEX = 217,
|
|
722
|
+
CDC2_NACK_MAX_USER_FILES = 218,
|
|
723
|
+
CDC2_NACK_FILE_EXISTS = 219,
|
|
724
|
+
CDC2_NACK_FILE_SYS_FULL = 220,
|
|
725
|
+
TIMEOUT = 256,
|
|
726
|
+
WRITE_ERROR = 257
|
|
727
|
+
}
|
|
728
|
+
declare enum SmartDeviceType {
|
|
729
|
+
EMPTY = 0,
|
|
730
|
+
V5_POWER = 1,
|
|
731
|
+
MOTOR = 2,
|
|
732
|
+
LED = 3,
|
|
733
|
+
ABS_ENCODER_SENSOR = 4,
|
|
734
|
+
CR_MOTOR = 5,
|
|
735
|
+
IMU_SENSOR = 6,
|
|
736
|
+
DISTANCE_SENSOR = 7,
|
|
737
|
+
RADIO_SENSOR = 8,
|
|
738
|
+
CONTROLLER = 9,
|
|
739
|
+
BRAIN = 10,
|
|
740
|
+
VISION_SENSOR = 11,
|
|
741
|
+
ADI = 12,
|
|
742
|
+
PARTNER_CONTROLLER = 13,
|
|
743
|
+
BATTERY = 14,
|
|
744
|
+
SOL = 15,
|
|
745
|
+
OPTICAL_SENSOR = 16,
|
|
746
|
+
MAGNET = 17,
|
|
747
|
+
GPS_SENSOR = 20,
|
|
748
|
+
UNDEFINED_SENSOR = 255
|
|
749
|
+
}
|
|
750
|
+
declare enum SerialDeviceType {
|
|
751
|
+
V5_BRAIN = 1281,
|
|
752
|
+
V5_BRAIN_DFU = 1282,
|
|
753
|
+
V5_CONTROLLER = 1283,
|
|
754
|
+
XILINX = 256,
|
|
755
|
+
IQ_BRAIN = 2,
|
|
756
|
+
IQ_BRAIN2 = 3,
|
|
757
|
+
IQ_BRAIN_DFU = 255,
|
|
758
|
+
IQ2_BRAIN = 512,
|
|
759
|
+
IQ2_BRAIN_DFU = 527,
|
|
760
|
+
IQ2_CONTROLLER = 528,
|
|
761
|
+
IQ2_CONTROLLER_DFU = 543,
|
|
762
|
+
EXP_BRAIN = 1536,
|
|
763
|
+
EXP_BRAIN_DFU = 1551,
|
|
764
|
+
EXP_CONTROLLER = 1552,
|
|
765
|
+
EXP_CONTROLLER_DFU = 1567,
|
|
766
|
+
PIXY = 61440,
|
|
767
|
+
PIXY_DFU = 12,
|
|
768
|
+
VEXCAM = 1287,
|
|
769
|
+
VEXCAM_DFU = 1288,
|
|
770
|
+
SENSOR_TEST = 1535,
|
|
771
|
+
CORTEX_PROGCBL = 10,
|
|
772
|
+
CORTEX_BRAIN = 11,
|
|
773
|
+
CORTEX_JOYSTK = 12,
|
|
774
|
+
VEXNET_KEY_20 = 7,
|
|
775
|
+
VEXNET_KEY_10 = 9587,
|
|
776
|
+
PROLIFIC = 8963
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* found from {@link https://gist.github.com/meisZWFLZ/9ebdd694060137b44959ff7ac80ff4e8 gist}
|
|
780
|
+
* @see {@link https://drive.google.com/drive/folders/11pSNKakbXp7hOYBQ3HNwprFaLalnXOgR screen images}
|
|
781
|
+
*/
|
|
782
|
+
declare enum SelectDashScreen {
|
|
783
|
+
HOME = 0,
|
|
784
|
+
BATTERY = 1,
|
|
785
|
+
LED = 3,
|
|
786
|
+
MATCH_CONFIG = 4,
|
|
787
|
+
MATCH_CONFIG_MORE = 5,
|
|
788
|
+
WIRING = 6,
|
|
789
|
+
RADIO = 8,
|
|
790
|
+
BRAIN = 10,
|
|
791
|
+
RUN_PROGRAM = 13,
|
|
792
|
+
DRIVE_PROGRAM_CONTROL_LEFT_MAPPING = 14,
|
|
793
|
+
DRIVE_PROGRAM_MENU = 15,
|
|
794
|
+
DEVICES = 16,
|
|
795
|
+
USER_PROGRAM_FOLDER = 17,
|
|
796
|
+
VEX_PROGRAM_FOLDER = 18,
|
|
797
|
+
SETTINGS = 19,
|
|
798
|
+
/** theres some scary looking stuff in here */
|
|
799
|
+
SCARY_CONFIGURATION = 20,
|
|
800
|
+
LANGUAGE = 21,
|
|
801
|
+
DRIVE_MOTOR_CONFIG = 22,
|
|
802
|
+
PROGRAM_MENU = 24,
|
|
803
|
+
SHUTDOWN = 25,
|
|
804
|
+
CONTROLLER_2_MAPPING = 26,
|
|
805
|
+
/** theres some even more scary looking stuff in here */
|
|
806
|
+
SCARY_CONFIGURATION_MORE = 27,
|
|
807
|
+
/** maybe this is scarier.. */
|
|
808
|
+
CONFIRM_XX = 28,
|
|
809
|
+
CONTROLLER_1_MAPPING = 29,
|
|
810
|
+
DRIVE_PROGRAM_CONTROL_DUAL_MAPPING = 30,
|
|
811
|
+
DRIVE_PROGRAM_CONTROL_SPLIT_MAPPING = 31,
|
|
812
|
+
DRIVE_PROGRAM_CONTROL_RIGHT_MAPPING = 32,
|
|
813
|
+
/** thats such a bad name */
|
|
814
|
+
MATCH_2_4_PLAYERS = 33,
|
|
815
|
+
EVENT_LOG = 34,
|
|
816
|
+
USER_PROGRAM_WIRING = 40,
|
|
817
|
+
CLAWBOT_PROGRAM_MENU = 41,
|
|
818
|
+
/** aka regulatory */
|
|
819
|
+
ABOUT = 42,
|
|
820
|
+
LANGUAGE_MORE = 43,
|
|
821
|
+
OBJECT_COLOR = 45,
|
|
822
|
+
SIGNATURE_ID = 46,
|
|
823
|
+
LOG_DATA = 47
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
declare class VexEventEmitter {
|
|
827
|
+
handlerMap: Map<string | symbol, Array<(...args: unknown[]) => void>>;
|
|
828
|
+
constructor();
|
|
829
|
+
on(eventName: string | symbol, listener: (...args: unknown[]) => void): void;
|
|
830
|
+
remove(eventName: string | symbol, listener: (...args: unknown[]) => void): void;
|
|
831
|
+
emit(eventName: string | symbol, data: unknown): void;
|
|
832
|
+
clearListeners(): void;
|
|
833
|
+
}
|
|
834
|
+
declare class VexEventTarget {
|
|
835
|
+
emitter: VexEventEmitter;
|
|
836
|
+
constructor();
|
|
837
|
+
emit(eventName: string | symbol, data: unknown): void;
|
|
838
|
+
on(eventName: string | symbol, listener: (...args: unknown[]) => void): void;
|
|
839
|
+
remove(eventName: string | symbol, listener: (...args: unknown[]) => void): void;
|
|
840
|
+
clearListeners(): void;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
declare class ProgramIniConfig {
|
|
844
|
+
baseName: string;
|
|
845
|
+
autorun: boolean;
|
|
846
|
+
project: {
|
|
847
|
+
version: string;
|
|
848
|
+
ide: string;
|
|
849
|
+
file: string;
|
|
850
|
+
};
|
|
851
|
+
program: {
|
|
852
|
+
version: string;
|
|
853
|
+
name: string;
|
|
854
|
+
slot: ZerobaseSlotNumber;
|
|
855
|
+
icon: string;
|
|
856
|
+
iconalt: string;
|
|
857
|
+
description: string;
|
|
858
|
+
date: string;
|
|
859
|
+
timezone: string;
|
|
860
|
+
};
|
|
861
|
+
config: Record<number, string>;
|
|
862
|
+
controller1: Record<string, string>;
|
|
863
|
+
controller2: Record<string, string>;
|
|
864
|
+
constructor();
|
|
865
|
+
setProgramDate(date: Date): void;
|
|
866
|
+
createIni(): string;
|
|
867
|
+
dec2(value: number): string;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* A connection to a V5 device.
|
|
872
|
+
* Emit events: connected, disconnected
|
|
873
|
+
*/
|
|
874
|
+
declare class VexSerialConnection extends VexEventTarget {
|
|
875
|
+
filters: SerialPortFilter[];
|
|
876
|
+
writer: WritableStreamDefaultWriter<unknown> | undefined;
|
|
877
|
+
reader: ReadableStreamDefaultReader<unknown> | undefined;
|
|
878
|
+
port: SerialPort | undefined;
|
|
879
|
+
serial: Serial;
|
|
880
|
+
callbacksQueue: IPacketCallback[];
|
|
881
|
+
get isConnected(): boolean;
|
|
882
|
+
constructor(serial: Serial);
|
|
883
|
+
close(): Promise<void>;
|
|
884
|
+
open(use?: number | undefined, askUser?: boolean): Promise<boolean | undefined>;
|
|
885
|
+
writeData(rawData: DeviceBoundPacket | Uint8Array, resolve: (data: HostBoundPacket | ArrayBuffer | AckType) => void, timeout?: number): void;
|
|
886
|
+
writeDataAsync(rawData: DeviceBoundPacket | Uint8Array, timeout?: number): Promise<HostBoundPacket | ArrayBuffer | AckType>;
|
|
887
|
+
protected readData(cache: Uint8Array, expectedSize: number): Promise<Uint8Array>;
|
|
888
|
+
protected startReader(): Promise<void>;
|
|
889
|
+
query1(): Promise<Query1ReplyD2HPacket | null>;
|
|
890
|
+
getSystemVersion(): Promise<VexFirmwareVersion | null>;
|
|
891
|
+
}
|
|
892
|
+
declare class V5SerialConnection extends VexSerialConnection {
|
|
893
|
+
filters: SerialPortFilter[];
|
|
894
|
+
getDeviceStatus(): Promise<GetDeviceStatusReplyD2HPacket | null>;
|
|
895
|
+
getRadioStatus(): Promise<GetRadioStatusReplyD2HPacket | null>;
|
|
896
|
+
getSystemFlags(): Promise<GetSystemFlagsReplyD2HPacket | null>;
|
|
897
|
+
getSystemStatus(timeout?: number): Promise<GetSystemStatusReplyD2HPacket | null>;
|
|
898
|
+
getMatchStatus(): Promise<MatchStatusReplyD2HPacket | null>;
|
|
899
|
+
uploadProgramToDevice(iniConfig: ProgramIniConfig, binFileBuf: Uint8Array, coldFileBuf: Uint8Array | undefined, progressCallback: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
|
|
900
|
+
downloadFileToHost(request: IFileBasicInfo, downloadTarget?: FileDownloadTarget, progressCallback?: (current: number, total: number) => void): Promise<Uint8Array>;
|
|
901
|
+
uploadFileToDevice(request: IFileWriteRequest, progressCallback?: (current: number, total: number) => void): Promise<boolean>;
|
|
902
|
+
setMatchMode(mode: MatchMode): Promise<MatchModeReplyD2HPacket | null>;
|
|
903
|
+
loadProgram(value: SlotNumber | string): Promise<LoadFileActionReplyD2HPacket | null>;
|
|
904
|
+
stopProgram(): Promise<LoadFileActionReplyD2HPacket | null>;
|
|
905
|
+
mockTouch(x: number, y: number, press: boolean): Promise<SendDashTouchReplyD2HPacket | null>;
|
|
906
|
+
/** @param port untested */
|
|
907
|
+
openScreen(screen: number | SelectDashScreen, port: number): Promise<SelectDashReplyD2HPacket | null>;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
declare function downloadFileFromInternet(link: string): Promise<ArrayBuffer>;
|
|
911
|
+
declare function sleepUntilAsync(f: () => Promise<boolean>, timeout: number, interval?: number): Promise<boolean>;
|
|
912
|
+
declare function sleepUntil(f: () => boolean, timeout: number, interval?: number): Promise<boolean>;
|
|
913
|
+
declare function sleep(ms: number): Promise<unknown>;
|
|
914
|
+
declare abstract class VexSerialDevice extends VexEventTarget {
|
|
915
|
+
connection: V5SerialConnection | undefined;
|
|
916
|
+
defaultSerial: Serial;
|
|
917
|
+
get isConnected(): boolean;
|
|
918
|
+
get deviceType(): SerialDeviceType | undefined;
|
|
919
|
+
constructor(defaultSerial: Serial);
|
|
920
|
+
abstract connect(conn?: V5SerialConnection): Promise<boolean>;
|
|
921
|
+
abstract disconnect(): void;
|
|
922
|
+
}
|
|
923
|
+
declare class V5SerialDeviceState {
|
|
924
|
+
_instance: V5SerialDevice;
|
|
925
|
+
_isFileTransferring: boolean;
|
|
926
|
+
brain: {
|
|
927
|
+
activeProgram: number;
|
|
928
|
+
battery: {
|
|
929
|
+
batteryPercent: number;
|
|
930
|
+
isCharging: boolean;
|
|
931
|
+
};
|
|
932
|
+
button: {
|
|
933
|
+
isPressed: boolean;
|
|
934
|
+
isDoublePressed: boolean;
|
|
935
|
+
};
|
|
936
|
+
cpu0Version: VexFirmwareVersion;
|
|
937
|
+
cpu1Version: VexFirmwareVersion;
|
|
938
|
+
isAvailable: boolean;
|
|
939
|
+
settings: {
|
|
940
|
+
isScreenReversed: boolean;
|
|
941
|
+
isWhiteTheme: boolean;
|
|
942
|
+
usingLanguage: number;
|
|
943
|
+
};
|
|
944
|
+
systemVersion: VexFirmwareVersion;
|
|
945
|
+
uniqueId: number;
|
|
946
|
+
};
|
|
947
|
+
controllers: ({
|
|
948
|
+
battery: number;
|
|
949
|
+
isAvailable: boolean;
|
|
950
|
+
isCharging: boolean;
|
|
951
|
+
} | {
|
|
952
|
+
battery: number;
|
|
953
|
+
isAvailable: boolean;
|
|
954
|
+
isCharging?: undefined;
|
|
955
|
+
})[];
|
|
956
|
+
devices: Array<ISmartDeviceInfo | undefined>;
|
|
957
|
+
isFieldControllerConnected: boolean;
|
|
958
|
+
matchMode: MatchMode;
|
|
959
|
+
radio: {
|
|
960
|
+
channel: number;
|
|
961
|
+
isAvailable: boolean;
|
|
962
|
+
isConnected: boolean;
|
|
963
|
+
isVexNet: boolean;
|
|
964
|
+
isRadioData: boolean;
|
|
965
|
+
latency: number;
|
|
966
|
+
signalQuality: number;
|
|
967
|
+
signalStrength: number;
|
|
968
|
+
};
|
|
969
|
+
constructor(instance: V5SerialDevice);
|
|
970
|
+
}
|
|
971
|
+
declare class V5Brain {
|
|
972
|
+
private readonly state;
|
|
973
|
+
constructor(state: V5SerialDeviceState);
|
|
974
|
+
get isRunningProgram(): boolean;
|
|
975
|
+
get activeProgram(): number;
|
|
976
|
+
set activeProgram(value: number);
|
|
977
|
+
get battery(): V5Battery;
|
|
978
|
+
get button(): V5BrainButton;
|
|
979
|
+
get cpu0Version(): VexFirmwareVersion;
|
|
980
|
+
get cpu1Version(): VexFirmwareVersion;
|
|
981
|
+
get isAvailable(): boolean;
|
|
982
|
+
get settings(): V5BrainSettings;
|
|
983
|
+
get systemVersion(): VexFirmwareVersion;
|
|
984
|
+
get uniqueId(): number;
|
|
985
|
+
getValue(key: string): Promise<string | undefined>;
|
|
986
|
+
setValue(key: string, value: string): Promise<boolean>;
|
|
987
|
+
listFiles(vendor?: FileVendor): Promise<IFileHandle[] | undefined>;
|
|
988
|
+
listProgram(): Promise<IProgramInfo[] | undefined>;
|
|
989
|
+
readFile(request: IFileBasicInfo | string, downloadTarget?: FileDownloadTarget, progressCallback?: (current: number, total: number) => void): Promise<Uint8Array | undefined>;
|
|
990
|
+
removeFile(request: IFileBasicInfo | string): Promise<boolean | undefined>;
|
|
991
|
+
removeAllFiles(): Promise<boolean | undefined>;
|
|
992
|
+
uploadFirmware(publicUrl?: string, usingVersion?: string, progressCallback?: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
|
|
993
|
+
uploadProgram(iniConfig: ProgramIniConfig, binFileBuf: Uint8Array, coldFileBuf: Uint8Array | undefined, progressCallback: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
|
|
994
|
+
writeFile(request: IFileWriteRequest, progressCallback?: (current: number, total: number) => void): Promise<boolean | undefined>;
|
|
995
|
+
/**
|
|
996
|
+
*
|
|
997
|
+
* @param progressCallback Informs the progress of the download.
|
|
998
|
+
* @returns array of bytes where each pixel is represented by 3 consecutive bytes (rgb).
|
|
999
|
+
* This array's length is 272 width * 480 height * 3 channels = 391680 bytes.
|
|
1000
|
+
*/
|
|
1001
|
+
captureScreen(progressCallback?: (current: number, total: number) => void): Promise<Uint8Array | undefined>;
|
|
1002
|
+
}
|
|
1003
|
+
declare class V5Battery {
|
|
1004
|
+
private readonly state;
|
|
1005
|
+
constructor(state: V5SerialDeviceState);
|
|
1006
|
+
get batteryPercent(): number;
|
|
1007
|
+
get isCharging(): boolean;
|
|
1008
|
+
}
|
|
1009
|
+
declare class V5BrainButton {
|
|
1010
|
+
private readonly state;
|
|
1011
|
+
constructor(state: V5SerialDeviceState);
|
|
1012
|
+
get isPressed(): boolean;
|
|
1013
|
+
get isDoublePressed(): boolean;
|
|
1014
|
+
}
|
|
1015
|
+
declare class V5BrainSettings {
|
|
1016
|
+
private readonly state;
|
|
1017
|
+
constructor(state: V5SerialDeviceState);
|
|
1018
|
+
get isScreenReversed(): boolean;
|
|
1019
|
+
get isWhiteTheme(): boolean;
|
|
1020
|
+
get usingLanguage(): number;
|
|
1021
|
+
}
|
|
1022
|
+
declare class V5Controller {
|
|
1023
|
+
private readonly state;
|
|
1024
|
+
private readonly controllerIndex;
|
|
1025
|
+
constructor(state: V5SerialDeviceState, controllerIndex: number);
|
|
1026
|
+
get batteryPercent(): number;
|
|
1027
|
+
get isMasterController(): boolean;
|
|
1028
|
+
get isAvailable(): boolean;
|
|
1029
|
+
get isCharging(): boolean | undefined;
|
|
1030
|
+
}
|
|
1031
|
+
declare class V5SmartDevice {
|
|
1032
|
+
private readonly state;
|
|
1033
|
+
private readonly deviceIndex;
|
|
1034
|
+
constructor(state: V5SerialDeviceState, index: number);
|
|
1035
|
+
protected getDeviceInfo(): ISmartDeviceInfo | undefined;
|
|
1036
|
+
get isAvailable(): boolean;
|
|
1037
|
+
get port(): number;
|
|
1038
|
+
get type(): SmartDeviceType;
|
|
1039
|
+
get version(): number;
|
|
1040
|
+
}
|
|
1041
|
+
declare class V5Radio {
|
|
1042
|
+
private readonly state;
|
|
1043
|
+
constructor(state: V5SerialDeviceState);
|
|
1044
|
+
get channel(): number;
|
|
1045
|
+
get isAvailable(): boolean;
|
|
1046
|
+
get isConnected(): boolean;
|
|
1047
|
+
get isVexNet(): boolean;
|
|
1048
|
+
get isRadioData(): boolean;
|
|
1049
|
+
get latency(): number;
|
|
1050
|
+
changeChannel(channel: RadioChannelType): Promise<boolean>;
|
|
1051
|
+
}
|
|
1052
|
+
declare class V5SerialDevice extends VexSerialDevice {
|
|
1053
|
+
autoReconnect: boolean;
|
|
1054
|
+
autoRefresh: boolean;
|
|
1055
|
+
pauseRefreshOnFileTransfer: boolean;
|
|
1056
|
+
protected _isReconnecting: boolean;
|
|
1057
|
+
private _refreshInterval;
|
|
1058
|
+
state: V5SerialDeviceState;
|
|
1059
|
+
constructor(defaultSerial: Serial);
|
|
1060
|
+
get isV5Controller(): boolean;
|
|
1061
|
+
get brain(): V5Brain;
|
|
1062
|
+
get controllers(): [V5Controller, V5Controller];
|
|
1063
|
+
get devices(): V5SmartDevice[];
|
|
1064
|
+
get isFieldControllerConnected(): boolean;
|
|
1065
|
+
get matchMode(): MatchMode;
|
|
1066
|
+
set matchMode(value: MatchMode);
|
|
1067
|
+
get radio(): V5Radio;
|
|
1068
|
+
mockTouch(x: number, y: number, press: boolean): Promise<boolean>;
|
|
1069
|
+
connect(conn?: V5SerialConnection): Promise<boolean>;
|
|
1070
|
+
disconnect(): Promise<void>;
|
|
1071
|
+
dispose(): Promise<void>;
|
|
1072
|
+
/**
|
|
1073
|
+
* @param timeout defaults to 0. If timeout is 0, then it will attempt to reconnect forever
|
|
1074
|
+
* @returns
|
|
1075
|
+
*/
|
|
1076
|
+
reconnect(timeout?: number): Promise<boolean>;
|
|
1077
|
+
private doAfterConnect;
|
|
1078
|
+
refresh(): Promise<boolean>;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
declare class PacketView extends DataView {
|
|
1082
|
+
position: number;
|
|
1083
|
+
littleEndianDefault: boolean;
|
|
1084
|
+
constructor(buffer: ArrayBuffer, offset?: number, length?: number);
|
|
1085
|
+
static fromPacket(packet: HostBoundPacket): PacketView;
|
|
1086
|
+
nextInt8(): number;
|
|
1087
|
+
nextUint8(): number;
|
|
1088
|
+
nextInt16(littleEndian?: boolean): number;
|
|
1089
|
+
nextUint16(littleEndian?: boolean): number;
|
|
1090
|
+
nextInt32(littleEndian?: boolean): number;
|
|
1091
|
+
nextUint32(littleEndian?: boolean): number;
|
|
1092
|
+
nextString(length: number): string;
|
|
1093
|
+
nextNTBS(length: number): string;
|
|
1094
|
+
nextVarNTBS(length: number): string;
|
|
1095
|
+
nextVersion(reverse?: boolean): VexFirmwareVersion;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
export { AckType, CrcGenerator, DataArray, DeviceBoundPacket, DisableDashH2DPacket, DisableDashReplyD2HPacket, EnableDashH2DPacket, EnableDashReplyD2HPacket, EraseFileH2DPacket, EraseFileReplyD2HPacket, ExitFileTransferH2DPacket, ExitFileTransferReplyD2HPacket, FactoryEnableH2DPacket, FactoryEnableReplyD2HPacket, FactoryStatusH2DPacket, FactoryStatusReplyD2HPacket, FileClearUpH2DPacket, FileClearUpReplyD2HPacket, FileControlH2DPacket, FileControlReplyD2HPacket, FileDownloadTarget, FileExitAction, FileFormatH2DPacket, FileFormatReplyD2HPacket, FileInitAction, FileInitOption, FileLoadAction, FileVendor, GetDeviceStatusH2DPacket, GetDeviceStatusReplyD2HPacket, GetDirectoryEntryH2DPacket, GetDirectoryEntryReplyD2HPacket, GetDirectoryFileCountH2DPacket, GetDirectoryFileCountReplyD2HPacket, GetFdtStatusH2DPacket, GetFdtStatusReplyD2HPacket, GetFileMetadataH2DPacket, GetFileMetadataReplyD2HPacket, GetLogCountH2DPacket, GetLogCountReplyD2HPacket, GetMatchStatusH2DPacket, GetProgramSlotInfoH2DPacket, GetProgramSlotInfoReplyD2HPacket, GetRadioModeH2DPacket, GetRadioStatusH2DPacket, GetRadioStatusReplyD2HPacket, GetSlot1to4InfoH2DPacket, GetSlot1to4InfoReplyD2HPacket, GetSlot5to8InfoH2DPacket, GetSlot5to8InfoReplyD2HPacket, GetSystemFlagsH2DPacket, GetSystemFlagsReplyD2HPacket, GetSystemStatusH2DPacket, GetSystemStatusReplyD2HPacket, GetUserDataH2DPacket, GetUserDataReplyD2HPacket, HostBoundPacket, IFileBasicInfo, IFileEntry, IFileHandle, IFileMetadata, IFileWriteRequest, IPacketCallback, IProgramInfo, ISmartDeviceInfo, InitFileTransferH2DPacket, InitFileTransferReplyD2HPacket, LinkFileH2DPacket, LinkFileReplyD2HPacket, LoadFileActionH2DPacket, LoadFileActionReplyD2HPacket, MatchMode, MatchModeReplyD2HPacket, MatchStatusReplyD2HPacket, Packet, PacketEncoder, PacketView, PortNumber, ProgramIniConfig, Query1H2DPacket, Query1ReplyD2HPacket, RadioChannelType, ReadFileH2DPacket, ReadFileReplyD2HPacket, ReadKeyValueH2DPacket, ReadKeyValueReplyD2HPacket, ReadLogPageH2DPacket, ReadLogPageReplyD2HPacket, ScreenCaptureH2DPacket, ScreenCaptureReplyD2HPacket, SelectDashH2DPacket, SelectDashReplyD2HPacket, SelectDashScreen, SendDashTouchH2DPacket, SendDashTouchReplyD2HPacket, SerialDeviceType, SetFileMetadataH2DPacket, SetFileMetadataReplyD2HPacket, SlotNumber, SmartDeviceType, SystemVersionH2DPacket, SystemVersionReplyD2HPacket, USER_FLASH_END, USER_FLASH_END_B, USER_FLASH_END_C, USER_FLASH_MAX_FILE_SIZE, USER_FLASH_START, USER_FLASH_START_B, USER_FLASH_START_C, USER_FLASH_SYS_CODE_START, USER_FLASH_USR_CODE_START, USER_PROG_CHUNK_SIZE, UpdateMatchModeH2DPacket, V5Battery, V5Brain, V5BrainButton, V5BrainSettings, V5Controller, V5Radio, V5SerialConnection, V5SerialDevice, V5SmartDevice, VexEventEmitter, VexEventTarget, VexFirmwareVersion, VexSerialConnection, VexSerialDevice, WriteFileH2DPacket, WriteFileReplyD2HPacket, WriteKeyValueH2DPacket, WriteKeyValueReplyD2HPacket, ZerobaseSlotNumber, downloadFileFromInternet, sleep, sleepUntil, sleepUntilAsync };
|