serial: Initial code for setting DTR/RTS.
Currently disabled until option parsing is in place.
This commit is contained in:
parent
6b7ace4832
commit
700dcd5caa
|
@ -32,6 +32,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include "libsigrok.h"
|
#include "libsigrok.h"
|
||||||
#include "libsigrok-internal.h"
|
#include "libsigrok-internal.h"
|
||||||
|
@ -285,7 +286,6 @@ SR_PRIV int serial_read(struct sr_serial_dev_inst *serial, void *buf,
|
||||||
SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
|
SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
|
||||||
int bits, int parity, int stopbits, int flowcontrol)
|
int bits, int parity, int stopbits, int flowcontrol)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!serial) {
|
if (!serial) {
|
||||||
sr_dbg("Invalid serial port.");
|
sr_dbg("Invalid serial port.");
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
|
@ -341,6 +341,7 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
|
||||||
#else
|
#else
|
||||||
struct termios term;
|
struct termios term;
|
||||||
speed_t baud;
|
speed_t baud;
|
||||||
|
int ret, controlbits;
|
||||||
|
|
||||||
if (tcgetattr(serial->fd, &term) < 0) {
|
if (tcgetattr(serial->fd, &term) < 0) {
|
||||||
sr_err("tcgetattr() error on port %s (fd %d): %s.",
|
sr_err("tcgetattr() error on port %s (fd %d): %s.",
|
||||||
|
@ -504,6 +505,25 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
|
||||||
sr_err("tcsetattr() error: %s.", strerror(errno));
|
sr_err("tcsetattr() error: %s.", strerror(errno));
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* TODO: Make configurable via driver options. */
|
||||||
|
|
||||||
|
sr_spew("Configuring RTS to 1/high.");
|
||||||
|
controlbits = TIOCM_RTS;
|
||||||
|
if ((ret = ioctl(serial->fd, TIOCMBIC, &controlbits)) < 0) {
|
||||||
|
sr_err("Error setting RTS to 1: %s.", strerror(errno));
|
||||||
|
return SR_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
sr_spew("Configuring DTR to 0/low.");
|
||||||
|
controlbits = TIOCM_DTR;
|
||||||
|
if ((ret = ioctl(serial->fd, TIOCMBIS, &controlbits)) < 0) {
|
||||||
|
sr_err("Error setting DTR to 0: %s.", strerror(errno));
|
||||||
|
return SR_ERR;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
Loading…
Reference in New Issue