RS232_LIB const char * rs232_to_string(struct rs232_port_t *p) { static char str[RS232_STRLEN+1]; DBG("p=%p\n", (void *)p); if (p == NULL) return NULL; snprintf(str, RS232_STRLEN, "device: %s, baud: %s, data bits: %s," " parity: %s, stop bits: %s," " flow control: %s", p->dev, rs232_strbaud(p->baud), rs232_strdata(p->data), rs232_strparity(p->parity), rs232_strstop(p->stop), rs232_strflow(p->flow)); return str; }
RS232_LIB unsigned int rs232_set_data(struct rs232_port_t *p, enum rs232_data_e data) { DCB pdcb; struct rs232_windows_t *wx = p->pt; DBG("p=%p p->pt=%p data=%d (%s data bits)\n", (void *)p, p->pt, data, rs232_strdata(data)); if (!rs232_port_open(p)) return RS232_ERR_PORT_CLOSED; GET_PORT_STATE(wx->fd, &pdcb); switch (data) { case RS232_DATA_5: pdcb.ByteSize = 5; break; case RS232_DATA_6: pdcb.ByteSize = 6; break; case RS232_DATA_7: pdcb.ByteSize = 7; break; case RS232_DATA_8: pdcb.ByteSize = 8; break; default: return RS232_ERR_UNKNOWN; } SET_PORT_STATE(wx->fd, &pdcb); p->data = data; return RS232_ERR_NOERROR; }