4 #include "usbdev_serial.h"
10 #include "stream_test.h"
11 #include "usbdev_utils.h"
13 USBDevSerial::~USBDevSerial() {
Stop(); }
24 bool USBDevSerial::OpenPorts() {
25 in_ = port_open(inPort_.c_str(),
false);
29 out_ = port_open(outPort_.c_str(),
true);
36 printf(
"S%u: input '%s' (%d) output '%s' (%d)\n",
id_, inPort_.c_str(), in_,
37 outPort_.c_str(), out_);
72 bool USBDevSerial::ServiceOUT() {
79 std::cout <<
PrefixID() <<
"Trying to send " << to_send <<
"byte(s)"
83 nsent = send_bytes(out_, &
buf_.data[
buf_.rd_idx], to_send);
92 std::cout <<
PrefixID() << (
send_ ?
"Sent" :
"Dropped") << nsent
93 <<
" byte(s)" << std::endl;
103 bool USBDevSerial::ServiceIN() {
108 uint32_t to_fetch = space_bytes;
116 nrecvd = recv_bytes(in_, dp, to_fetch);
125 uint32_t dropped =
SigDetect(&sig_, dp, (uint32_t)nrecvd);
131 dropped +=
sizeof(usbdev_stream_sig_t);
136 nrecvd = ((uint32_t)nrecvd > dropped) ? ((uint32_t)nrecvd - dropped) : 0;