@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,177 @@
1
+ /// <reference types="dom-serial" />
2
+ import { type MatchMode, SerialDeviceType, type ISmartDeviceInfo, SmartDeviceType, FileVendor, type IProgramInfo, type IFileHandle, FileDownloadTarget, type IFileBasicInfo, type IFileWriteRequest, RadioChannelType } from "./Vex";
3
+ import { V5SerialConnection } from "./VexConnection";
4
+ import { VexEventTarget } from "./VexEvent";
5
+ import { VexFirmwareVersion } from "./VexFirmwareVersion";
6
+ import { type ProgramIniConfig } from "./VexIniConfig";
7
+ export declare function downloadFileFromInternet(link: string): Promise<ArrayBuffer>;
8
+ export declare function sleepUntilAsync(f: () => Promise<boolean>, timeout: number, interval?: number): Promise<boolean>;
9
+ export declare function sleepUntil(f: () => boolean, timeout: number, interval?: number): Promise<boolean>;
10
+ export declare function sleep(ms: number): Promise<unknown>;
11
+ export declare abstract class VexSerialDevice extends VexEventTarget {
12
+ connection: V5SerialConnection | undefined;
13
+ defaultSerial: Serial;
14
+ get isConnected(): boolean;
15
+ get deviceType(): SerialDeviceType | undefined;
16
+ constructor(defaultSerial: Serial);
17
+ abstract connect(conn?: V5SerialConnection): Promise<boolean>;
18
+ abstract disconnect(): void;
19
+ }
20
+ declare class V5SerialDeviceState {
21
+ _instance: V5SerialDevice;
22
+ _isFileTransferring: boolean;
23
+ brain: {
24
+ activeProgram: number;
25
+ battery: {
26
+ batteryPercent: number;
27
+ isCharging: boolean;
28
+ };
29
+ button: {
30
+ isPressed: boolean;
31
+ isDoublePressed: boolean;
32
+ };
33
+ cpu0Version: VexFirmwareVersion;
34
+ cpu1Version: VexFirmwareVersion;
35
+ isAvailable: boolean;
36
+ settings: {
37
+ isScreenReversed: boolean;
38
+ isWhiteTheme: boolean;
39
+ usingLanguage: number;
40
+ };
41
+ systemVersion: VexFirmwareVersion;
42
+ uniqueId: number;
43
+ };
44
+ controllers: ({
45
+ battery: number;
46
+ isAvailable: boolean;
47
+ isCharging: boolean;
48
+ } | {
49
+ battery: number;
50
+ isAvailable: boolean;
51
+ isCharging?: undefined;
52
+ })[];
53
+ devices: Array<ISmartDeviceInfo | undefined>;
54
+ isFieldControllerConnected: boolean;
55
+ matchMode: MatchMode;
56
+ radio: {
57
+ channel: number;
58
+ isAvailable: boolean;
59
+ isConnected: boolean;
60
+ isVexNet: boolean;
61
+ isRadioData: boolean;
62
+ latency: number;
63
+ signalQuality: number;
64
+ signalStrength: number;
65
+ };
66
+ constructor(instance: V5SerialDevice);
67
+ }
68
+ export declare class V5Brain {
69
+ private readonly state;
70
+ constructor(state: V5SerialDeviceState);
71
+ get isRunningProgram(): boolean;
72
+ get activeProgram(): number;
73
+ set activeProgram(value: number);
74
+ get battery(): V5Battery;
75
+ get button(): V5BrainButton;
76
+ get cpu0Version(): VexFirmwareVersion;
77
+ get cpu1Version(): VexFirmwareVersion;
78
+ get isAvailable(): boolean;
79
+ get settings(): V5BrainSettings;
80
+ get systemVersion(): VexFirmwareVersion;
81
+ get uniqueId(): number;
82
+ getValue(key: string): Promise<string | undefined>;
83
+ setValue(key: string, value: string): Promise<boolean>;
84
+ listFiles(vendor?: FileVendor): Promise<IFileHandle[] | undefined>;
85
+ listProgram(): Promise<IProgramInfo[] | undefined>;
86
+ readFile(request: IFileBasicInfo | string, downloadTarget?: FileDownloadTarget, progressCallback?: (current: number, total: number) => void): Promise<Uint8Array | undefined>;
87
+ removeFile(request: IFileBasicInfo | string): Promise<boolean | undefined>;
88
+ removeAllFiles(): Promise<boolean | undefined>;
89
+ uploadFirmware(publicUrl?: string, usingVersion?: string, progressCallback?: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
90
+ uploadProgram(iniConfig: ProgramIniConfig, binFileBuf: Uint8Array, coldFileBuf: Uint8Array | undefined, progressCallback: (state: string, current: number, total: number) => void): Promise<boolean | undefined>;
91
+ writeFile(request: IFileWriteRequest, progressCallback?: (current: number, total: number) => void): Promise<boolean | undefined>;
92
+ /**
93
+ *
94
+ * @param progressCallback Informs the progress of the download.
95
+ * @returns array of bytes where each pixel is represented by 3 consecutive bytes (rgb).
96
+ * This array's length is 272 width * 480 height * 3 channels = 391680 bytes.
97
+ */
98
+ captureScreen(progressCallback?: (current: number, total: number) => void): Promise<Uint8Array | undefined>;
99
+ }
100
+ export declare class V5Battery {
101
+ private readonly state;
102
+ constructor(state: V5SerialDeviceState);
103
+ get batteryPercent(): number;
104
+ get isCharging(): boolean;
105
+ }
106
+ export declare class V5BrainButton {
107
+ private readonly state;
108
+ constructor(state: V5SerialDeviceState);
109
+ get isPressed(): boolean;
110
+ get isDoublePressed(): boolean;
111
+ }
112
+ export declare class V5BrainSettings {
113
+ private readonly state;
114
+ constructor(state: V5SerialDeviceState);
115
+ get isScreenReversed(): boolean;
116
+ get isWhiteTheme(): boolean;
117
+ get usingLanguage(): number;
118
+ }
119
+ export declare class V5Controller {
120
+ private readonly state;
121
+ private readonly controllerIndex;
122
+ constructor(state: V5SerialDeviceState, controllerIndex: number);
123
+ get batteryPercent(): number;
124
+ get isMasterController(): boolean;
125
+ get isAvailable(): boolean;
126
+ get isCharging(): boolean | undefined;
127
+ }
128
+ export declare class V5SmartDevice {
129
+ private readonly state;
130
+ private readonly deviceIndex;
131
+ constructor(state: V5SerialDeviceState, index: number);
132
+ protected getDeviceInfo(): ISmartDeviceInfo | undefined;
133
+ get isAvailable(): boolean;
134
+ get port(): number;
135
+ get type(): SmartDeviceType;
136
+ get version(): number;
137
+ }
138
+ export declare class V5Radio {
139
+ private readonly state;
140
+ constructor(state: V5SerialDeviceState);
141
+ get channel(): number;
142
+ get isAvailable(): boolean;
143
+ get isConnected(): boolean;
144
+ get isVexNet(): boolean;
145
+ get isRadioData(): boolean;
146
+ get latency(): number;
147
+ changeChannel(channel: RadioChannelType): Promise<boolean>;
148
+ }
149
+ export declare class V5SerialDevice extends VexSerialDevice {
150
+ autoReconnect: boolean;
151
+ autoRefresh: boolean;
152
+ pauseRefreshOnFileTransfer: boolean;
153
+ protected _isReconnecting: boolean;
154
+ private _refreshInterval;
155
+ state: V5SerialDeviceState;
156
+ constructor(defaultSerial: Serial);
157
+ get isV5Controller(): boolean;
158
+ get brain(): V5Brain;
159
+ get controllers(): [V5Controller, V5Controller];
160
+ get devices(): V5SmartDevice[];
161
+ get isFieldControllerConnected(): boolean;
162
+ get matchMode(): MatchMode;
163
+ set matchMode(value: MatchMode);
164
+ get radio(): V5Radio;
165
+ mockTouch(x: number, y: number, press: boolean): Promise<boolean>;
166
+ connect(conn?: V5SerialConnection): Promise<boolean>;
167
+ disconnect(): Promise<void>;
168
+ dispose(): Promise<void>;
169
+ /**
170
+ * @param timeout defaults to 0. If timeout is 0, then it will attempt to reconnect forever
171
+ * @returns
172
+ */
173
+ reconnect(timeout?: number): Promise<boolean>;
174
+ private doAfterConnect;
175
+ refresh(): Promise<boolean>;
176
+ }
177
+ export {};