-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.d.ts
1296 lines (1201 loc) · 42.4 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
export const FTDI_DRIVER_LOADED: boolean;
type Enum<T> = T[keyof T];
/**
* Status values for FTDI devices
*/
export const FT_STATUS: {
/**
* Status OK
*/
readonly FT_OK: 0,
/**
* The device handle is invalid
*/
readonly FT_INVALID_HANDLE: 1,
/**
* Device not found
*/
readonly FT_DEVICE_NOT_FOUND: 2,
/**
* Device is not open
*/
readonly FT_DEVICE_NOT_OPENED: 3,
/**
* IO error
*/
readonly FT_IO_ERROR: 4,
/**
* Insufficient resources
*/
readonly FT_INSUFFICIENT_RESOURCES: 5,
/**
* A parameter was invalid
*/
readonly FT_INVALID_PARAMETER: 6,
/**
* The requested baud rate is invalid
*/
readonly FT_INVALID_BAUD_RATE: 7,
/**
* Device not opened for erase
*/
readonly FT_DEVICE_NOT_OPENED_FOR_ERASE: 8,
/**
* Device not poened for write
*/
readonly FT_DEVICE_NOT_OPENED_FOR_WRITE: 9,
/**
* Failed to write to device
*/
readonly FT_FAILED_TO_WRITE_DEVICE: 10,
/**
* Failed to read the device EEPROM
*/
readonly FT_EEPROM_READ_FAILED: 11,
/**
* Failed to write the device EEPROM
*/
readonly FT_EEPROM_WRITE_FAILED: 12,
/**
* Failed to erase the device EEPROM
*/
readonly FT_EEPROM_ERASE_FAILED: 13,
/**
* An EEPROM is not fitted to the device
*/
readonly FT_EEPROM_NOT_PRESENT: 14,
/**
* Device EEPROM is blank
*/
readonly FT_EEPROM_NOT_PROGRAMMED: 15,
/**
* Invalid arguments
*/
readonly FT_INVALID_ARGS: 16,
/**
* An other error has occurred
*/
readonly FT_OTHER_ERROR: 17
};
export type FT_STATUS = Enum<typeof FT_STATUS>;
/**
* Flags that provide information on the FTDI device state
*/
export const FT_FLAGS: {
/**
* Indicates that the device is open
*/
readonly FT_FLAGS_OPENED: 0x00000001,
/**
* Indicates that the device is enumerated as a hi-speed USB device
*/
readonly FT_FLAGS_HISPEED: 0x00000002,
}
export type FT_FLAGS = Enum<typeof FT_FLAGS>;
/**
* Device type identifiers for FT_GetDeviceInfoDetail and FT_GetDeviceInfo
*/
export const FT_DEVICE: {
/**
* FT232B or FT245B device
*/
readonly FT_DEVICE_BM: 0,
/**
* FT8U232AM or FT8U245AM device
*/
readonly FT_DEVICE_AM: 1,
/**
* FT8U100AX device
*/
readonly FT_DEVICE_100AX: 2,
/**
* Unknown device
*/
readonly FT_DEVICE_UNKNOWN: 3,
/**
* FT2232 device
*/
readonly FT_DEVICE_2232: 4,
/**
* FT232R or FT245R device
*/
readonly FT_DEVICE_232R: 5,
/**
* FT2232H device
*/
readonly FT_DEVICE_2232H: 6,
/**
* FT4232H device
*/
readonly FT_DEVICE_4232H: 7,
/**
* FT232H device
*/
readonly FT_DEVICE_232H: 8,
/**
* FT X-Series device
*/
readonly FT_DEVICE_X_SERIES: 9,
/**
* FT4222 hi-speed device Mode 0 - 2 interfaces
*/
readonly FT_DEVICE_4222H_0: 10,
/**
* FT4222 hi-speed device Mode 1 or 2 - 4 interfacesef
*/
readonly FT_DEVICE_4222H_1_2: 11,
/**
* FT4222 hi-speed device Mode 3 - 1 interface
*/
readonly FT_DEVICE_4222H_3: 12,
/**
* OTP programmer board for the FT4222
*/
readonly FT_DEVICE_4222_PROG: 13,
}
export type FT_DEVICE = Enum<typeof FT_DEVICE>;
/**
* Permitted data bits for FTDI devices
*/
export const FT_DATA_BITS: {
/**
* 8 data bits
*/
readonly FT_BITS_8: 0x08,
/**
* 7 data bits
*/
readonly FT_BITS_7: 0x07,
}
export type FT_DATA_BITS = Enum<typeof FT_DATA_BITS>;
/**
* Permitted stop bits for FTDI devices
*/
export const FT_STOP_BITS: {
/**
* 1 stop bit
*/
readonly FT_STOP_BITS_1: 0x00,
/**
* 2 stop bits
*/
readonly FT_STOP_BITS_2: 0x02,
}
export type FT_STOP_BITS = Enum<typeof FT_STOP_BITS>;
/**
* Permitted parity values for FTDI devices
*/
export const FT_PARITY: {
/**
* No parity
*/
readonly FT_PARITY_NONE: 0x00,
/**
* Odd parity
*/
readonly FT_PARITY_ODD: 0x01,
/**
* Even parity
*/
readonly FT_PARITY_EVEN: 0x02,
/**
* Mark parity
*/
readonly FT_PARITY_MARK: 0x03,
/**
* Space parity
*/
readonly FT_PARITY_SPACE: 0x04,
}
export type FT_PARITY = Enum<typeof FT_PARITY>;
/**
* Permitted flow control values for FTDI devices
*/
export const FT_FLOW_CONTROL: {
/**
* No flow control
*/
readonly FT_FLOW_NONE: 0x0000,
/**
* RTS/CTS flow control
*/
readonly FT_FLOW_RTS_CTS: 0x0100,
/**
* DTR/DSR flow control
*/
readonly FT_FLOW_DTR_DSR: 0x0200,
/**
* Xon/Xoff flow control
*/
readonly FT_FLOW_XON_XOFF: 0x0400,
}
export type FT_FLOW_CONTROL = Enum<typeof FT_FLOW_CONTROL>;
/**
* Purge buffer constant definitions
* @enum {number}
*/
export const FT_PURGE: {
/**
* Purge Rx buffer
*/
readonly FT_PURGE_RX: 0x01,
/**
* Purge Tx buffer
*/
readonly FT_PURGE_TX: 0x02
}
export type FT_PURGE = Enum<typeof FT_PURGE>;
/**
* Valid values for drive current options on FT2232H, FT4232H and FT232H devices
*/
export const FT_DRIVE_CURRENT: {
/**
* 4mA drive current
*/
readonly FT_DRIVE_CURRENT_4MA: 4,
/**
* 8mA drive current
*/
readonly FT_DRIVE_CURRENT_8MA: 8,
/**
* 12mA drive current
*/
readonly FT_DRIVE_CURRENT_12MA: 12,
/**
* 16mA drive current
*/
readonly FT_DRIVE_CURRENT_16MA: 16,
};
export type FT_DRIVE_CURRENT = Enum<typeof FT_DRIVE_CURRENT>;
/**
* Available functions for the FT232H CBUS pins. Controlled by FT232H EEPROM settings
*/
export const FT_232H_CBUS_OPTIONS: {
/**
* FT232H CBUS EEPROM options - Tristate
*/
readonly FT_CBUS_TRISTATE: 0x00,
/**
* FT232H CBUS EEPROM options - Rx LED
*/
readonly FT_CBUS_RXLED: 0x01,
/**
* FT232H CBUS EEPROM options - Tx LED
*/
readonly FT_CBUS_TXLED: 0x02,
/**
* FT232H CBUS EEPROM options - Tx and Rx LED
*/
readonly FT_CBUS_TXRXLED: 0x03,
/**
* FT232H CBUS EEPROM options - Power Enable#
*/
readonly FT_CBUS_PWREN: 0x04,
/**
* FT232H CBUS EEPROM options - Sleep
*/
readonly FT_CBUS_SLEEP: 0x05,
/**
* FT232H CBUS EEPROM options - Drive pin to logic 0
*/
readonly FT_CBUS_DRIVE_0: 0x06,
/**
* FT232H CBUS EEPROM options - Drive pin to logic 1
*/
readonly FT_CBUS_DRIVE_1: 0x07,
/**
* FT232H CBUS EEPROM options - IO Mode
*/
readonly FT_CBUS_IOMODE: 0x08,
/**
* FT232H CBUS EEPROM options - Tx Data Enable
*/
readonly FT_CBUS_TXDEN: 0x09,
/**
* FT232H CBUS EEPROM options - 30MHz clock
*/
readonly FT_CBUS_CLK30: 0x0A,
/**
* FT232H CBUS EEPROM options - 15MHz clock
*/
readonly FT_CBUS_CLK15: 0x0B,
/**
* FT232H CBUS EEPROM options - 7.5MHz clock
*/
readonly FT_CBUS_CLK7_5: 0x0C,
}
export type FT_232H_CBUS_OPTIONS = Enum<typeof FT_232H_CBUS_OPTIONS>;
/**
* Error states not supported by FTD2XX
*/
export const FT_ERROR: {
readonly FT_NO_ERROR: 0,
readonly FT_INCORRECT_DEVICE: 1,
readonly FT_INVALID_BITMODE: 2,
readonly FT_BUFFER_SIZE: 3,
}
export type FT_ERROR = Enum<typeof FT_ERROR>;
/**
* Available functions for the FT232R CBUS pins. Controlled by FT232R EEPROM settings
*/
export const FT_CBUS_OPTIONS: {
/**
* FT232R CBUS EEPROM options - Tx Data Enable
*/
readonly FT_CBUS_TXDEN: 0x00,
/**
* FT232R CBUS EEPROM options - Power On
*/
readonly FT_CBUS_PWRON: 0x01,
/**
* FT232R CBUS EEPROM options - Rx LED
*/
readonly FT_CBUS_RXLED: 0x02,
/**
* FT232R CBUS EEPROM options - Tx LED
*/
readonly FT_CBUS_TXLED: 0x03,
/**
* FT232R CBUS EEPROM options - Tx and Rx LED
*/
readonly FT_CBUS_TXRXLED: 0x04,
/**
* FT232R CBUS EEPROM options - Sleep
*/
readonly FT_CBUS_SLEEP: 0x05,
/**
* FT232R CBUS EEPROM options - 48MHz clock
*/
readonly FT_CBUS_CLK48: 0x06,
/**
* FT232R CBUS EEPROM options - 24MHz clock
*/
readonly FT_CBUS_CLK24: 0x07,
/**
* FT232R CBUS EEPROM options - 12MHz clock
*/
readonly FT_CBUS_CLK12: 0x08,
/**
* FT232R CBUS EEPROM options - 6MHz clock
*/
readonly FT_CBUS_CLK6: 0x09,
/**
* FT232R CBUS EEPROM options - IO mode
*/
readonly FT_CBUS_IOMODE: 0x0A,
/**
* FT232R CBUS EEPROM options - Bit-bang write strobe
*/
readonly FT_CBUS_BITBANG_WR: 0x0B,
/**
* FT232R CBUS EEPROM options - Bit-bang read strobe
*/
readonly FT_CBUS_BITBANG_RD: 0x0C
}
export type FT_CBUS_OPTIONS = Enum<typeof FT_CBUS_OPTIONS>;
/**
* Type that holds device information for GetDeviceInfoDetail method
*/
export type DeviceInfoNode = {
/**
* Indicates device state.
* Can be any combination of the following: FT_FLAGS.FT_FLAGS_OPENED, FT_FLAGS.FT_FLAGS_HISPEED
*/
readonly flags: FT_FLAGS;
/**
* Indicates the device type.
* Can be one of the following: FT_DEVICE_232R, FT_DEVICE_2232C, FT_DEVICE_BM, FT_DEVICE_AM,
* FT_DEVICE_100AX or FT_DEVICE_UNKNOWN
*/
readonly type: FT_DEVICE;
/**
* The Vendor ID and Product ID of the device
*/
readonly id: number;
/**
* The physical location identifier of the device
*/
readonly locId: number;
/**
* The device serial number
*/
readonly serialNumber: string;
/**
* The device description
*/
readonly description: string;
/**
* This value is not used externally and is provided for information only.
* If the device is not open, ftHandle is undefined
*/
readonly ftHandle?: object;
};
export type FtResult = {
/**
* Value from FTDI native call
*/
readonly ftStatus: FT_STATUS;
}
export type GetNumberOfDevicesResult = {
/**
* The number of FTDI devices available
*/
readonly devCount: number
} & FtResult;
export type GetDeviceListResult = {
readonly deviceList: DeviceInfoNode[];
} & FtResult;
export type GetDeviceInfoResult = {
/**
* Indicates the device type. Can be one of the following: FT_DEVICE_232R,
* FT_DEVICE_2232C, FT_DEVICE_BM, FT_DEVICE_AM, FT_DEVICE_100AX or FT_DEVICE_UNKNOWN
*/
readonly type: FT_DEVICE;
/**
* The device ID (Vendor ID and Product ID) of the current device
*/
readonly id: number;
/**
* The device serial number
*/
readonly serialNumber: string;
/**
* The device description
*/
readonly description: string;
} & FtResult;
export type GetQueueStatusResult = {
/**
* The number of bytes available to be read
*/
readonly rxQueue: number
} & FtResult;
export type GetStatusResult = {
/**
* The number of bytes waiting to be sent
*/
readonly txQueue: number;
/**
* The type of event that has occurred
*/
readonly eventStatus: number;
} & FtResult;
export type WriteResult = {
/**
* The number of bytes actually written to the device
*/
readonly numBytesWritten: number;
} & FtResult;
export type ReadResult = {
/**
* An array of bytes which was populated with the data read from the device
*/
readonly rxBuffer: Buffer;
/**
* The number of bytes actually read
*/
readonly numBytesRead: number;
} & FtResult;
export type ReadFT232HEEPROMResult = {
/**
* An FT232H_EEPROM_STRUCTURE which contains only the relevant information for an FT232H device
*/
readonly ee232h: FT232H_EEPROM_STRUCTURE;
} & FtResult;
export type ReadFT232REEPROMResult = {
/**
* An FT232R_EEPROM_STRUCTURE which contains only the relevant information for an FT232R and FT245R devices
*/
readonly ee232r: FT232R_EEPROM_STRUCTURE;
} & FtResult;
export type GetVIDPIDResult = {
/**
* Device Vendor ID (VID)
*/
readonly dwVID: number;
/**
* Device Product ID (PID)
*/
readonly dwPID: number;
} & FtResult;
export type ReadEEPROMLocationResult = {
/**
* The WORD value read from the EEPROM location specified in the Address paramter
*/
readonly value: number;
} & FtResult;
export type EEUserAreaSizeResult = {
/**
* The EEPROM user area size in bytes
*/
readonly uaSize: number;
} & FtResult;
export type EEReadUserAreaResult = {
/**
* An array of bytes which will be populated with the data read from the device EEPROM user area
*/
readonly uaBuffer: Buffer;
/**
* The number of bytes actually read from the EEPROM user area
*/
readonly numBytesRead: number;
} & FtResult;
export class FtException extends Error { }
/**
* Common EEPROM elements for all devices. Inherited to specific device type EEPROMs
*/
export class FT_EEPROM_DATA {
/**
* Vendor ID as supplied by the USB Implementers Forum. Default: 0x0403
*/
vendorId: number;
/**
* Product ID. Default: 0x6001
*/
productId: number;
/**
* Manufacturer name string. Default: 'FTDI'
*/
manufacturer: string;
/**
* Manufacturer name abbreviation to be used as a prefix for automatically
* generated serial numbers. Default: 'FT'
*/
manufacturerId: string;
/**
* Device description string. Default: 'USB-Serial Converter'
*/
description: string;
/**
* Device serial number string. Default: ''
*/
serialNumber: string;
/**
* Maximum power the device needs. Default: 0x0090
*/
maxPower: number;
/**
* Indicates if the device has its own power supply (self-powered) or
* gets power from the USB port (bus-powered). Default: false
*/
selfPowered: boolean;
/**
* Determines if the device can wake the host PC from
* suspend by toggling the RI line. Default: false
*/
remoteWakeup: boolean;
}
/**
* EEPROM structure specific to FT232H devices
*/
export class FT232H_EEPROM_STRUCTURE extends FT_EEPROM_DATA {
/**
* Determines if IOs are pulled down when the device is in suspend. Default: false
*/
pullDownEnable: boolean;
/**
* Determines if the serial number is enabled. Default: true
*/
serNumEnable: boolean;
/**
* Determines if AC pins have a slow slew rate. Default: false
*/
acSlowSlew: boolean;
/**
* Determines if the AC pins have a Schmitt input. Default: false
*/
acSchmittInput: boolean;
/**
* Determines the AC pins drive
* current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or
* FT_DRIVE_CURRENT_16MA. Default: FT_DRIVE_CURRENT.FT_DRIVE_CURRENT_4MA
*/
acDriveCurrent: FT_DRIVE_CURRENT;
/**
* Determines if AD pins have a slow slew rate. Default: false
*/
adSlowSlew: boolean;
/**
* Determines if the AD pins have a Schmitt input. Default: false
*/
adSchmittInput: boolean;
/**
* Determines the AD pins drive
* current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or
* FT_DRIVE_CURRENT_16MA. Default: FT_DRIVE_CURRENT.FT_DRIVE_CURRENT_4MA
*/
adDriveCurrent: FT_DRIVE_CURRENT;
/**
* Sets the function of the CBUS0 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5.
* Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus0: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS1 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15, FT_CBUS_CLK7_5.
* Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus1: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS2 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus2: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS3 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus3: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS4 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus4: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS5 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15,
* FT_CBUS_CLK7_5. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus5: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS6 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15,
* FT_CBUS_CLK7_5. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus6: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS7 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus7: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS8 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15,
* FT_CBUS_CLK7_5. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus8: FT_232H_CBUS_OPTIONS;
/**
* Sets the function of the CBUS9 pin for
* FT232H devices. Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED, FT_CBUS_PWREN,
* FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_IOMODE, FT_CBUS_TXDEN, FT_CBUS_CLK30, FT_CBUS_CLK15,
* FT_CBUS_CLK7_5. Default: FT_232H_CBUS_OPTIONS.FT_CBUS_TRISTATE
*/
cbus9: FT_232H_CBUS_OPTIONS;
/**
* Determines if the device is in FIFO mode. Default: false
*/
isFifo: boolean;
/**
* Determines if the device is in FIFO target mode. Default: false
*/
isFifoTar: boolean;
/**
* Determines if the device is in fast serial mode. Default: false
*/
isFastSer: boolean;
/**
* Determines if the device is in FT1248 mode. Default: false
*/
isFT1248: boolean;
/**
* Determines FT1248 mode clock polarity. Default: false
*/
ft1248Cpol: boolean;
/**
* Determines if data is ent MSB (0) or LSB (1) in FT1248 mode. Default: false
*/
ft1248Lsb: boolean;
/**
* Determines if FT1248 mode uses flow control. Default: false
*/
ft1248FlowControl: boolean;
/**
* Determines if the VCP driver is loaded. Default: true
*/
isVCP: boolean;
/**
* For self-powered designs, keeps the FT232H in low power state until ACBUS7 is high. Default: false
*/
powerSaveEnable: boolean;
}
/**
* EEPROM structure specific to FT232R and FT245R devices
*/
export class FT232R_EEPROM_STRUCTURE extends FT_EEPROM_DATA {
/**
* Disables the FT232R internal clock source.
* If the device has external oscillator enabled it must have an external oscillator fitted to function
*/
useExtOsc: boolean;
/**
* Enables high current IOs
*/
highDriveIOs: boolean;
/**
* Sets the endpoint size. This should always be set to 64
*/
endpointSize: number;
/**
* Determines if IOs are pulled down when the device is in suspend
*/
pullDownEnable: boolean;
/**
* Determines if the serial number is enabled
*/
serNumEnable: boolean;
/**
* Inverts the sense of the TXD line
*/
invertTXD: boolean;
/**
* Inverts the sense of the RXD line
*/
invertRXD: boolean;
/**
* Inverts the sense of the RTS line
*/
invertRTS: boolean;
/**
* Inverts the sense of the CTS line
*/
invertCTS: boolean;
/**
* Inverts the sense of the DTR line
*/
invertDTR: boolean;
/**
* Inverts the sense of the DSR line
*/
invertDSR: boolean;
/**
* Inverts the sense of the DCD line
*/
invertDCD: boolean;
/**
* Inverts the sense of the RI line
*/
invertRI: boolean;
/**
* Sets the function of the CBUS0 pin for FT232R devices.
* Valid values are FT_CBUS_TXDEN, FT_CBUS_PWRON , FT_CBUS_RXLED, FT_CBUS_TXLED,
* FT_CBUS_TXRXLED, FT_CBUS_SLEEP, FT_CBUS_CLK48, FT_CBUS_CLK24, FT_CBUS_CLK12,
* FT_CBUS_CLK6, FT_CBUS_IOMODE, FT_CBUS_BITBANG_WR, FT_CBUS_BITBANG_RD
*/
cbus0: number;
/**
* Sets the function of the CBUS1 pin for FT232R devices.
* Valid values are FT_CBUS_TXDEN, FT_CBUS_PWRON , FT_CBUS_RXLED, FT_CBUS_TXLED,
* FT_CBUS_TXRXLED, FT_CBUS_SLEEP, FT_CBUS_CLK48, FT_CBUS_CLK24, FT_CBUS_CLK12,
* FT_CBUS_CLK6, FT_CBUS_IOMODE, FT_CBUS_BITBANG_WR, FT_CBUS_BITBANG_RD
*/
cbus1: number;
/**
* Sets the function of the CBUS2 pin for FT232R devices.
* Valid values are FT_CBUS_TXDEN, FT_CBUS_PWRON , FT_CBUS_RXLED, FT_CBUS_TXLED,
* FT_CBUS_TXRXLED, FT_CBUS_SLEEP, FT_CBUS_CLK48, FT_CBUS_CLK24, FT_CBUS_CLK12,
* FT_CBUS_CLK6, FT_CBUS_IOMODE, FT_CBUS_BITBANG_WR, FT_CBUS_BITBANG_RD
*/
cbus2: number;
/**
* Sets the function of the CBUS3 pin for FT232R devices.
* Valid values are FT_CBUS_TXDEN, FT_CBUS_PWRON , FT_CBUS_RXLED, FT_CBUS_TXLED,
* FT_CBUS_TXRXLED, FT_CBUS_SLEEP, FT_CBUS_CLK48, FT_CBUS_CLK24, FT_CBUS_CLK12,
* FT_CBUS_CLK6, FT_CBUS_IOMODE, FT_CBUS_BITBANG_WR, FT_CBUS_BITBANG_RD
*/
cbus3: number;
/**
* Sets the function of the CBUS4 pin for FT232R devices.
* Valid values are FT_CBUS_TXDEN, FT_CBUS_PWRON , FT_CBUS_RXLED, FT_CBUS_TXLED,
* FT_CBUS_TXRXLED, FT_CBUS_SLEEP, FT_CBUS_CLK48, FT_CBUS_CLK24, FT_CBUS_CLK12,
* FT_CBUS_CLK6
*/
cbus4: number;
/**
* Determines if the VCP driver is loaded
*/
rIsD2XX: boolean;
}
export class FTDI {
/**
* Synchronously gets the number of FTDI devices available
*/
static getNumberOfDevicesSync(): GetNumberOfDevicesResult;
/**
* Asynchronously gets the number of FTDI devices available
*/
static getNumberOfDevices(): Promise<GetNumberOfDevicesResult>;
/**
* Synchronously gets information on all of the FTDI devices available
*/
static getDeviceListSync(): GetDeviceListResult;
/**
* Asynchronously gets information on all of the FTDI devices available
*/
static getDeviceList(): Promise<GetDeviceListResult>;
/**
* Synchronously opens the FTDI device with the specified index.
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param index Index of the device to open,
* note that this cannot be guaranteed to open a specific device
*/
openByIndexSync(index: number): FT_STATUS;
/**
* Asynchronously opens the FTDI device with the specified index.
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param index Index of the device to open,
* note that this cannot be guaranteed to open a specific device
*/
openByIndex(index: number): Promise<FT_STATUS>;
/**
* Synchronously opens the FTDI device with the specified serial number
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param serialNumber Serial number of the device to open
*/
openBySerialNumberSync(serialNumber: string): FT_STATUS;
/**
* Asynchronously opens the FTDI device with the specified serial number
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param serialNumber Serial number of the device to open
*/
openBySerialNumber(serialNumber: string): Promise<FT_STATUS>;
/**
* Synchronously opens the FTDI device with the specified description
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param description Description of the device to open
*/
openByDescriptionSync(description: string): FT_STATUS;
/**
* Asynchronously opens the FTDI device with the specified description
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param description Description of the device to open
*/
openByDescription(description: string): Promise<FT_STATUS>;
/**
* Synchronously opens the FTDI device at the specified physical location
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param location Location of the device to open
*/
openByLocationSync(location: number): FT_STATUS;
/**
* Asynchronously opens the FTDI device at the specified physical location
* Initialises the device to 8 data bits, 1 stop bit, no parity, no flow control and 9600 Baud
* @param location Location of the device to open
*/
openByLocation(location: number): Promise<FT_STATUS>;
/**
* Synchronously closes the handle to an open FTDI device
*/
closeSync(): FT_STATUS;
/**
* Asynchronously closes the handle to an open FTDI device
*/
close(): Promise<FT_STATUS>;
/**
* Synchronously gets device information for an open device
*/
getDeviceInfoSync(): GetDeviceInfoResult;
/**
* Asynchronously gets device information for an open device
*/
getDeviceInfo(): Promise<GetDeviceInfoResult>;
/**
* Synchronously sets the data bits, stop bits and parity for the device
* @param wordLength The number of data bits for UART data. Valid values are FT_DATA_BITS.FT_DATA_7 or
* FT_DATA_BITS.FT_BITS_8
* @param stopBits The number of stop bits for UART data.
* Valid values are FT_STOP_BITS.FT_STOP_BITS_1 or FT_STOP_BITS.FT_STOP_BITS_2
* @param parity The parity of the UART data. Valid values are FT_PARITY.FT_PARITY_NONE,
* FT_PARITY.FT_PARITY_ODD, FT_PARITY.FT_PARITY_EVEN, FT_PARITY.FT_PARITY_MARK or FT_PARITY.FT_PARITY_SPACE
*/
setDataCharacteristicsSync(wordLength: FT_DATA_BITS, stopBits: FT_STOP_BITS, parity: FT_PARITY): FT_STATUS;
/**
* Asynchronously sets the data bits, stop bits and parity for the device
* @param wordLength The number of data bits for UART data. Valid values are FT_DATA_BITS.FT_DATA_7 or
* FT_DATA_BITS.FT_BITS_8
* @param stopBits The number of stop bits for UART data.
* Valid values are FT_STOP_BITS.FT_STOP_BITS_1 or FT_STOP_BITS.FT_STOP_BITS_2
* @param parity The parity of the UART data. Valid values are FT_PARITY.FT_PARITY_NONE,
* FT_PARITY.FT_PARITY_ODD, FT_PARITY.FT_PARITY_EVEN, FT_PARITY.FT_PARITY_MARK or FT_PARITY.FT_PARITY_SPACE
*/
setDataCharacteristics(
wordLength: FT_DATA_BITS,
stopBits: FT_STOP_BITS,
parity: FT_PARITY): Promise<FT_STATUS>;
/**
* Synchronously sets the flow control type
* @param flowControl The type of flow control for the UART. Valid values are
* FT_FLOW_CONTROL.FT_FLOW_NONE, FT_FLOW_CONTROL.FT_FLOW_RTS_CTS, FT_FLOW_CONTROL.FT_FLOW_DTR_DSR or
* FT_FLOW_CONTROL.FT_FLOW_XON_XOFF
* @param xon The Xon character for Xon/Xoff flow control. Ignored if not using Xon/XOff flow contro
* @param xoff The Xoff character for Xon/Xoff flow control. Ignored if not using Xon/XOff flow control
*/
setFlowControlSync(flowControl: FT_FLOW_CONTROL, xon: number, xoff: number): FT_STATUS;
/**
* Asynchronously sets the flow control type
* @param flowControl The type of flow control for the UART. Valid values are
* FT_FLOW_CONTROL.FT_FLOW_NONE, FT_FLOW_CONTROL.FT_FLOW_RTS_CTS, FT_FLOW_CONTROL.FT_FLOW_DTR_DSR or
* FT_FLOW_CONTROL.FT_FLOW_XON_XOFF
* @param xon The Xon character for Xon/Xoff flow control. Ignored if not using Xon/XOff flow contro
* @param xoff The Xoff character for Xon/Xoff flow control. Ignored if not using Xon/XOff flow control