11 /* Forward declarations*/
15 /*! \brief FTDI device context.
16 * Represents single FTDI device context.
26 /*! \brief Direction flags for flush().
34 /*! \brief Modem control flags.
42 /* Constructor, Destructor */
48 const std::string& vendor();
49 const std::string& description();
50 const std::string& serial();
52 /* Device manipulators */
54 int open(struct usb_device *dev = 0);
55 int open(int vendor, int product, const std::string& description = std::string(), const std::string& serial = std::string());
58 int flush(int mask = Input|Output);
59 int set_interface(enum ftdi_interface interface);
60 void set_usb_device(struct usb_dev_handle *dev);
62 /* Line manipulators */
63 int set_baud_rate(int baudrate);
64 int set_line_property(enum ftdi_bits_type bits, enum ftdi_stopbits_type sbit, enum ftdi_parity_type parity);
65 int set_line_property(enum ftdi_bits_type bits, enum ftdi_stopbits_type sbit, enum ftdi_parity_type parity, enum ftdi_break_type break_type);
68 int read(unsigned char *buf, int size);
69 int write(unsigned char *buf, int size);
70 int set_read_chunk_size(unsigned int chunksize);
71 int set_write_chunk_size(unsigned int chunksize);
72 int read_chunk_size();
73 int write_chunk_size();
77 int writeAsync(unsigned char *buf, int size);
78 void asyncComplete(int wait_for_more);
82 int set_event_char(unsigned char eventch, unsigned char enable);
83 int set_error_char(unsigned char errorch, unsigned char enable);
84 int set_flow_control(int flowctrl);
85 int set_modem_control(int mask = Dtr|Rts);
86 int set_latency(unsigned char latency);
87 int set_dtr(bool state);
88 int set_rts(bool state);
90 unsigned short poll_modem_status();
94 int set_bitmode(unsigned char bitmask, unsigned char mode);
95 int bitbang_enable(unsigned char bitmask);
96 int bitbang_disable();
97 int read_pins(unsigned char *pins);
100 char* error_string();
106 struct ftdi_context* context();
107 void set_context(struct ftdi_context* context);
108 void set_usb_device(struct usb_device *dev);
114 /* Disable copy constructor */
115 Context(const Context &) {}
116 Context& operator=(const Context &) {}
119 /*! \brief Device EEPROM.
124 Eeprom(Context* parent);
127 void init_defaults();
128 void set_size(int size);
129 int size(unsigned char *eeprom, int maxsize);
130 int chip_id(unsigned int *chipid);
131 int build(unsigned char *output);
132 int read(unsigned char *eeprom);
133 int write(unsigned char *eeprom);
141 typedef std::list<Context*> ListBase;
143 /*! \brief Device list.
145 class List : public ListBase
148 List(struct ftdi_device_list* devlist = 0);
151 static List* find_all(int vendor, int product);