]> sigrok.org Git - libsigrok.git/blobdiff - src/serial.c
output/csv: always generate text for analog/logic data packets
[libsigrok.git] / src / serial.c
index 106090b72927e230a6dd389f04a640fe312f94ab..7f1f1eeaa2651360194231cfc5793fd4ad40141f 100644 (file)
@@ -122,10 +122,24 @@ SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags)
        if (ret != SR_OK)
                return ret;
 
-       if (serial->serialcomm)
-               return serial_set_paramstr(serial, serial->serialcomm);
-       else
-               return SR_OK;
+       if (serial->serialcomm) {
+               ret = serial_set_paramstr(serial, serial->serialcomm);
+               if (ret != SR_OK)
+                       return ret;
+       }
+
+       /*
+        * Flush potentially dangling RX data. Availability of the
+        * flush primitive depends on the transport/cable, absense
+        * is non-fatal.
+        */
+       ret = serial_flush(serial);
+       if (ret == SR_ERR_NA)
+               ret = SR_OK;
+       if (ret != SR_OK)
+               return ret;
+
+       return SR_OK;
 }
 
 /**