@v5x/serial 0.5.0 → 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.
Files changed (46) hide show
  1. package/dist/Vex.d.ts +235 -0
  2. package/dist/VexCRC.d.ts +19 -0
  3. package/dist/VexConnection.d.ts +45 -0
  4. package/dist/VexDevice.d.ts +177 -0
  5. package/dist/VexEvent.d.ts +16 -0
  6. package/dist/VexFirmwareVersion.d.ts +55 -0
  7. package/dist/VexIniConfig.d.ts +27 -0
  8. package/dist/VexPacket.d.ts +512 -0
  9. package/dist/VexPacketView.d.ts +18 -0
  10. package/dist/index.d.ts +9 -0
  11. package/dist/v5-serial-protocol.cjs.js +4516 -0
  12. package/dist/v5-serial-protocol.cjs.js.map +1 -0
  13. package/dist/v5-serial-protocol.es.js +4401 -0
  14. package/dist/v5-serial-protocol.es.js.map +1 -0
  15. package/dts/Vex.d.ts +235 -0
  16. package/dts/Vex.js +189 -0
  17. package/dts/Vex.js.map +1 -0
  18. package/dts/VexCRC.d.ts +19 -0
  19. package/dts/VexCRC.js +89 -0
  20. package/dts/VexCRC.js.map +1 -0
  21. package/dts/VexConnection.d.ts +45 -0
  22. package/dts/VexConnection.js +500 -0
  23. package/dts/VexConnection.js.map +1 -0
  24. package/dts/VexDevice.d.ts +177 -0
  25. package/dts/VexDevice.js +944 -0
  26. package/dts/VexDevice.js.map +1 -0
  27. package/dts/VexEvent.d.ts +16 -0
  28. package/dts/VexEvent.js +47 -0
  29. package/dts/VexEvent.js.map +1 -0
  30. package/dts/VexFirmwareVersion.d.ts +55 -0
  31. package/dts/VexFirmwareVersion.js +104 -0
  32. package/dts/VexFirmwareVersion.js.map +1 -0
  33. package/dts/VexIniConfig.d.ts +27 -0
  34. package/dts/VexIniConfig.js +122 -0
  35. package/dts/VexIniConfig.js.map +1 -0
  36. package/dts/VexPacket.d.ts +512 -0
  37. package/dts/VexPacket.js +1036 -0
  38. package/dts/VexPacket.js.map +1 -0
  39. package/dts/VexPacketView.d.ts +18 -0
  40. package/dts/VexPacketView.js +84 -0
  41. package/dts/VexPacketView.js.map +1 -0
  42. package/dts/index.d.ts +9 -0
  43. package/dts/index.js +10 -0
  44. package/dts/index.js.map +1 -0
  45. package/index.d.ts +1098 -0
  46. package/package.json +5 -4
@@ -0,0 +1,1036 @@
1
+ import { PacketView } from "./VexPacketView";
2
+ import { CrcGenerator } from "./VexCRC";
3
+ import * as AllPackets from "./VexPacket";
4
+ import { AckType, FileInitAction, } from "./Vex";
5
+ import { VexFirmwareVersion } from "./VexFirmwareVersion";
6
+ export class PacketEncoder {
7
+ static getInstance() {
8
+ if (Packet.ENCODER === undefined) {
9
+ Packet.ENCODER = new PacketEncoder();
10
+ }
11
+ return Packet.ENCODER;
12
+ }
13
+ constructor() {
14
+ this.allPacketsTable = {};
15
+ this.vexVersion = 0;
16
+ this.crcgen = new CrcGenerator();
17
+ Object.values(AllPackets).forEach((packet) => {
18
+ if (packet.prototype instanceof HostBoundPacket) {
19
+ this.allPacketsTable[
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ packet.COMMAND_ID + " " + packet.COMMAND_EXTENDED_ID] = packet;
22
+ }
23
+ });
24
+ }
25
+ /**
26
+ * Create the vex CDC header
27
+ * @param buf the bytes to send
28
+ */
29
+ createHeader(buf) {
30
+ // create a buffer if is is not defined
31
+ if (buf === undefined || buf.byteLength < PacketEncoder.HEADERS_LENGTH) {
32
+ buf = new ArrayBuffer(PacketEncoder.HEADERS_LENGTH);
33
+ }
34
+ const h = new Uint8Array(buf);
35
+ h.set(PacketEncoder.HEADER_TO_DEVICE);
36
+ return h;
37
+ }
38
+ /**
39
+ * Create the vex CDC simple message
40
+ * @param cmd the CDC command byte
41
+ */
42
+ cdcCommand(cmd) {
43
+ const buf = new ArrayBuffer(PacketEncoder.HEADERS_LENGTH + 1);
44
+ const h = this.createHeader(buf);
45
+ h.set([cmd], PacketEncoder.HEADERS_LENGTH);
46
+ return h;
47
+ }
48
+ /**
49
+ * Create the vex CDC simple message
50
+ * @param cmd the CDC command byte
51
+ * @param data the data to send
52
+ */
53
+ cdcCommandWithData(cmd, data) {
54
+ const buf = new ArrayBuffer(PacketEncoder.HEADERS_LENGTH + 2 + data.length);
55
+ const h = this.createHeader(buf);
56
+ // add command and length bytes
57
+ h.set([cmd, data.length], PacketEncoder.HEADERS_LENGTH);
58
+ // add the message data
59
+ h.set(data, PacketEncoder.HEADERS_LENGTH + 2);
60
+ return h;
61
+ }
62
+ /**
63
+ * Create the vex CDC extended message
64
+ * @param cmd the CDC command byte
65
+ * @param ext the CDC extended command byte
66
+ * @return a message
67
+ */
68
+ cdc2Command(cmd, ext) {
69
+ const buf = new ArrayBuffer(PacketEncoder.HEADERS_LENGTH + 5);
70
+ const h = this.createHeader(buf);
71
+ h.set([cmd, ext, 0], PacketEncoder.HEADERS_LENGTH);
72
+ // Add CRC
73
+ const crc = this.crcgen.crc16(h.subarray(0, buf.byteLength - 2), 0) >>> 0;
74
+ h.set([crc >>> 8, crc & 0xff], buf.byteLength - 2);
75
+ return h;
76
+ }
77
+ /**
78
+ * Calculate buffer length for new CDC extended command
79
+ * @param data the CDC extended command payload
80
+ * @returns the required buffer length of the command message
81
+ */
82
+ cdc2CommandBufferLength(data) {
83
+ // New command use header + 1 byte command
84
+ // + 1 byte function
85
+ // + 1 byte data length
86
+ let length = PacketEncoder.HEADERS_LENGTH + data.length + 3 + 2;
87
+ // If data length is > 127 bytes then an additional data length byte is added
88
+ if (data.length > 127)
89
+ length += 1;
90
+ return length;
91
+ }
92
+ /**
93
+ * Create the vex CDC extended message with some data
94
+ * @param cmd the CDC command byte
95
+ * @param ext the CDC extended command byte
96
+ * @param data the CDC extended command payload
97
+ * @return a message
98
+ */
99
+ cdc2CommandWithData(cmd, ext, data) {
100
+ const buf = new ArrayBuffer(this.cdc2CommandBufferLength(data));
101
+ const h = this.createHeader(buf);
102
+ // add command and length bytes
103
+ if (data.length < 128) {
104
+ h.set([cmd, ext, data.length], PacketEncoder.HEADERS_LENGTH);
105
+ // add the message data
106
+ h.set(data, PacketEncoder.HEADERS_LENGTH + 3);
107
+ }
108
+ else {
109
+ const lengthMsb = ((data.length >>> 8) | 0x80) >>> 0;
110
+ const lengthLsb = (data.length & 0xff) >>> 0;
111
+ h.set([cmd, ext, lengthMsb, lengthLsb], PacketEncoder.HEADERS_LENGTH);
112
+ // add the message data
113
+ h.set(data, PacketEncoder.HEADERS_LENGTH + 4);
114
+ }
115
+ // Add CRC (little endian)
116
+ const crc = this.crcgen.crc16(h.subarray(0, buf.byteLength - 2), 0);
117
+ h.set([crc >>> 8, crc & 0xff], buf.byteLength - 2);
118
+ return h;
119
+ }
120
+ validateHeader(data) {
121
+ return !(data[0] !== PacketEncoder.HEADER_TO_HOST[0] ||
122
+ data[1] !== PacketEncoder.HEADER_TO_HOST[1]);
123
+ }
124
+ validateMessageCdc(data) {
125
+ const message = data.subarray(0, data.byteLength - 2);
126
+ const lastTwoBytes = (data[data.byteLength - 2] << 8) + data[data.byteLength - 1];
127
+ return this.crcgen.crc16(message, 0) === lastTwoBytes;
128
+ }
129
+ getPayloadSize(data) {
130
+ let t = 0;
131
+ let a = data[3];
132
+ if ((128 & a) !== 0) {
133
+ t = 127 & a;
134
+ a = data[4];
135
+ }
136
+ return (t << 8) + a;
137
+ }
138
+ }
139
+ PacketEncoder.HEADERS_LENGTH = 4;
140
+ PacketEncoder.HEADER_TO_DEVICE = [201, 54, 184, 71];
141
+ PacketEncoder.HEADER_TO_HOST = [170, 85];
142
+ PacketEncoder.J2000_EPOCH = 946684800;
143
+ export class Packet {
144
+ constructor(rawData) {
145
+ this.data =
146
+ rawData instanceof ArrayBuffer ? new Uint8Array(rawData) : rawData;
147
+ }
148
+ }
149
+ export class DeviceBoundPacket extends Packet {
150
+ constructor(payload) {
151
+ super(new Uint8Array());
152
+ // eslint-disable-next-line no-proto, @typescript-eslint/no-explicit-any
153
+ const me = this.__proto__.constructor;
154
+ if (me.COMMAND_EXTENDED_ID === undefined) {
155
+ if (payload === undefined) {
156
+ this.data = Packet.ENCODER.cdcCommand(me.COMMAND_ID);
157
+ }
158
+ else {
159
+ this.data = Packet.ENCODER.cdcCommandWithData(me.COMMAND_ID, payload);
160
+ }
161
+ }
162
+ else {
163
+ if (payload === undefined) {
164
+ this.data = Packet.ENCODER.cdc2Command(me.COMMAND_ID, me.COMMAND_EXTENDED_ID);
165
+ }
166
+ else {
167
+ this.data = Packet.ENCODER.cdc2CommandWithData(me.COMMAND_ID, me.COMMAND_EXTENDED_ID, payload);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ export class Query1H2DPacket extends DeviceBoundPacket {
173
+ constructor() {
174
+ super(undefined);
175
+ }
176
+ }
177
+ Query1H2DPacket.COMMAND_ID = 33;
178
+ Query1H2DPacket.COMMAND_EXTENDED_ID = undefined;
179
+ export class SystemVersionH2DPacket extends DeviceBoundPacket {
180
+ constructor() {
181
+ super(undefined);
182
+ }
183
+ }
184
+ SystemVersionH2DPacket.COMMAND_ID = 164;
185
+ SystemVersionH2DPacket.COMMAND_EXTENDED_ID = undefined;
186
+ export class UpdateMatchModeH2DPacket extends DeviceBoundPacket {
187
+ constructor(mode, matchClock) {
188
+ let bit1;
189
+ switch (mode) {
190
+ case "autonomous":
191
+ bit1 = 10;
192
+ break;
193
+ case "driver":
194
+ bit1 = 8;
195
+ break;
196
+ case "disabled":
197
+ bit1 = 11;
198
+ }
199
+ const payload = new Uint8Array(5);
200
+ const view = new DataView(payload.buffer);
201
+ payload[0] = (15 & bit1) >>> 0;
202
+ view.setUint32(1, matchClock, true);
203
+ super(payload);
204
+ }
205
+ }
206
+ UpdateMatchModeH2DPacket.COMMAND_ID = 88;
207
+ UpdateMatchModeH2DPacket.COMMAND_EXTENDED_ID = 193;
208
+ export class GetMatchStatusH2DPacket extends DeviceBoundPacket {
209
+ constructor() {
210
+ super(undefined);
211
+ }
212
+ }
213
+ GetMatchStatusH2DPacket.COMMAND_ID = 88;
214
+ GetMatchStatusH2DPacket.COMMAND_EXTENDED_ID = 194;
215
+ export class GetRadioModeH2DPacket extends DeviceBoundPacket {
216
+ constructor(mode) {
217
+ const payload = new Uint8Array(1);
218
+ payload[0] = mode;
219
+ super(payload);
220
+ }
221
+ }
222
+ GetRadioModeH2DPacket.COMMAND_ID = 88;
223
+ GetRadioModeH2DPacket.COMMAND_EXTENDED_ID = 65;
224
+ export class FileControlH2DPacket extends DeviceBoundPacket {
225
+ constructor(a, b) {
226
+ const payload = new Uint8Array(2);
227
+ payload.set([a, b], 0);
228
+ super(payload);
229
+ }
230
+ }
231
+ FileControlH2DPacket.COMMAND_ID = 86;
232
+ FileControlH2DPacket.COMMAND_EXTENDED_ID = 16;
233
+ export class InitFileTransferH2DPacket extends DeviceBoundPacket {
234
+ constructor(operation, target, vendor, options, binary, addr, name, type, version = new VexFirmwareVersion(1, 0, 0, 0)) {
235
+ const payload = new Uint8Array(52);
236
+ const view = new DataView(payload.buffer);
237
+ view.setUint8(0, operation);
238
+ view.setUint8(1, target);
239
+ view.setUint8(2, vendor);
240
+ view.setUint8(3, options);
241
+ view.setUint32(4, binary.length, true);
242
+ view.setUint32(8, addr, true);
243
+ view.setUint32(12, operation === FileInitAction.WRITE
244
+ ? Packet.ENCODER.crcgen.crc32(binary, 0)
245
+ : 0, true);
246
+ const re = /(?:\.([^.]+))?$/;
247
+ const reResult = re.exec(name);
248
+ let ext = reResult != null ? reResult[1] : undefined;
249
+ ext !== null && ext !== void 0 ? ext : (ext = "");
250
+ // files with gz extension are also type bin
251
+ ext = ext === "gz" ? "bin" : ext;
252
+ payload.set(new TextEncoder().encode(type !== null && type !== void 0 ? type : ext), 16);
253
+ const timestamp = ((Date.now() / 1000) >>> 0) - PacketEncoder.J2000_EPOCH;
254
+ view.setUint32(20, timestamp, true);
255
+ payload.set(version.toUint8Array(), 24);
256
+ // filename
257
+ const nameEncoded = new TextEncoder().encode(name);
258
+ let offset = nameEncoded.length - 23;
259
+ if (offset < 0)
260
+ offset = 0;
261
+ payload.set(nameEncoded.subarray(offset, offset + 23), 28);
262
+ view.setUint8(51, 0);
263
+ super(payload);
264
+ }
265
+ }
266
+ InitFileTransferH2DPacket.COMMAND_ID = 86;
267
+ InitFileTransferH2DPacket.COMMAND_EXTENDED_ID = 17;
268
+ export class ExitFileTransferH2DPacket extends DeviceBoundPacket {
269
+ constructor(action) {
270
+ const payload = new Uint8Array(1);
271
+ payload[0] = action;
272
+ super(payload);
273
+ }
274
+ }
275
+ ExitFileTransferH2DPacket.COMMAND_ID = 86;
276
+ ExitFileTransferH2DPacket.COMMAND_EXTENDED_ID = 18;
277
+ export class WriteFileH2DPacket extends DeviceBoundPacket {
278
+ constructor(addr, buf) {
279
+ const payload = new Uint8Array(4 + buf.length);
280
+ const view = new DataView(payload.buffer);
281
+ view.setUint32(0, addr, true);
282
+ payload.set(buf, 4);
283
+ super(payload);
284
+ }
285
+ }
286
+ WriteFileH2DPacket.COMMAND_ID = 86;
287
+ WriteFileH2DPacket.COMMAND_EXTENDED_ID = 19;
288
+ export class ReadFileH2DPacket extends DeviceBoundPacket {
289
+ constructor(addr, size) {
290
+ const payload = new Uint8Array(6);
291
+ const view = new DataView(payload.buffer);
292
+ view.setUint32(0, addr, true);
293
+ view.setUint16(4, size, true);
294
+ super(payload);
295
+ }
296
+ }
297
+ ReadFileH2DPacket.COMMAND_ID = 86;
298
+ ReadFileH2DPacket.COMMAND_EXTENDED_ID = 20;
299
+ export class LinkFileH2DPacket extends DeviceBoundPacket {
300
+ constructor(vendor, fileName, options) {
301
+ const str = new TextEncoder().encode(fileName);
302
+ const payload = new Uint8Array(26);
303
+ payload.set([vendor, options], 0);
304
+ payload.set(str.subarray(0, 23), 2);
305
+ super(payload);
306
+ }
307
+ }
308
+ LinkFileH2DPacket.COMMAND_ID = 86;
309
+ LinkFileH2DPacket.COMMAND_EXTENDED_ID = 21;
310
+ export class GetDirectoryFileCountH2DPacket extends DeviceBoundPacket {
311
+ constructor(vendor) {
312
+ const payload = new Uint8Array(2);
313
+ payload.set([vendor, 0], 0);
314
+ super(payload);
315
+ }
316
+ }
317
+ GetDirectoryFileCountH2DPacket.COMMAND_ID = 86;
318
+ GetDirectoryFileCountH2DPacket.COMMAND_EXTENDED_ID = 22;
319
+ export class GetDirectoryEntryH2DPacket extends DeviceBoundPacket {
320
+ constructor(index) {
321
+ const payload = new Uint8Array(2);
322
+ payload.set([index, 0], 0);
323
+ super(payload);
324
+ }
325
+ }
326
+ GetDirectoryEntryH2DPacket.COMMAND_ID = 86;
327
+ GetDirectoryEntryH2DPacket.COMMAND_EXTENDED_ID = 23;
328
+ export class LoadFileActionH2DPacket extends DeviceBoundPacket {
329
+ constructor(vendor, actionId, fileNameOrSlotNumber) {
330
+ let fileName;
331
+ if (typeof fileNameOrSlotNumber === "string") {
332
+ fileName = fileNameOrSlotNumber;
333
+ }
334
+ else {
335
+ fileName = "___s_" + (fileNameOrSlotNumber - 1) + ".bin";
336
+ }
337
+ const encodedName = new TextEncoder().encode(fileName);
338
+ const payload = new Uint8Array(26);
339
+ payload.set([vendor, actionId], 0);
340
+ payload.set(encodedName.subarray(0, 23), 2);
341
+ super(payload);
342
+ }
343
+ }
344
+ LoadFileActionH2DPacket.COMMAND_ID = 86;
345
+ LoadFileActionH2DPacket.COMMAND_EXTENDED_ID = 24;
346
+ export class GetFileMetadataH2DPacket extends DeviceBoundPacket {
347
+ constructor(vendor, fileName, options) {
348
+ const encodedName = new TextEncoder().encode(fileName);
349
+ const payload = new Uint8Array(26);
350
+ payload.set([vendor, options], 0);
351
+ payload.set(encodedName.subarray(0, 23), 2);
352
+ super(payload);
353
+ }
354
+ }
355
+ GetFileMetadataH2DPacket.COMMAND_ID = 86;
356
+ GetFileMetadataH2DPacket.COMMAND_EXTENDED_ID = 25;
357
+ export class SetFileMetadataH2DPacket extends DeviceBoundPacket {
358
+ constructor(vendor, fileName, fileInfo, options) {
359
+ const encodedName = new TextEncoder().encode(fileName);
360
+ const encodedType = new TextEncoder().encode(fileInfo.type);
361
+ const payload = new Uint8Array(42);
362
+ const view = new DataView(payload.buffer);
363
+ view.setUint8(0, vendor);
364
+ view.setUint8(1, options);
365
+ view.setUint32(2, fileInfo.loadAddress, true);
366
+ payload.set(encodedType.subarray(0, 4), 6);
367
+ const timestamp = fileInfo.timestamp - PacketEncoder.J2000_EPOCH + 100; // XXX: + 100 TEST ONLY
368
+ view.setUint32(10, timestamp, true);
369
+ payload.set(fileInfo.version.toUint8Array(), 14);
370
+ payload.set(encodedName.subarray(0, 23), 18);
371
+ super(payload);
372
+ }
373
+ }
374
+ // DOES NOT WORK
375
+ SetFileMetadataH2DPacket.COMMAND_ID = 86;
376
+ SetFileMetadataH2DPacket.COMMAND_EXTENDED_ID = 26;
377
+ export class EraseFileH2DPacket extends DeviceBoundPacket {
378
+ constructor(vendor, fileName) {
379
+ const encodedName = new TextEncoder().encode(fileName);
380
+ const payload = new Uint8Array(26);
381
+ payload.set([vendor, 128], 0);
382
+ payload.set(encodedName.subarray(0, 23), 2);
383
+ super(payload);
384
+ }
385
+ }
386
+ EraseFileH2DPacket.COMMAND_ID = 86;
387
+ EraseFileH2DPacket.COMMAND_EXTENDED_ID = 27;
388
+ export class GetProgramSlotInfoH2DPacket extends DeviceBoundPacket {
389
+ constructor(vendor, fileName) {
390
+ const encodedName = new TextEncoder().encode(fileName);
391
+ const payload = new Uint8Array(26);
392
+ payload.set([vendor, 0], 0);
393
+ payload.set(encodedName.subarray(0, 23), 2);
394
+ super(payload);
395
+ }
396
+ }
397
+ GetProgramSlotInfoH2DPacket.COMMAND_ID = 86;
398
+ GetProgramSlotInfoH2DPacket.COMMAND_EXTENDED_ID = 28;
399
+ export class FileClearUpH2DPacket extends DeviceBoundPacket {
400
+ constructor(vendor) {
401
+ const payload = new Uint8Array(2);
402
+ payload.set([vendor, 0], 0);
403
+ super(payload);
404
+ }
405
+ }
406
+ FileClearUpH2DPacket.COMMAND_ID = 86;
407
+ FileClearUpH2DPacket.COMMAND_EXTENDED_ID = 30;
408
+ export class FileFormatH2DPacket extends DeviceBoundPacket {
409
+ constructor() {
410
+ const payload = new Uint8Array(4);
411
+ payload.set([68, 67, 66, 65], 0);
412
+ super(payload);
413
+ }
414
+ }
415
+ FileFormatH2DPacket.COMMAND_ID = 86;
416
+ FileFormatH2DPacket.COMMAND_EXTENDED_ID = 31;
417
+ export class GetSystemFlagsH2DPacket extends DeviceBoundPacket {
418
+ }
419
+ GetSystemFlagsH2DPacket.COMMAND_ID = 86;
420
+ GetSystemFlagsH2DPacket.COMMAND_EXTENDED_ID = 32;
421
+ export class GetDeviceStatusH2DPacket extends DeviceBoundPacket {
422
+ constructor() {
423
+ super(undefined);
424
+ }
425
+ }
426
+ GetDeviceStatusH2DPacket.COMMAND_ID = 86;
427
+ GetDeviceStatusH2DPacket.COMMAND_EXTENDED_ID = 33;
428
+ export class GetSystemStatusH2DPacket extends DeviceBoundPacket {
429
+ constructor() {
430
+ super(undefined);
431
+ }
432
+ }
433
+ GetSystemStatusH2DPacket.COMMAND_ID = 86;
434
+ GetSystemStatusH2DPacket.COMMAND_EXTENDED_ID = 34;
435
+ export class GetFdtStatusH2DPacket extends DeviceBoundPacket {
436
+ constructor() {
437
+ super(undefined);
438
+ }
439
+ }
440
+ GetFdtStatusH2DPacket.COMMAND_ID = 86;
441
+ GetFdtStatusH2DPacket.COMMAND_EXTENDED_ID = 35;
442
+ export class GetLogCountH2DPacket extends DeviceBoundPacket {
443
+ constructor() {
444
+ super(undefined);
445
+ }
446
+ }
447
+ GetLogCountH2DPacket.COMMAND_ID = 86;
448
+ GetLogCountH2DPacket.COMMAND_EXTENDED_ID = 36;
449
+ export class ReadLogPageH2DPacket extends DeviceBoundPacket {
450
+ constructor(offset, count) {
451
+ const payload = new Uint8Array(8);
452
+ const view = new DataView(payload.buffer);
453
+ view.setUint32(0, offset, true);
454
+ view.setUint32(4, count, true);
455
+ super(payload);
456
+ }
457
+ }
458
+ ReadLogPageH2DPacket.COMMAND_ID = 86;
459
+ ReadLogPageH2DPacket.COMMAND_EXTENDED_ID = 37;
460
+ export class GetRadioStatusH2DPacket extends DeviceBoundPacket {
461
+ constructor() {
462
+ super(undefined);
463
+ }
464
+ }
465
+ GetRadioStatusH2DPacket.COMMAND_ID = 86;
466
+ GetRadioStatusH2DPacket.COMMAND_EXTENDED_ID = 38;
467
+ export class GetUserDataH2DPacket extends DeviceBoundPacket {
468
+ constructor(e) {
469
+ var _a;
470
+ const input = (_a = e === null || e === void 0 ? void 0 : e.slice(0, 224)) !== null && _a !== void 0 ? _a : new Uint8Array(0);
471
+ const payload = new Uint8Array(2 + input.length);
472
+ payload[0] = 1; // stdio channel
473
+ payload[1] = input.length;
474
+ payload.set(input, 2);
475
+ super(payload);
476
+ }
477
+ }
478
+ // UNCONFIRMED
479
+ GetUserDataH2DPacket.COMMAND_ID = 86;
480
+ GetUserDataH2DPacket.COMMAND_EXTENDED_ID = 39;
481
+ export class ScreenCaptureH2DPacket extends DeviceBoundPacket {
482
+ constructor(e) {
483
+ const payload = new Uint8Array(1);
484
+ payload[0] = e;
485
+ super(payload);
486
+ }
487
+ }
488
+ ScreenCaptureH2DPacket.COMMAND_ID = 86;
489
+ ScreenCaptureH2DPacket.COMMAND_EXTENDED_ID = 40;
490
+ export class SendDashTouchH2DPacket extends DeviceBoundPacket {
491
+ constructor(x, y, press) {
492
+ const payload = new Uint8Array(6);
493
+ const view = new DataView(payload.buffer);
494
+ view.setUint16(0, x, true);
495
+ view.setUint16(2, y, true);
496
+ view.setUint16(4, press ? 1 : 0, true);
497
+ super(payload);
498
+ }
499
+ }
500
+ SendDashTouchH2DPacket.COMMAND_ID = 86;
501
+ SendDashTouchH2DPacket.COMMAND_EXTENDED_ID = 42;
502
+ export class SelectDashH2DPacket extends DeviceBoundPacket {
503
+ /** @param port untested */
504
+ constructor(screen, port) {
505
+ const payload = new Uint8Array(2);
506
+ payload[0] = screen;
507
+ payload[1] = port;
508
+ super(payload);
509
+ }
510
+ }
511
+ // UNSURE
512
+ SelectDashH2DPacket.COMMAND_ID = 86;
513
+ SelectDashH2DPacket.COMMAND_EXTENDED_ID = 43;
514
+ export class EnableDashH2DPacket extends DeviceBoundPacket {
515
+ constructor(unknown1) {
516
+ if (unknown1 === undefined) {
517
+ super(undefined);
518
+ }
519
+ else {
520
+ const payload = new Uint8Array(1);
521
+ payload[0] = unknown1;
522
+ super(payload);
523
+ }
524
+ }
525
+ }
526
+ // UNSURE
527
+ EnableDashH2DPacket.COMMAND_ID = 86;
528
+ EnableDashH2DPacket.COMMAND_EXTENDED_ID = 44;
529
+ export class DisableDashH2DPacket extends DeviceBoundPacket {
530
+ constructor() {
531
+ super(undefined);
532
+ }
533
+ }
534
+ // UNSURE
535
+ DisableDashH2DPacket.COMMAND_ID = 86;
536
+ DisableDashH2DPacket.COMMAND_EXTENDED_ID = 45;
537
+ export class ReadKeyValueH2DPacket extends DeviceBoundPacket {
538
+ constructor(key) {
539
+ const payload = new Uint8Array(32);
540
+ payload.set(new TextEncoder().encode(key), 0);
541
+ super(payload);
542
+ }
543
+ }
544
+ // UNSURE
545
+ ReadKeyValueH2DPacket.COMMAND_ID = 86;
546
+ ReadKeyValueH2DPacket.COMMAND_EXTENDED_ID = 46;
547
+ export class WriteKeyValueH2DPacket extends DeviceBoundPacket {
548
+ constructor(key, value) {
549
+ let strk = new TextEncoder().encode(key);
550
+ const strv = new TextEncoder().encode(value);
551
+ if (strk.byteLength > 31)
552
+ strk = strk.subarray(0, 31);
553
+ const payload = new Uint8Array(strk.length + strv.length + 20);
554
+ payload.set(strk, 0);
555
+ payload.set(strv, strk.length + 1);
556
+ super(payload);
557
+ }
558
+ }
559
+ // UNSURE
560
+ WriteKeyValueH2DPacket.COMMAND_ID = 86;
561
+ WriteKeyValueH2DPacket.COMMAND_EXTENDED_ID = 47;
562
+ export class GetSlot1to4InfoH2DPacket extends DeviceBoundPacket {
563
+ constructor() {
564
+ super(undefined);
565
+ }
566
+ }
567
+ GetSlot1to4InfoH2DPacket.COMMAND_ID = 86;
568
+ GetSlot1to4InfoH2DPacket.COMMAND_EXTENDED_ID = 49;
569
+ export class GetSlot5to8InfoH2DPacket extends DeviceBoundPacket {
570
+ constructor() {
571
+ super(undefined);
572
+ }
573
+ }
574
+ GetSlot5to8InfoH2DPacket.COMMAND_ID = 86;
575
+ GetSlot5to8InfoH2DPacket.COMMAND_EXTENDED_ID = 50;
576
+ export class FactoryStatusH2DPacket extends DeviceBoundPacket {
577
+ }
578
+ FactoryStatusH2DPacket.COMMAND_ID = 86;
579
+ FactoryStatusH2DPacket.COMMAND_EXTENDED_ID = 241;
580
+ export class FactoryEnableH2DPacket extends DeviceBoundPacket {
581
+ constructor() {
582
+ const payload = new Uint8Array(4);
583
+ payload.set([77, 76, 75, 74], 0);
584
+ super(payload);
585
+ }
586
+ }
587
+ FactoryEnableH2DPacket.COMMAND_ID = 86;
588
+ FactoryEnableH2DPacket.COMMAND_EXTENDED_ID = 255;
589
+ export class HostBoundPacket extends Packet {
590
+ constructor(data) {
591
+ super(data);
592
+ this.ack = AckType.CDC2_NACK;
593
+ this.payloadSize = Packet.ENCODER.getPayloadSize(this.data);
594
+ const n = this.payloadSize > 128 ? 5 : 4;
595
+ // skip command id check
596
+ this.ack = this.data[(this.ackIndex = n + 1)];
597
+ }
598
+ static isValidPacket(data, n) {
599
+ const ack = data[n + 1];
600
+ return ack === AckType.CDC2_ACK || ack === 167; // XXX: got 167 from MatchStatusReplyD2HPacket
601
+ }
602
+ }
603
+ export class Query1ReplyD2HPacket extends HostBoundPacket {
604
+ constructor(data) {
605
+ super(data);
606
+ this.joystickFlag1 = this.data[4];
607
+ this.joystickFlag2 = this.data[5];
608
+ this.brainFlag1 = this.data[6]; // a.k.a vex version
609
+ this.brainFlag2 = this.data[7];
610
+ this.bootloadFlag1 = this.data[10];
611
+ this.bootloadFlag2 = this.data[11];
612
+ }
613
+ }
614
+ Query1ReplyD2HPacket.COMMAND_ID = 33;
615
+ Query1ReplyD2HPacket.COMMAND_EXTENDED_ID = undefined;
616
+ export class SystemVersionReplyD2HPacket extends HostBoundPacket {
617
+ constructor(data) {
618
+ super(data);
619
+ this.version = new VexFirmwareVersion(this.data[4], this.data[5], this.data[6], this.data[8]);
620
+ this.hardware = this.data[7];
621
+ }
622
+ }
623
+ SystemVersionReplyD2HPacket.COMMAND_ID = 164;
624
+ SystemVersionReplyD2HPacket.COMMAND_EXTENDED_ID = undefined;
625
+ export class MatchModeReplyD2HPacket extends HostBoundPacket {
626
+ constructor(data) {
627
+ super(data);
628
+ const dataView = PacketView.fromPacket(this);
629
+ this.modebit = dataView.nextUint8();
630
+ }
631
+ }
632
+ MatchModeReplyD2HPacket.COMMAND_ID = 88;
633
+ MatchModeReplyD2HPacket.COMMAND_EXTENDED_ID = 193;
634
+ export class MatchStatusReplyD2HPacket extends HostBoundPacket {
635
+ constructor(data) {
636
+ super(data);
637
+ const dataView = PacketView.fromPacket(this);
638
+ const n = this.ackIndex;
639
+ this.rssi = dataView.nextInt8();
640
+ this.systemStatusBits = dataView.nextUint16();
641
+ this.radioStatusBits = dataView.nextUint16();
642
+ this.fieldStatusBits = dataView.nextUint8();
643
+ this.matchClock = dataView.nextUint8();
644
+ this.brainBatteryPercent = dataView.nextUint8();
645
+ this.controllerBatteryPercent = dataView.nextUint8();
646
+ this.partnerControllerBatteryPercent = dataView.nextUint8();
647
+ this.pad = dataView.nextUint8();
648
+ this.buttons = dataView.nextUint16();
649
+ this.activeProgram = dataView.nextUint8();
650
+ this.radioType = dataView.nextUint8();
651
+ this.radioChannel = dataView.nextUint8();
652
+ this.radioSlot = dataView.nextUint8();
653
+ this.robotName = dataView.nextNTBS(10);
654
+ this.controllerFlags = dataView.getUint8(n + 28);
655
+ this.rxSignalQuality = dataView.getUint8(n + 29);
656
+ let rawStr = new TextDecoder("UTF-8").decode(data.slice(n + 18, n + this.payloadSize + 28));
657
+ const endIdx = rawStr.indexOf("\0");
658
+ if (endIdx > -1) {
659
+ rawStr = rawStr.substr(0, endIdx);
660
+ }
661
+ this.robotName = rawStr;
662
+ }
663
+ }
664
+ MatchStatusReplyD2HPacket.COMMAND_ID = 88;
665
+ MatchStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 194;
666
+ export class FileControlReplyD2HPacket extends HostBoundPacket {
667
+ }
668
+ FileControlReplyD2HPacket.COMMAND_ID = 86;
669
+ FileControlReplyD2HPacket.COMMAND_EXTENDED_ID = 16;
670
+ export class InitFileTransferReplyD2HPacket extends HostBoundPacket {
671
+ constructor(data) {
672
+ super(data);
673
+ const dataView = PacketView.fromPacket(this);
674
+ this.windowSize = dataView.nextUint16();
675
+ this.fileSize = dataView.nextUint32();
676
+ this.crc32 = dataView.nextUint32();
677
+ }
678
+ }
679
+ InitFileTransferReplyD2HPacket.COMMAND_ID = 86;
680
+ InitFileTransferReplyD2HPacket.COMMAND_EXTENDED_ID = 17;
681
+ export class ExitFileTransferReplyD2HPacket extends HostBoundPacket {
682
+ }
683
+ ExitFileTransferReplyD2HPacket.COMMAND_ID = 86;
684
+ ExitFileTransferReplyD2HPacket.COMMAND_EXTENDED_ID = 18;
685
+ export class WriteFileReplyD2HPacket extends HostBoundPacket {
686
+ }
687
+ WriteFileReplyD2HPacket.COMMAND_ID = 86;
688
+ WriteFileReplyD2HPacket.COMMAND_EXTENDED_ID = 19;
689
+ export class ReadFileReplyD2HPacket extends HostBoundPacket {
690
+ constructor(data) {
691
+ super(data);
692
+ const dataView = PacketView.fromPacket(this);
693
+ const n = this.ackIndex;
694
+ this.addr = dataView.getUint32(n, true);
695
+ this.length = this.payloadSize - 7;
696
+ this.buf = data.slice(n + 4, n + 4 + this.length);
697
+ }
698
+ static isValidPacket(data, n) {
699
+ return data[4] === 4 ? data[n + 1] === AckType.CDC2_ACK : true;
700
+ }
701
+ }
702
+ ReadFileReplyD2HPacket.COMMAND_ID = 86;
703
+ ReadFileReplyD2HPacket.COMMAND_EXTENDED_ID = 20;
704
+ export class LinkFileReplyD2HPacket extends HostBoundPacket {
705
+ }
706
+ LinkFileReplyD2HPacket.COMMAND_ID = 86;
707
+ LinkFileReplyD2HPacket.COMMAND_EXTENDED_ID = 21;
708
+ export class GetDirectoryFileCountReplyD2HPacket extends HostBoundPacket {
709
+ constructor(data) {
710
+ super(data);
711
+ const dataView = PacketView.fromPacket(this);
712
+ this.count = dataView.nextUint16();
713
+ }
714
+ }
715
+ GetDirectoryFileCountReplyD2HPacket.COMMAND_ID = 86;
716
+ GetDirectoryFileCountReplyD2HPacket.COMMAND_EXTENDED_ID = 22;
717
+ export class GetDirectoryEntryReplyD2HPacket extends HostBoundPacket {
718
+ constructor(data) {
719
+ super(data);
720
+ const dataView = PacketView.fromPacket(this);
721
+ if (this.payloadSize > 4) {
722
+ this.file = {
723
+ index: dataView.nextUint8(),
724
+ size: dataView.nextUint32(),
725
+ loadAddress: dataView.nextUint32(),
726
+ crc32: dataView.nextUint32(),
727
+ type: dataView.nextString(4),
728
+ timestamp: dataView.nextUint32() + PacketEncoder.J2000_EPOCH,
729
+ version: dataView.nextVersion(),
730
+ filename: dataView.nextNTBS(32),
731
+ };
732
+ }
733
+ }
734
+ }
735
+ GetDirectoryEntryReplyD2HPacket.COMMAND_ID = 86;
736
+ GetDirectoryEntryReplyD2HPacket.COMMAND_EXTENDED_ID = 23;
737
+ export class LoadFileActionReplyD2HPacket extends HostBoundPacket {
738
+ }
739
+ LoadFileActionReplyD2HPacket.COMMAND_ID = 86;
740
+ LoadFileActionReplyD2HPacket.COMMAND_EXTENDED_ID = 24;
741
+ export class GetFileMetadataReplyD2HPacket extends HostBoundPacket {
742
+ constructor(data) {
743
+ super(data);
744
+ const dataView = PacketView.fromPacket(this);
745
+ dataView.nextUint8();
746
+ if (this.payloadSize > 4) {
747
+ this.file = {
748
+ size: dataView.nextUint32(),
749
+ loadAddress: dataView.nextUint32(),
750
+ crc32: dataView.nextUint32(),
751
+ type: dataView.nextString(4),
752
+ timestamp: dataView.nextUint32() + PacketEncoder.J2000_EPOCH,
753
+ version: dataView.nextVersion(),
754
+ };
755
+ }
756
+ }
757
+ }
758
+ GetFileMetadataReplyD2HPacket.COMMAND_ID = 86;
759
+ GetFileMetadataReplyD2HPacket.COMMAND_EXTENDED_ID = 25;
760
+ export class SetFileMetadataReplyD2HPacket extends HostBoundPacket {
761
+ }
762
+ SetFileMetadataReplyD2HPacket.COMMAND_ID = 86;
763
+ SetFileMetadataReplyD2HPacket.COMMAND_EXTENDED_ID = 26;
764
+ export class EraseFileReplyD2HPacket extends HostBoundPacket {
765
+ }
766
+ EraseFileReplyD2HPacket.COMMAND_ID = 86;
767
+ EraseFileReplyD2HPacket.COMMAND_EXTENDED_ID = 27;
768
+ export class GetProgramSlotInfoReplyD2HPacket extends HostBoundPacket {
769
+ constructor(data) {
770
+ super(data);
771
+ const dataView = PacketView.fromPacket(this);
772
+ this.slot = dataView.nextUint8();
773
+ this.requestedSlot = dataView.nextUint8();
774
+ }
775
+ }
776
+ GetProgramSlotInfoReplyD2HPacket.COMMAND_ID = 86;
777
+ GetProgramSlotInfoReplyD2HPacket.COMMAND_EXTENDED_ID = 28;
778
+ export class FileClearUpReplyD2HPacket extends HostBoundPacket {
779
+ }
780
+ FileClearUpReplyD2HPacket.COMMAND_ID = 86;
781
+ FileClearUpReplyD2HPacket.COMMAND_EXTENDED_ID = 30;
782
+ export class FileFormatReplyD2HPacket extends HostBoundPacket {
783
+ }
784
+ FileFormatReplyD2HPacket.COMMAND_ID = 86;
785
+ FileFormatReplyD2HPacket.COMMAND_EXTENDED_ID = 31;
786
+ export class GetSystemFlagsReplyD2HPacket extends HostBoundPacket {
787
+ constructor(data) {
788
+ super(data);
789
+ const dataView = PacketView.fromPacket(this);
790
+ this.radioSearching = false;
791
+ this.currentProgram = 0;
792
+ this.flags = dataView.nextUint32();
793
+ const hasPartner = (8192 & this.flags) !== 0;
794
+ const hasRadio = (1536 & this.flags) === 1536;
795
+ const byte1 = dataView.nextUint8();
796
+ const byte2 = dataView.nextUint8();
797
+ if (this.payloadSize === 11) {
798
+ this.battery = 8 * (byte1 & 0x0f);
799
+ if ((this.flags & 0x100) !== 0 || hasRadio)
800
+ this.controllerBatteryPercent = 8 * ((byte1 >> 4) & 0x0f);
801
+ if (hasRadio)
802
+ this.radioQuality = 8 * (byte2 & 0x0f);
803
+ this.radioSearching = (this.flags & 0x600) === 0x200;
804
+ if (hasPartner)
805
+ this.partnerControllerBatteryPercent = 8 * ((byte2 >> 4) & 0x0f);
806
+ this.currentProgram = dataView.nextUint8();
807
+ if (this.battery != null && this.battery > 100)
808
+ this.battery = 100;
809
+ if (this.controllerBatteryPercent != null &&
810
+ this.controllerBatteryPercent > 100)
811
+ this.controllerBatteryPercent = 100;
812
+ if (this.radioQuality != null && this.radioQuality > 100)
813
+ this.radioQuality = 100;
814
+ if (this.partnerControllerBatteryPercent != null &&
815
+ this.partnerControllerBatteryPercent > 100)
816
+ this.partnerControllerBatteryPercent = 100;
817
+ }
818
+ }
819
+ }
820
+ GetSystemFlagsReplyD2HPacket.COMMAND_ID = 86;
821
+ GetSystemFlagsReplyD2HPacket.COMMAND_EXTENDED_ID = 32;
822
+ export class GetDeviceStatusReplyD2HPacket extends HostBoundPacket {
823
+ constructor(data) {
824
+ super(data);
825
+ const dataView = PacketView.fromPacket(this);
826
+ this.count = dataView.nextUint8();
827
+ this.devices = [];
828
+ for (let i = 0; i < this.count; i++) {
829
+ this.devices.push({
830
+ port: dataView.nextUint8(),
831
+ type: dataView.nextUint8(),
832
+ status: dataView.nextUint8(),
833
+ betaversion: dataView.nextUint8(),
834
+ version: dataView.nextUint16(),
835
+ bootversion: dataView.nextUint16(),
836
+ });
837
+ }
838
+ }
839
+ }
840
+ GetDeviceStatusReplyD2HPacket.COMMAND_ID = 86;
841
+ GetDeviceStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 33;
842
+ export class GetSystemStatusReplyD2HPacket extends HostBoundPacket {
843
+ constructor(data) {
844
+ super(data);
845
+ const dataView = PacketView.fromPacket(this);
846
+ dataView.nextUint8();
847
+ this.systemVersion = dataView.nextVersion();
848
+ this.cpu0Version = dataView.nextVersion();
849
+ this.cpu1Version = dataView.nextVersion();
850
+ this.touchVersion = dataView.nextVersion(true);
851
+ this.uniqueId = 1234;
852
+ this.sysflags = [0, 0, 0, 0, 0, 0, 0];
853
+ this.goldenVersion = VexFirmwareVersion.allZero();
854
+ this.nxpVersion = VexFirmwareVersion.allZero();
855
+ this.eventBrain = false;
856
+ this.romBootloaderActive = false;
857
+ this.ramBootloaderActive = false;
858
+ if (this.payloadSize > 25) {
859
+ this.uniqueId = dataView.nextUint32();
860
+ this.sysflags = [
861
+ dataView.nextUint8(),
862
+ dataView.nextUint8(),
863
+ dataView.nextUint8(),
864
+ dataView.nextUint8(),
865
+ dataView.nextUint8(),
866
+ 0,
867
+ dataView.nextUint8(),
868
+ ];
869
+ this.eventBrain = (1 & this.sysflags[6]) !== 0;
870
+ this.romBootloaderActive = (2 & this.sysflags[6]) !== 0;
871
+ this.ramBootloaderActive = (4 & this.sysflags[6]) !== 0;
872
+ dataView.nextUint16();
873
+ this.goldenVersion = dataView.nextVersion();
874
+ }
875
+ if (this.payloadSize > 37) {
876
+ this.nxpVersion = dataView.nextVersion();
877
+ }
878
+ }
879
+ }
880
+ GetSystemStatusReplyD2HPacket.COMMAND_ID = 86;
881
+ GetSystemStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 34;
882
+ export class GetFdtStatusReplyD2HPacket extends HostBoundPacket {
883
+ constructor(data) {
884
+ super(data);
885
+ const dataView = PacketView.fromPacket(this);
886
+ this.count = dataView.nextUint8();
887
+ this.status = [];
888
+ for (let i = 0; i < this.count; i++) {
889
+ this.status.push({
890
+ index: dataView.nextUint8(),
891
+ type: dataView.nextUint8(),
892
+ status: dataView.nextUint8(),
893
+ betaversion: dataView.nextUint8(),
894
+ version: dataView.nextUint16(),
895
+ bootversion: dataView.nextUint16(),
896
+ });
897
+ }
898
+ }
899
+ }
900
+ GetFdtStatusReplyD2HPacket.COMMAND_ID = 86;
901
+ GetFdtStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 35;
902
+ export class GetLogCountReplyD2HPacket extends HostBoundPacket {
903
+ constructor(data) {
904
+ super(data);
905
+ const dataView = PacketView.fromPacket(this);
906
+ dataView.nextUint8();
907
+ this.count = dataView.nextUint32();
908
+ }
909
+ }
910
+ GetLogCountReplyD2HPacket.COMMAND_ID = 86;
911
+ GetLogCountReplyD2HPacket.COMMAND_EXTENDED_ID = 36;
912
+ export class ReadLogPageReplyD2HPacket extends HostBoundPacket {
913
+ constructor(data) {
914
+ super(data);
915
+ const dataView = PacketView.fromPacket(this);
916
+ const n = this.ackIndex;
917
+ const size = dataView.nextUint8();
918
+ this.offset = dataView.nextUint32();
919
+ this.count = dataView.nextUint16();
920
+ this.entries = [];
921
+ let j = n + 8;
922
+ for (let i = 0; i < this.count; i++) {
923
+ this.entries.push({
924
+ code: dataView.getUint8(j),
925
+ type: dataView.getUint8(j + 1),
926
+ desc: dataView.getUint8(j + 2),
927
+ spare: dataView.getUint8(j + 3),
928
+ time: dataView.getUint32(j + 4, true),
929
+ });
930
+ j += size;
931
+ }
932
+ }
933
+ }
934
+ ReadLogPageReplyD2HPacket.COMMAND_ID = 86;
935
+ ReadLogPageReplyD2HPacket.COMMAND_EXTENDED_ID = 37;
936
+ export class GetRadioStatusReplyD2HPacket extends HostBoundPacket {
937
+ constructor(data) {
938
+ super(data);
939
+ const dataView = PacketView.fromPacket(this);
940
+ const n = this.ackIndex;
941
+ this.device = dataView.nextUint8();
942
+ this.quality = dataView.nextUint16();
943
+ this.strength = dataView.nextInt16();
944
+ this.channel = this.data[n + 6];
945
+ this.timeslot = this.data[n + 7];
946
+ }
947
+ }
948
+ GetRadioStatusReplyD2HPacket.COMMAND_ID = 86;
949
+ GetRadioStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 38;
950
+ export class GetUserDataReplyD2HPacket extends HostBoundPacket {
951
+ }
952
+ GetUserDataReplyD2HPacket.COMMAND_ID = 86;
953
+ GetUserDataReplyD2HPacket.COMMAND_EXTENDED_ID = 39;
954
+ export class ScreenCaptureReplyD2HPacket extends HostBoundPacket {
955
+ }
956
+ ScreenCaptureReplyD2HPacket.COMMAND_ID = 86;
957
+ ScreenCaptureReplyD2HPacket.COMMAND_EXTENDED_ID = 40;
958
+ // export class UserProgramControlReplyD2HPacket extends HostBoundPacket {
959
+ // static COMMAND_ID = 86;
960
+ // static COMMAND_EXTENDED_ID = 41;
961
+ // }
962
+ export class SendDashTouchReplyD2HPacket extends HostBoundPacket {
963
+ }
964
+ SendDashTouchReplyD2HPacket.COMMAND_ID = 86;
965
+ SendDashTouchReplyD2HPacket.COMMAND_EXTENDED_ID = 42;
966
+ export class SelectDashReplyD2HPacket extends HostBoundPacket {
967
+ }
968
+ SelectDashReplyD2HPacket.COMMAND_ID = 86;
969
+ SelectDashReplyD2HPacket.COMMAND_EXTENDED_ID = 43;
970
+ export class EnableDashReplyD2HPacket extends HostBoundPacket {
971
+ }
972
+ EnableDashReplyD2HPacket.COMMAND_ID = 86;
973
+ EnableDashReplyD2HPacket.COMMAND_EXTENDED_ID = 44;
974
+ export class DisableDashReplyD2HPacket extends HostBoundPacket {
975
+ }
976
+ DisableDashReplyD2HPacket.COMMAND_ID = 86;
977
+ DisableDashReplyD2HPacket.COMMAND_EXTENDED_ID = 45;
978
+ export class ReadKeyValueReplyD2HPacket extends HostBoundPacket {
979
+ constructor(data) {
980
+ super(data);
981
+ const dataView = PacketView.fromPacket(this);
982
+ this.value = dataView.nextVarNTBS(255);
983
+ }
984
+ }
985
+ ReadKeyValueReplyD2HPacket.COMMAND_ID = 86;
986
+ ReadKeyValueReplyD2HPacket.COMMAND_EXTENDED_ID = 46;
987
+ export class WriteKeyValueReplyD2HPacket extends HostBoundPacket {
988
+ }
989
+ WriteKeyValueReplyD2HPacket.COMMAND_ID = 86;
990
+ WriteKeyValueReplyD2HPacket.COMMAND_EXTENDED_ID = 47;
991
+ export class GetSlot1to4InfoReplyD2HPacket extends HostBoundPacket {
992
+ constructor(data, start = 1) {
993
+ super(data);
994
+ const dataView = PacketView.fromPacket(this);
995
+ this.slotFlags = dataView.nextUint8();
996
+ this.slots = [];
997
+ for (let i = 0; i < 4; i++) {
998
+ const hasData = (this.slotFlags & Math.pow(2, start - 1 + i)) !== 0;
999
+ if (!hasData)
1000
+ continue;
1001
+ const iconNum = dataView.nextUint16();
1002
+ const nameLen = dataView.nextUint8();
1003
+ const name = dataView.nextString(nameLen);
1004
+ this.slots.push({
1005
+ slot: start + i,
1006
+ icon: iconNum,
1007
+ name,
1008
+ });
1009
+ }
1010
+ }
1011
+ }
1012
+ GetSlot1to4InfoReplyD2HPacket.COMMAND_ID = 86;
1013
+ GetSlot1to4InfoReplyD2HPacket.COMMAND_EXTENDED_ID = 49;
1014
+ export class GetSlot5to8InfoReplyD2HPacket extends GetSlot1to4InfoReplyD2HPacket {
1015
+ constructor(data) {
1016
+ super(data, 5);
1017
+ this.slotStartIndex = 5;
1018
+ }
1019
+ }
1020
+ GetSlot5to8InfoReplyD2HPacket.COMMAND_ID = 86;
1021
+ GetSlot5to8InfoReplyD2HPacket.COMMAND_EXTENDED_ID = 50;
1022
+ export class FactoryStatusReplyD2HPacket extends HostBoundPacket {
1023
+ constructor(data) {
1024
+ super(data);
1025
+ const dataView = PacketView.fromPacket(this);
1026
+ this.status = dataView.nextUint8();
1027
+ this.percent = dataView.nextUint8();
1028
+ }
1029
+ }
1030
+ FactoryStatusReplyD2HPacket.COMMAND_ID = 86;
1031
+ FactoryStatusReplyD2HPacket.COMMAND_EXTENDED_ID = 241;
1032
+ export class FactoryEnableReplyD2HPacket extends HostBoundPacket {
1033
+ }
1034
+ FactoryEnableReplyD2HPacket.COMMAND_ID = 86;
1035
+ FactoryEnableReplyD2HPacket.COMMAND_EXTENDED_ID = 255;
1036
+ //# sourceMappingURL=VexPacket.js.map