3 #ifndef SERIAL_IMPL_WINDOWS_H 4 #define SERIAL_IMPL_WINDOWS_H 12 #define UNICODE_WAS_UNDEFINED 16 #ifndef UNICODE_WAS_UNDEFINED 24 using std::invalid_argument;
29 explicit SerialImpl(
const string &port,
30 unsigned long baudrate,
36 virtual ~SerialImpl();
46 bool waitReadable(uint32_t timeout);
48 void waitByteTimes(
size_t count);
50 int waitfordata(
size_t data_count, uint32_t timeout,
size_t *returned_size);
52 size_t read(uint8_t *buf,
size_t size = 1);
54 size_t write(
const uint8_t *data,
size_t length);
62 void sendBreak(
int duration);
64 bool setBreak(
bool level);
66 bool setRTS(
bool level);
68 bool setDTR(
bool level);
80 uint32_t getByteTime();
82 void setPort(
const string &port);
84 string getPort()
const;
86 void setTimeout(Timeout &timeout);
88 Timeout getTimeout()
const;
90 bool setBaudrate(
unsigned long baudrate);
92 unsigned long getBaudrate()
const;
111 bool setDcb(DCB *dcb);
114 bool getDcb(DCB *dcb);
125 bool reconfigurePort();
129 DEFAULT_RX_BUFFER_SIZE = 2048,
130 DEFAULT_TX_BUFFER_SIZE = 128,
139 OVERLAPPED communicationOverlapped;
140 OVERLAPPED readCompletionOverlapped;
141 OVERLAPPED writeCompletionOverlapped;
142 DWORD originalEventMask;
143 DWORD triggeredEventMask;
145 COMMTIMEOUTS currentCommTimeouts;
146 COMMTIMEOUTS restoredCommTimeouts;
151 unsigned long baudrate_;
152 uint32_t byte_time_ns_;
167 #endif // SERIAL_IMPL_WINDOWS_H 169 #endif // if defined(_WIN32) parity_t
Definition: serial.h:26
bytesize_t
Definition: serial.h:16
size_t write(const uint8_t *data, size_t length)
Definition: unix_serial.cpp:957
stopbits_t
Definition: serial.h:37
Definition: unix_serial.h:27
flowcontrol_t
Definition: serial.h:46