]> sigrok.org Git - libserialport.git/commitdiff
Add functions for setting individual port parameters.
authorMartin Ling <redacted>
Thu, 14 Nov 2013 22:01:11 +0000 (22:01 +0000)
committerMartin Ling <redacted>
Fri, 15 Nov 2013 11:43:07 +0000 (11:43 +0000)
libserialport.h.in
serialport.c

index e410dad69db4bc8407ae8eabdf7afc6072fdb5e0..f58530cb6567415221e73f585b3d6d4faed5ab3b 100644 (file)
@@ -143,6 +143,15 @@ int sp_flush(struct sp_port *port);
 int sp_write(struct sp_port *port, const void *buf, size_t count);
 int sp_read(struct sp_port *port, void *buf, size_t count);
 int sp_set_config(struct sp_port *port, struct sp_port_config *config);
+int sp_set_baudrate(struct sp_port *port, int baudrate);
+int sp_set_bits(struct sp_port *port, int bits);
+int sp_set_parity(struct sp_port *port, int parity);
+int sp_set_stopbits(struct sp_port *port, int stopbits);
+int sp_set_rts(struct sp_port *port, int rts);
+int sp_set_cts(struct sp_port *port, int cts);
+int sp_set_dtr(struct sp_port *port, int dtr);
+int sp_set_dsr(struct sp_port *port, int dsr);
+int sp_set_xon_xoff(struct sp_port *port, int xon_xoff);
 int sp_last_error_code(void);
 char *sp_last_error_message(void);
 void sp_free_error_message(char *message);
index 418d48bfbe2d8596dd56d57b5337dd837cde2fc3..6a6e305bb2988ecc20d421b9a1f1b576f33dd2b4 100644 (file)
@@ -961,6 +961,24 @@ int sp_set_config(struct sp_port *port, struct sp_port_config *config)
        return SP_OK;
 }
 
+#define CREATE_SETTER(x) int sp_set_##x(struct sp_port *port, int x) { \
+       struct sp_port_data data; \
+       TRY(start_config(port, &data)); \
+       TRY(set_##x(&data, x)); \
+       TRY(apply_config(port, &data)); \
+       return SP_OK; \
+}
+
+CREATE_SETTER(baudrate)
+CREATE_SETTER(bits)
+CREATE_SETTER(parity)
+CREATE_SETTER(stopbits)
+CREATE_SETTER(rts)
+CREATE_SETTER(cts)
+CREATE_SETTER(dtr)
+CREATE_SETTER(dsr)
+CREATE_SETTER(xon_xoff)
+
 int sp_last_error_code(void)
 {
 #ifdef _WIN32