@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
package/dts/Vex.d.ts ADDED
@@ -0,0 +1,235 @@
1
+ import { type VexFirmwareVersion } from "./VexFirmwareVersion";
2
+ import { type HostBoundPacket } from "./VexPacket";
3
+ export declare const USER_PROG_CHUNK_SIZE = 4096;
4
+ export declare const USER_FLASH_START = 50331648;
5
+ export declare const USER_FLASH_SYS_CODE_START = 54525952;
6
+ export declare const USER_FLASH_USR_CODE_START = 58720256;
7
+ export declare const USER_FLASH_END = 134217728;
8
+ export declare const USER_FLASH_MAX_FILE_SIZE = 2097152;
9
+ export declare const USER_FLASH_START_B = 270532608;
10
+ export declare const USER_FLASH_END_B = 272629760;
11
+ export declare const USER_FLASH_START_C = 807403520;
12
+ export declare const USER_FLASH_END_C = 822083584;
13
+ export interface ISmartDeviceInfo {
14
+ port: number;
15
+ type: SmartDeviceType;
16
+ status: number;
17
+ betaversion: number;
18
+ version: number;
19
+ bootversion: number;
20
+ }
21
+ export interface IFileBasicInfo {
22
+ filename: string;
23
+ vendor: FileVendor;
24
+ loadAddress?: number;
25
+ size?: number;
26
+ }
27
+ export interface IFileMetadata {
28
+ loadAddress: number;
29
+ size: number;
30
+ crc32: number;
31
+ type: string;
32
+ timestamp: number;
33
+ version: VexFirmwareVersion;
34
+ }
35
+ export interface IFileHandle extends IFileBasicInfo, IFileMetadata {
36
+ loadAddress: number;
37
+ size: number;
38
+ }
39
+ export interface IFileEntry extends IFileMetadata {
40
+ index: number;
41
+ filename: string;
42
+ }
43
+ export interface IFileWriteRequest {
44
+ filename: string;
45
+ vendor?: FileVendor;
46
+ loadAddress?: number;
47
+ buf?: Uint8Array;
48
+ downloadTarget: FileDownloadTarget;
49
+ exttype?: string;
50
+ autoRun: boolean;
51
+ linkedFile?: IFileWriteRequest;
52
+ }
53
+ export interface IProgramInfo {
54
+ name: string;
55
+ binfile: string;
56
+ size: number;
57
+ time: Date;
58
+ slot: number;
59
+ requestedSlot: number;
60
+ }
61
+ export interface IPacketCallback {
62
+ callback: (data: HostBoundPacket | ArrayBuffer | AckType) => void;
63
+ timeout: ReturnType<typeof setTimeout>;
64
+ wantedCommandId: number | undefined;
65
+ wantedCommandExId: number | undefined;
66
+ }
67
+ export type DataArray = ArrayBuffer | Uint8Array;
68
+ export type MatchMode = "driver" | "autonomous" | "disabled";
69
+ export declare enum FileVendor {
70
+ USER = 1,
71
+ SYS = 15,
72
+ DEV1 = 16,
73
+ DEV2 = 24,
74
+ DEV3 = 32,
75
+ DEV4 = 40,
76
+ DEV5 = 48,
77
+ DEV6 = 56,
78
+ VEXVM = 64,
79
+ VEX = 240,
80
+ UNDEFINED = 241
81
+ }
82
+ export declare enum FileDownloadTarget {
83
+ FILE_TARGET_DDR = 0,
84
+ FILE_TARGET_QSPI = 1,
85
+ FILE_TARGET_CBUF = 2,
86
+ FILE_TARGET_VBUF = 3,
87
+ FILE_TARGET_DDRC = 4,
88
+ FILE_TARGET_DDRE = 5,
89
+ FILE_TARGET_FLASH = 6,
90
+ FILE_TARGET_RADIO = 7,
91
+ FILE_TARGET_A1 = 13,
92
+ FILE_TARGET_B1 = 14,
93
+ FILE_TARGET_B2 = 15
94
+ }
95
+ export declare enum FileInitAction {
96
+ WRITE = 1,
97
+ READ = 2
98
+ }
99
+ export declare enum FileInitOption {
100
+ NONE = 0,
101
+ OVERWRITE = 1
102
+ }
103
+ export declare enum FileLoadAction {
104
+ RUN = 0,
105
+ STOP = 128
106
+ }
107
+ export declare enum FileExitAction {
108
+ EXIT_NONE = 0,
109
+ EXIT_RUN = 1,
110
+ EXIT_HALT = 3
111
+ }
112
+ export declare enum RadioChannelType {
113
+ PIT = 0,
114
+ DOWNLOAD = 1
115
+ }
116
+ export type SlotNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
117
+ export type ZerobaseSlotNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
118
+ export type PortNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;
119
+ export declare enum AckType {
120
+ CDC2_ACK = 118,
121
+ CDC2_NACK = 255,
122
+ CDC2_NACK_PACKET_CRC = 206,
123
+ CDC2_NACK_CMD_LENGTH = 208,
124
+ CDC2_NACK_SIZE = 209,
125
+ CDC2_NACK_CRC = 210,
126
+ CDC2_NACK_FILE = 211,
127
+ CDC2_NACK_INIT = 212,
128
+ CDC2_NACK_FUNC = 213,
129
+ CDC2_NACK_ALIGN = 214,
130
+ CDC2_NACK_ADDR = 215,
131
+ CDC2_NACK_INCOMPLETE = 216,
132
+ CDC2_NACK_DIR_INDEX = 217,
133
+ CDC2_NACK_MAX_USER_FILES = 218,
134
+ CDC2_NACK_FILE_EXISTS = 219,
135
+ CDC2_NACK_FILE_SYS_FULL = 220,
136
+ TIMEOUT = 256,
137
+ WRITE_ERROR = 257
138
+ }
139
+ export declare enum SmartDeviceType {
140
+ EMPTY = 0,
141
+ V5_POWER = 1,
142
+ MOTOR = 2,
143
+ LED = 3,
144
+ ABS_ENCODER_SENSOR = 4,
145
+ CR_MOTOR = 5,
146
+ IMU_SENSOR = 6,
147
+ DISTANCE_SENSOR = 7,
148
+ RADIO_SENSOR = 8,
149
+ CONTROLLER = 9,
150
+ BRAIN = 10,
151
+ VISION_SENSOR = 11,
152
+ ADI = 12,
153
+ PARTNER_CONTROLLER = 13,
154
+ BATTERY = 14,
155
+ SOL = 15,
156
+ OPTICAL_SENSOR = 16,
157
+ MAGNET = 17,
158
+ GPS_SENSOR = 20,
159
+ UNDEFINED_SENSOR = 255
160
+ }
161
+ export declare enum SerialDeviceType {
162
+ V5_BRAIN = 1281,
163
+ V5_BRAIN_DFU = 1282,
164
+ V5_CONTROLLER = 1283,
165
+ XILINX = 256,
166
+ IQ_BRAIN = 2,
167
+ IQ_BRAIN2 = 3,
168
+ IQ_BRAIN_DFU = 255,
169
+ IQ2_BRAIN = 512,
170
+ IQ2_BRAIN_DFU = 527,
171
+ IQ2_CONTROLLER = 528,
172
+ IQ2_CONTROLLER_DFU = 543,
173
+ EXP_BRAIN = 1536,
174
+ EXP_BRAIN_DFU = 1551,
175
+ EXP_CONTROLLER = 1552,
176
+ EXP_CONTROLLER_DFU = 1567,
177
+ PIXY = 61440,
178
+ PIXY_DFU = 12,
179
+ VEXCAM = 1287,
180
+ VEXCAM_DFU = 1288,
181
+ SENSOR_TEST = 1535,
182
+ CORTEX_PROGCBL = 10,
183
+ CORTEX_BRAIN = 11,
184
+ CORTEX_JOYSTK = 12,
185
+ VEXNET_KEY_20 = 7,
186
+ VEXNET_KEY_10 = 9587,
187
+ PROLIFIC = 8963
188
+ }
189
+ /**
190
+ * found from {@link https://gist.github.com/meisZWFLZ/9ebdd694060137b44959ff7ac80ff4e8 gist}
191
+ * @see {@link https://drive.google.com/drive/folders/11pSNKakbXp7hOYBQ3HNwprFaLalnXOgR screen images}
192
+ */
193
+ export declare enum SelectDashScreen {
194
+ HOME = 0,
195
+ BATTERY = 1,
196
+ LED = 3,
197
+ MATCH_CONFIG = 4,
198
+ MATCH_CONFIG_MORE = 5,
199
+ WIRING = 6,
200
+ RADIO = 8,
201
+ BRAIN = 10,
202
+ RUN_PROGRAM = 13,
203
+ DRIVE_PROGRAM_CONTROL_LEFT_MAPPING = 14,
204
+ DRIVE_PROGRAM_MENU = 15,
205
+ DEVICES = 16,
206
+ USER_PROGRAM_FOLDER = 17,
207
+ VEX_PROGRAM_FOLDER = 18,
208
+ SETTINGS = 19,
209
+ /** theres some scary looking stuff in here */
210
+ SCARY_CONFIGURATION = 20,
211
+ LANGUAGE = 21,
212
+ DRIVE_MOTOR_CONFIG = 22,
213
+ PROGRAM_MENU = 24,
214
+ SHUTDOWN = 25,
215
+ CONTROLLER_2_MAPPING = 26,
216
+ /** theres some even more scary looking stuff in here */
217
+ SCARY_CONFIGURATION_MORE = 27,
218
+ /** maybe this is scarier.. */
219
+ CONFIRM_XX = 28,
220
+ CONTROLLER_1_MAPPING = 29,
221
+ DRIVE_PROGRAM_CONTROL_DUAL_MAPPING = 30,
222
+ DRIVE_PROGRAM_CONTROL_SPLIT_MAPPING = 31,
223
+ DRIVE_PROGRAM_CONTROL_RIGHT_MAPPING = 32,
224
+ /** thats such a bad name */
225
+ MATCH_2_4_PLAYERS = 33,
226
+ EVENT_LOG = 34,
227
+ USER_PROGRAM_WIRING = 40,
228
+ CLAWBOT_PROGRAM_MENU = 41,
229
+ /** aka regulatory */
230
+ ABOUT = 42,
231
+ LANGUAGE_MORE = 43,
232
+ OBJECT_COLOR = 45,
233
+ SIGNATURE_ID = 46,
234
+ LOG_DATA = 47
235
+ }
package/dts/Vex.js ADDED
@@ -0,0 +1,189 @@
1
+ export const USER_PROG_CHUNK_SIZE = 4096; // chunk size
2
+ export const USER_FLASH_START = 0x03000000; // start address of memory
3
+ export const USER_FLASH_SYS_CODE_START = 0x03400000; // start address of system code
4
+ export const USER_FLASH_USR_CODE_START = 0x03800000; // start address of user code
5
+ export const USER_FLASH_END = 0x08000000; // end address of memory
6
+ export const USER_FLASH_MAX_FILE_SIZE = 0x200000; // maximum file size for qspi
7
+ export const USER_FLASH_START_B = 0x10200000; // special app flash start
8
+ export const USER_FLASH_END_B = 0x10400000; // special app flash end
9
+ export const USER_FLASH_START_C = 0x30200000; // special app flash start
10
+ export const USER_FLASH_END_C = 0x31000000; // special app flash end
11
+ export var FileVendor;
12
+ (function (FileVendor) {
13
+ // a.k.a vid
14
+ FileVendor[FileVendor["USER"] = 1] = "USER";
15
+ FileVendor[FileVendor["SYS"] = 15] = "SYS";
16
+ FileVendor[FileVendor["DEV1"] = 16] = "DEV1";
17
+ FileVendor[FileVendor["DEV2"] = 24] = "DEV2";
18
+ FileVendor[FileVendor["DEV3"] = 32] = "DEV3";
19
+ FileVendor[FileVendor["DEV4"] = 40] = "DEV4";
20
+ FileVendor[FileVendor["DEV5"] = 48] = "DEV5";
21
+ FileVendor[FileVendor["DEV6"] = 56] = "DEV6";
22
+ FileVendor[FileVendor["VEXVM"] = 64] = "VEXVM";
23
+ FileVendor[FileVendor["VEX"] = 240] = "VEX";
24
+ FileVendor[FileVendor["UNDEFINED"] = 241] = "UNDEFINED";
25
+ })(FileVendor || (FileVendor = {}));
26
+ export var FileDownloadTarget;
27
+ (function (FileDownloadTarget) {
28
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_DDR"] = 0] = "FILE_TARGET_DDR";
29
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_QSPI"] = 1] = "FILE_TARGET_QSPI";
30
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_CBUF"] = 2] = "FILE_TARGET_CBUF";
31
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_VBUF"] = 3] = "FILE_TARGET_VBUF";
32
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_DDRC"] = 4] = "FILE_TARGET_DDRC";
33
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_DDRE"] = 5] = "FILE_TARGET_DDRE";
34
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_FLASH"] = 6] = "FILE_TARGET_FLASH";
35
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_RADIO"] = 7] = "FILE_TARGET_RADIO";
36
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_A1"] = 13] = "FILE_TARGET_A1";
37
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_B1"] = 14] = "FILE_TARGET_B1";
38
+ FileDownloadTarget[FileDownloadTarget["FILE_TARGET_B2"] = 15] = "FILE_TARGET_B2";
39
+ })(FileDownloadTarget || (FileDownloadTarget = {}));
40
+ export var FileInitAction;
41
+ (function (FileInitAction) {
42
+ FileInitAction[FileInitAction["WRITE"] = 1] = "WRITE";
43
+ FileInitAction[FileInitAction["READ"] = 2] = "READ";
44
+ })(FileInitAction || (FileInitAction = {}));
45
+ export var FileInitOption;
46
+ (function (FileInitOption) {
47
+ FileInitOption[FileInitOption["NONE"] = 0] = "NONE";
48
+ FileInitOption[FileInitOption["OVERWRITE"] = 1] = "OVERWRITE";
49
+ })(FileInitOption || (FileInitOption = {}));
50
+ export var FileLoadAction;
51
+ (function (FileLoadAction) {
52
+ FileLoadAction[FileLoadAction["RUN"] = 0] = "RUN";
53
+ FileLoadAction[FileLoadAction["STOP"] = 128] = "STOP";
54
+ })(FileLoadAction || (FileLoadAction = {}));
55
+ export var FileExitAction;
56
+ (function (FileExitAction) {
57
+ FileExitAction[FileExitAction["EXIT_NONE"] = 0] = "EXIT_NONE";
58
+ FileExitAction[FileExitAction["EXIT_RUN"] = 1] = "EXIT_RUN";
59
+ FileExitAction[FileExitAction["EXIT_HALT"] = 3] = "EXIT_HALT";
60
+ })(FileExitAction || (FileExitAction = {}));
61
+ export var RadioChannelType;
62
+ (function (RadioChannelType) {
63
+ RadioChannelType[RadioChannelType["PIT"] = 0] = "PIT";
64
+ RadioChannelType[RadioChannelType["DOWNLOAD"] = 1] = "DOWNLOAD";
65
+ })(RadioChannelType || (RadioChannelType = {}));
66
+ export var AckType;
67
+ (function (AckType) {
68
+ AckType[AckType["CDC2_ACK"] = 118] = "CDC2_ACK";
69
+ AckType[AckType["CDC2_NACK"] = 255] = "CDC2_NACK";
70
+ AckType[AckType["CDC2_NACK_PACKET_CRC"] = 206] = "CDC2_NACK_PACKET_CRC";
71
+ AckType[AckType["CDC2_NACK_CMD_LENGTH"] = 208] = "CDC2_NACK_CMD_LENGTH";
72
+ AckType[AckType["CDC2_NACK_SIZE"] = 209] = "CDC2_NACK_SIZE";
73
+ AckType[AckType["CDC2_NACK_CRC"] = 210] = "CDC2_NACK_CRC";
74
+ AckType[AckType["CDC2_NACK_FILE"] = 211] = "CDC2_NACK_FILE";
75
+ AckType[AckType["CDC2_NACK_INIT"] = 212] = "CDC2_NACK_INIT";
76
+ AckType[AckType["CDC2_NACK_FUNC"] = 213] = "CDC2_NACK_FUNC";
77
+ AckType[AckType["CDC2_NACK_ALIGN"] = 214] = "CDC2_NACK_ALIGN";
78
+ AckType[AckType["CDC2_NACK_ADDR"] = 215] = "CDC2_NACK_ADDR";
79
+ AckType[AckType["CDC2_NACK_INCOMPLETE"] = 216] = "CDC2_NACK_INCOMPLETE";
80
+ AckType[AckType["CDC2_NACK_DIR_INDEX"] = 217] = "CDC2_NACK_DIR_INDEX";
81
+ AckType[AckType["CDC2_NACK_MAX_USER_FILES"] = 218] = "CDC2_NACK_MAX_USER_FILES";
82
+ AckType[AckType["CDC2_NACK_FILE_EXISTS"] = 219] = "CDC2_NACK_FILE_EXISTS";
83
+ AckType[AckType["CDC2_NACK_FILE_SYS_FULL"] = 220] = "CDC2_NACK_FILE_SYS_FULL";
84
+ AckType[AckType["TIMEOUT"] = 256] = "TIMEOUT";
85
+ AckType[AckType["WRITE_ERROR"] = 257] = "WRITE_ERROR";
86
+ })(AckType || (AckType = {}));
87
+ export var SmartDeviceType;
88
+ (function (SmartDeviceType) {
89
+ SmartDeviceType[SmartDeviceType["EMPTY"] = 0] = "EMPTY";
90
+ SmartDeviceType[SmartDeviceType["V5_POWER"] = 1] = "V5_POWER";
91
+ SmartDeviceType[SmartDeviceType["MOTOR"] = 2] = "MOTOR";
92
+ SmartDeviceType[SmartDeviceType["LED"] = 3] = "LED";
93
+ SmartDeviceType[SmartDeviceType["ABS_ENCODER_SENSOR"] = 4] = "ABS_ENCODER_SENSOR";
94
+ SmartDeviceType[SmartDeviceType["CR_MOTOR"] = 5] = "CR_MOTOR";
95
+ SmartDeviceType[SmartDeviceType["IMU_SENSOR"] = 6] = "IMU_SENSOR";
96
+ SmartDeviceType[SmartDeviceType["DISTANCE_SENSOR"] = 7] = "DISTANCE_SENSOR";
97
+ SmartDeviceType[SmartDeviceType["RADIO_SENSOR"] = 8] = "RADIO_SENSOR";
98
+ SmartDeviceType[SmartDeviceType["CONTROLLER"] = 9] = "CONTROLLER";
99
+ SmartDeviceType[SmartDeviceType["BRAIN"] = 10] = "BRAIN";
100
+ SmartDeviceType[SmartDeviceType["VISION_SENSOR"] = 11] = "VISION_SENSOR";
101
+ SmartDeviceType[SmartDeviceType["ADI"] = 12] = "ADI";
102
+ SmartDeviceType[SmartDeviceType["PARTNER_CONTROLLER"] = 13] = "PARTNER_CONTROLLER";
103
+ SmartDeviceType[SmartDeviceType["BATTERY"] = 14] = "BATTERY";
104
+ SmartDeviceType[SmartDeviceType["SOL"] = 15] = "SOL";
105
+ SmartDeviceType[SmartDeviceType["OPTICAL_SENSOR"] = 16] = "OPTICAL_SENSOR";
106
+ SmartDeviceType[SmartDeviceType["MAGNET"] = 17] = "MAGNET";
107
+ SmartDeviceType[SmartDeviceType["GPS_SENSOR"] = 20] = "GPS_SENSOR";
108
+ SmartDeviceType[SmartDeviceType["UNDEFINED_SENSOR"] = 255] = "UNDEFINED_SENSOR";
109
+ })(SmartDeviceType || (SmartDeviceType = {}));
110
+ export var SerialDeviceType;
111
+ (function (SerialDeviceType) {
112
+ SerialDeviceType[SerialDeviceType["V5_BRAIN"] = 1281] = "V5_BRAIN";
113
+ SerialDeviceType[SerialDeviceType["V5_BRAIN_DFU"] = 1282] = "V5_BRAIN_DFU";
114
+ SerialDeviceType[SerialDeviceType["V5_CONTROLLER"] = 1283] = "V5_CONTROLLER";
115
+ SerialDeviceType[SerialDeviceType["XILINX"] = 256] = "XILINX";
116
+ SerialDeviceType[SerialDeviceType["IQ_BRAIN"] = 2] = "IQ_BRAIN";
117
+ SerialDeviceType[SerialDeviceType["IQ_BRAIN2"] = 3] = "IQ_BRAIN2";
118
+ SerialDeviceType[SerialDeviceType["IQ_BRAIN_DFU"] = 255] = "IQ_BRAIN_DFU";
119
+ SerialDeviceType[SerialDeviceType["IQ2_BRAIN"] = 512] = "IQ2_BRAIN";
120
+ SerialDeviceType[SerialDeviceType["IQ2_BRAIN_DFU"] = 527] = "IQ2_BRAIN_DFU";
121
+ SerialDeviceType[SerialDeviceType["IQ2_CONTROLLER"] = 528] = "IQ2_CONTROLLER";
122
+ SerialDeviceType[SerialDeviceType["IQ2_CONTROLLER_DFU"] = 543] = "IQ2_CONTROLLER_DFU";
123
+ SerialDeviceType[SerialDeviceType["EXP_BRAIN"] = 1536] = "EXP_BRAIN";
124
+ SerialDeviceType[SerialDeviceType["EXP_BRAIN_DFU"] = 1551] = "EXP_BRAIN_DFU";
125
+ SerialDeviceType[SerialDeviceType["EXP_CONTROLLER"] = 1552] = "EXP_CONTROLLER";
126
+ SerialDeviceType[SerialDeviceType["EXP_CONTROLLER_DFU"] = 1567] = "EXP_CONTROLLER_DFU";
127
+ SerialDeviceType[SerialDeviceType["PIXY"] = 61440] = "PIXY";
128
+ SerialDeviceType[SerialDeviceType["PIXY_DFU"] = 12] = "PIXY_DFU";
129
+ SerialDeviceType[SerialDeviceType["VEXCAM"] = 1287] = "VEXCAM";
130
+ SerialDeviceType[SerialDeviceType["VEXCAM_DFU"] = 1288] = "VEXCAM_DFU";
131
+ SerialDeviceType[SerialDeviceType["SENSOR_TEST"] = 1535] = "SENSOR_TEST";
132
+ SerialDeviceType[SerialDeviceType["CORTEX_PROGCBL"] = 10] = "CORTEX_PROGCBL";
133
+ SerialDeviceType[SerialDeviceType["CORTEX_BRAIN"] = 11] = "CORTEX_BRAIN";
134
+ // Jerry says this was copied from the official source code ¯\_(ツ)_/¯
135
+ // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
136
+ SerialDeviceType[SerialDeviceType["CORTEX_JOYSTK"] = 12] = "CORTEX_JOYSTK";
137
+ SerialDeviceType[SerialDeviceType["VEXNET_KEY_20"] = 7] = "VEXNET_KEY_20";
138
+ SerialDeviceType[SerialDeviceType["VEXNET_KEY_10"] = 9587] = "VEXNET_KEY_10";
139
+ SerialDeviceType[SerialDeviceType["PROLIFIC"] = 8963] = "PROLIFIC";
140
+ })(SerialDeviceType || (SerialDeviceType = {}));
141
+ /**
142
+ * found from {@link https://gist.github.com/meisZWFLZ/9ebdd694060137b44959ff7ac80ff4e8 gist}
143
+ * @see {@link https://drive.google.com/drive/folders/11pSNKakbXp7hOYBQ3HNwprFaLalnXOgR screen images}
144
+ */
145
+ export var SelectDashScreen;
146
+ (function (SelectDashScreen) {
147
+ SelectDashScreen[SelectDashScreen["HOME"] = 0] = "HOME";
148
+ SelectDashScreen[SelectDashScreen["BATTERY"] = 1] = "BATTERY";
149
+ SelectDashScreen[SelectDashScreen["LED"] = 3] = "LED";
150
+ SelectDashScreen[SelectDashScreen["MATCH_CONFIG"] = 4] = "MATCH_CONFIG";
151
+ SelectDashScreen[SelectDashScreen["MATCH_CONFIG_MORE"] = 5] = "MATCH_CONFIG_MORE";
152
+ SelectDashScreen[SelectDashScreen["WIRING"] = 6] = "WIRING";
153
+ SelectDashScreen[SelectDashScreen["RADIO"] = 8] = "RADIO";
154
+ SelectDashScreen[SelectDashScreen["BRAIN"] = 10] = "BRAIN";
155
+ SelectDashScreen[SelectDashScreen["RUN_PROGRAM"] = 13] = "RUN_PROGRAM";
156
+ SelectDashScreen[SelectDashScreen["DRIVE_PROGRAM_CONTROL_LEFT_MAPPING"] = 14] = "DRIVE_PROGRAM_CONTROL_LEFT_MAPPING";
157
+ SelectDashScreen[SelectDashScreen["DRIVE_PROGRAM_MENU"] = 15] = "DRIVE_PROGRAM_MENU";
158
+ SelectDashScreen[SelectDashScreen["DEVICES"] = 16] = "DEVICES";
159
+ SelectDashScreen[SelectDashScreen["USER_PROGRAM_FOLDER"] = 17] = "USER_PROGRAM_FOLDER";
160
+ SelectDashScreen[SelectDashScreen["VEX_PROGRAM_FOLDER"] = 18] = "VEX_PROGRAM_FOLDER";
161
+ SelectDashScreen[SelectDashScreen["SETTINGS"] = 19] = "SETTINGS";
162
+ /** theres some scary looking stuff in here */
163
+ SelectDashScreen[SelectDashScreen["SCARY_CONFIGURATION"] = 20] = "SCARY_CONFIGURATION";
164
+ SelectDashScreen[SelectDashScreen["LANGUAGE"] = 21] = "LANGUAGE";
165
+ SelectDashScreen[SelectDashScreen["DRIVE_MOTOR_CONFIG"] = 22] = "DRIVE_MOTOR_CONFIG";
166
+ SelectDashScreen[SelectDashScreen["PROGRAM_MENU"] = 24] = "PROGRAM_MENU";
167
+ SelectDashScreen[SelectDashScreen["SHUTDOWN"] = 25] = "SHUTDOWN";
168
+ SelectDashScreen[SelectDashScreen["CONTROLLER_2_MAPPING"] = 26] = "CONTROLLER_2_MAPPING";
169
+ /** theres some even more scary looking stuff in here */
170
+ SelectDashScreen[SelectDashScreen["SCARY_CONFIGURATION_MORE"] = 27] = "SCARY_CONFIGURATION_MORE";
171
+ /** maybe this is scarier.. */
172
+ SelectDashScreen[SelectDashScreen["CONFIRM_XX"] = 28] = "CONFIRM_XX";
173
+ SelectDashScreen[SelectDashScreen["CONTROLLER_1_MAPPING"] = 29] = "CONTROLLER_1_MAPPING";
174
+ SelectDashScreen[SelectDashScreen["DRIVE_PROGRAM_CONTROL_DUAL_MAPPING"] = 30] = "DRIVE_PROGRAM_CONTROL_DUAL_MAPPING";
175
+ SelectDashScreen[SelectDashScreen["DRIVE_PROGRAM_CONTROL_SPLIT_MAPPING"] = 31] = "DRIVE_PROGRAM_CONTROL_SPLIT_MAPPING";
176
+ SelectDashScreen[SelectDashScreen["DRIVE_PROGRAM_CONTROL_RIGHT_MAPPING"] = 32] = "DRIVE_PROGRAM_CONTROL_RIGHT_MAPPING";
177
+ /** thats such a bad name */
178
+ SelectDashScreen[SelectDashScreen["MATCH_2_4_PLAYERS"] = 33] = "MATCH_2_4_PLAYERS";
179
+ SelectDashScreen[SelectDashScreen["EVENT_LOG"] = 34] = "EVENT_LOG";
180
+ SelectDashScreen[SelectDashScreen["USER_PROGRAM_WIRING"] = 40] = "USER_PROGRAM_WIRING";
181
+ SelectDashScreen[SelectDashScreen["CLAWBOT_PROGRAM_MENU"] = 41] = "CLAWBOT_PROGRAM_MENU";
182
+ /** aka regulatory */
183
+ SelectDashScreen[SelectDashScreen["ABOUT"] = 42] = "ABOUT";
184
+ SelectDashScreen[SelectDashScreen["LANGUAGE_MORE"] = 43] = "LANGUAGE_MORE";
185
+ SelectDashScreen[SelectDashScreen["OBJECT_COLOR"] = 45] = "OBJECT_COLOR";
186
+ SelectDashScreen[SelectDashScreen["SIGNATURE_ID"] = 46] = "SIGNATURE_ID";
187
+ SelectDashScreen[SelectDashScreen["LOG_DATA"] = 47] = "LOG_DATA";
188
+ })(SelectDashScreen || (SelectDashScreen = {}));
189
+ //# sourceMappingURL=Vex.js.map
package/dts/Vex.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vex.js","sourceRoot":"","sources":["../src/Vex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare class CrcGenerator {
2
+ crc16Table: Uint32Array;
3
+ crc32Table: Uint32Array;
4
+ static POLYNOMIAL_CRC32: number;
5
+ static POLYNOMIAL_CRC16: number;
6
+ constructor();
7
+ /**
8
+ * Calculate CRC16 for buffer
9
+ */
10
+ crc16(buf: Uint8Array, initValue: number): number;
11
+ /**
12
+ * Generate CRC32 reverse table
13
+ */
14
+ crc32GenTable(): void;
15
+ /**
16
+ * Calculate CRC32 for buffer
17
+ */
18
+ crc32(buf: Uint8Array, initValue: number): number;
19
+ }
package/dts/VexCRC.js ADDED
@@ -0,0 +1,89 @@
1
+ const CRC16TABLE = [
2
+ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108,
3
+ 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,
4
+ 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b,
5
+ 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,
6
+ 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee,
7
+ 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,
8
+ 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d,
9
+ 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
10
+ 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5,
11
+ 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,
12
+ 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4,
13
+ 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,
14
+ 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13,
15
+ 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,
16
+ 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e,
17
+ 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
18
+ 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1,
19
+ 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,
20
+ 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0,
21
+ 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,
22
+ 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657,
23
+ 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,
24
+ 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882,
25
+ 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
26
+ 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e,
27
+ 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,
28
+ 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d,
29
+ 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,
30
+ 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
31
+ ];
32
+ export class CrcGenerator {
33
+ constructor() {
34
+ this.crc32Table = new Uint32Array(256);
35
+ this.crc32GenTable();
36
+ }
37
+ /**
38
+ * Calculate CRC16 for buffer
39
+ */
40
+ crc16(buf, initValue) {
41
+ const numberOfBytes = buf.byteLength;
42
+ let accumulator = initValue;
43
+ let i;
44
+ let j;
45
+ // now calculate CRC16
46
+ for (j = 0; j < numberOfBytes; j++) {
47
+ i = ((accumulator >>> 8) ^ buf[j]) & 0xff;
48
+ accumulator = ((accumulator << 8) ^ CRC16TABLE[i]) >>> 0;
49
+ }
50
+ return (accumulator & 0xffff) >>> 0;
51
+ }
52
+ /**
53
+ * Generate CRC32 reverse table
54
+ */
55
+ crc32GenTable() {
56
+ let i;
57
+ let j;
58
+ let crcAccumulator;
59
+ for (i = 0; i < 256; i++) {
60
+ crcAccumulator = i << 24;
61
+ for (j = 0; j < 8; j++) {
62
+ if ((crcAccumulator & 0x80000000) !== 0)
63
+ crcAccumulator =
64
+ (crcAccumulator << 1) ^ CrcGenerator.POLYNOMIAL_CRC32;
65
+ else
66
+ crcAccumulator = crcAccumulator << 1;
67
+ }
68
+ this.crc32Table[i] = crcAccumulator;
69
+ }
70
+ }
71
+ /**
72
+ * Calculate CRC32 for buffer
73
+ */
74
+ crc32(buf, initValue) {
75
+ const numberOfBytes = buf.byteLength;
76
+ let crcAccumulator = initValue;
77
+ let i;
78
+ let j;
79
+ // now calculate CRC32
80
+ for (j = 0; j < numberOfBytes; j++) {
81
+ i = ((crcAccumulator >>> 24) ^ buf[j]) & 0xff;
82
+ crcAccumulator = ((crcAccumulator << 8) ^ this.crc32Table[i]) >>> 0;
83
+ }
84
+ return (crcAccumulator & 0xffffffff) >>> 0;
85
+ }
86
+ }
87
+ CrcGenerator.POLYNOMIAL_CRC32 = 79764919;
88
+ CrcGenerator.POLYNOMIAL_CRC16 = 4129;
89
+ //# sourceMappingURL=VexCRC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VexCRC.js","sourceRoot":"","sources":["../src/VexCRC.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAC/B,CAAC;AAEF,MAAM,OAAO,YAAY;IAMvB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAe,EAAE,SAAiB;QACtC,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;QACrC,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QAEN,sBAAsB;QACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YAClC,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC1C,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC1D;QACD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QACN,IAAI,cAAc,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACxB,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;oBACrC,cAAc;wBACZ,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,gBAAgB,CAAC;;oBACrD,cAAc,GAAG,cAAc,IAAI,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;SACrC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAe,EAAE,SAAiB;QACtC,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;QACrC,IAAI,cAAc,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QAEN,sBAAsB;QACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YAClC,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC9C,cAAc,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACrE;QACD,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;;AA3DM,6BAAgB,GAAG,QAAQ,CAAC;AAC5B,6BAAgB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,45 @@
1
+ /// <reference types="dom-serial" />
2
+ import { AckType, FileDownloadTarget, type IFileBasicInfo, type IFileWriteRequest, type IPacketCallback, type MatchMode, type SlotNumber, type SelectDashScreen } from "./Vex";
3
+ import { VexEventTarget } from "./VexEvent";
4
+ import { type ProgramIniConfig } from "./VexIniConfig";
5
+ import { MatchStatusReplyD2HPacket, DeviceBoundPacket, MatchModeReplyD2HPacket, GetSystemStatusReplyD2HPacket, type HostBoundPacket, Query1ReplyD2HPacket, LoadFileActionReplyD2HPacket, GetSystemFlagsReplyD2HPacket, GetRadioStatusReplyD2HPacket, GetDeviceStatusReplyD2HPacket, SendDashTouchReplyD2HPacket, type SelectDashReplyD2HPacket } from "./VexPacket";
6
+ import { type VexFirmwareVersion } from "./VexFirmwareVersion";
7
+ /**
8
+ * A connection to a V5 device.
9
+ * Emit events: connected, disconnected
10
+ */
11
+ export declare class VexSerialConnection extends VexEventTarget {
12
+ filters: SerialPortFilter[];
13
+ writer: WritableStreamDefaultWriter<unknown> | undefined;
14
+ reader: ReadableStreamDefaultReader<unknown> | undefined;
15
+ port: SerialPort | undefined;
16
+ serial: Serial;
17
+ callbacksQueue: IPacketCallback[];
18
+ get isConnected(): boolean;
19
+ constructor(serial: Serial);
20
+ close(): Promise<void>;
21
+ open(use?: number | undefined, askUser?: boolean): Promise<boolean | undefined>;
22
+ writeData(rawData: DeviceBoundPacket | Uint8Array, resolve: (data: HostBoundPacket | ArrayBuffer | AckType) => void, timeout?: number): void;
23
+ writeDataAsync(rawData: DeviceBoundPacket | Uint8Array, timeout?: number): Promise<HostBoundPacket | ArrayBuffer | AckType>;
24
+ protected readData(cache: Uint8Array, expectedSize: number): Promise<Uint8Array>;
25
+ protected startReader(): Promise<void>;
26
+ query1(): Promise<Query1ReplyD2HPacket | null>;
27
+ getSystemVersion(): Promise<VexFirmwareVersion | null>;
28
+ }
29
+ export declare class V5SerialConnection extends VexSerialConnection {
30
+ filters: SerialPortFilter[];
31
+ getDeviceStatus(): Promise<GetDeviceStatusReplyD2HPacket | null>;
32
+ getRadioStatus(): Promise<GetRadioStatusReplyD2HPacket | null>;
33
+ getSystemFlags(): Promise<GetSystemFlagsReplyD2HPacket | null>;
34
+ getSystemStatus(timeout?: number): Promise<GetSystemStatusReplyD2HPacket | null>;
35
+ getMatchStatus(): Promise<MatchStatusReplyD2HPacket | null>;
36
+ uploadProgramToDevice(iniConfig: ProgramIniConfig, binFileBuf: Uint8Array, coldFileBuf: Uint8Array | undefined, progressCallback: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
37
+ downloadFileToHost(request: IFileBasicInfo, downloadTarget?: FileDownloadTarget, progressCallback?: (current: number, total: number) => void): Promise<Uint8Array>;
38
+ uploadFileToDevice(request: IFileWriteRequest, progressCallback?: (current: number, total: number) => void): Promise<boolean>;
39
+ setMatchMode(mode: MatchMode): Promise<MatchModeReplyD2HPacket | null>;
40
+ loadProgram(value: SlotNumber | string): Promise<LoadFileActionReplyD2HPacket | null>;
41
+ stopProgram(): Promise<LoadFileActionReplyD2HPacket | null>;
42
+ mockTouch(x: number, y: number, press: boolean): Promise<SendDashTouchReplyD2HPacket | null>;
43
+ /** @param port untested */
44
+ openScreen(screen: number | SelectDashScreen, port: number): Promise<SelectDashReplyD2HPacket | null>;
45
+ }