]> sigrok.org Git - libsigrok.git/blobdiff - src/libsigrok-internal.h
serial: determine timeout from most recent set_params() values
[libsigrok.git] / src / libsigrok-internal.h
index b50cd57b90df8669e2cc1de1f909269987aca41e..812cf3ceca11811aebe7569c6e14439375a7febb 100644 (file)
 #ifndef LIBSIGROK_LIBSIGROK_INTERNAL_H
 #define LIBSIGROK_LIBSIGROK_INTERNAL_H
 
-#include <stdarg.h>
-#include <stdio.h>
 #include <glib.h>
-#ifdef HAVE_LIBUSB_1_0
-#include <libusb.h>
-#endif
 #ifdef HAVE_LIBSERIALPORT
 #include <libserialport.h>
 #endif
+#ifdef HAVE_LIBUSB_1_0
+#include <libusb.h>
+#endif
+#include <stdarg.h>
+#include <stdio.h>
 
 struct zip;
 struct zip_stat;
@@ -726,8 +726,14 @@ struct sr_serial_dev_inst {
        char *port;
        /** Comm params for serial_set_paramstr(). */
        char *serialcomm;
+       struct {
+               int bit_rate;
+               int data_bits;
+               int parity_bits;
+               int stop_bits;
+       } comm_params;
        /** libserialport port handle */
-       struct sp_port *data;
+       struct sp_port *sp_data;
 };
 #endif
 
@@ -908,6 +914,8 @@ SR_PRIV int sr_session_source_remove_pollfd(struct sr_session *session,
 SR_PRIV int sr_session_source_remove_channel(struct sr_session *session,
                GIOChannel *channel);
 
+SR_PRIV int sr_session_send_meta(const struct sr_dev_inst *sdi,
+               uint32_t key, GVariant *var);
 SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi,
                const struct sr_datafeed_packet *packet);
 SR_PRIV int sr_sessionfile_check(const char *filename);
@@ -1052,7 +1060,7 @@ SR_PRIV void soft_trigger_logic_free(struct soft_trigger_logic *st);
 SR_PRIV int soft_trigger_logic_check(struct soft_trigger_logic *st, uint8_t *buf,
                int len, int *pre_trigger_samples);
 
-/*--- hardware/serial.c -----------------------------------------------------*/
+/*--- serial.c --------------------------------------------------------------*/
 
 #ifdef HAVE_LIBSERIALPORT
 enum {
@@ -1096,7 +1104,7 @@ SR_PRIV GSList *sr_serial_find_usb(uint16_t vendor_id, uint16_t product_id);
 SR_PRIV int serial_timeout(struct sr_serial_dev_inst *port, int num_bytes);
 #endif
 
-/*--- hardware/ezusb.c ------------------------------------------------------*/
+/*--- ezusb.c ---------------------------------------------------------------*/
 
 #ifdef HAVE_LIBUSB_1_0
 SR_PRIV int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
@@ -1106,7 +1114,7 @@ SR_PRIV int ezusb_upload_firmware(struct sr_context *ctx, libusb_device *dev,
                                  int configuration, const char *name);
 #endif
 
-/*--- hardware/usb.c --------------------------------------------------------*/
+/*--- usb.c -----------------------------------------------------------------*/
 
 #ifdef HAVE_LIBUSB_1_0
 SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn);
@@ -1174,7 +1182,7 @@ SR_PRIV int sr_modbus_write_multiple_registers(struct sr_modbus_dev_inst*modbus,
 SR_PRIV int sr_modbus_close(struct sr_modbus_dev_inst *modbus);
 SR_PRIV void sr_modbus_free(struct sr_modbus_dev_inst *modbus);
 
-/*--- hardware/dmm/es519xx.c ------------------------------------------------*/
+/*--- dmm/es519xx.c ---------------------------------------------------------*/
 
 /**
  * All 11-byte es519xx chips repeat each block twice for each conversion cycle
@@ -1220,7 +1228,7 @@ SR_PRIV gboolean sr_es519xx_19200_14b_sel_lpf_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_es519xx_19200_14b_sel_lpf_parse(const uint8_t *buf,
                float *floatval, struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/fs9922.c -------------------------------------------------*/
+/*--- dmm/fs9922.c ----------------------------------------------------------*/
 
 #define FS9922_PACKET_SIZE 14
 
@@ -1238,7 +1246,7 @@ SR_PRIV int sr_fs9922_parse(const uint8_t *buf, float *floatval,
                            struct sr_datafeed_analog *analog, void *info);
 SR_PRIV void sr_fs9922_z1_diode(struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/fs9721.c -------------------------------------------------*/
+/*--- dmm/fs9721.c ----------------------------------------------------------*/
 
 #define FS9721_PACKET_SIZE 14
 
@@ -1258,7 +1266,31 @@ SR_PRIV void sr_fs9721_10_temp_c(struct sr_datafeed_analog *analog, void *info);
 SR_PRIV void sr_fs9721_01_10_temp_f_c(struct sr_datafeed_analog *analog, void *info);
 SR_PRIV void sr_fs9721_max_c_min(struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/ms8250d.c ------------------------------------------------*/
+/*--- dmm/ms2115b.c ---------------------------------------------------------*/
+
+#define MS2115B_PACKET_SIZE 9
+
+enum ms2115b_display {
+       MS2115B_DISPLAY_MAIN,
+       MS2115B_DISPLAY_SUB,
+       MS2115B_DISPLAY_COUNT,
+};
+
+struct ms2115b_info {
+       /* Selected channel. */
+       size_t ch_idx;
+       gboolean is_ac, is_dc, is_auto;
+       gboolean is_diode, is_beep, is_farad;
+       gboolean is_ohm, is_ampere, is_volt, is_hz;
+       gboolean is_duty_cycle, is_percent;
+};
+
+extern SR_PRIV const char *ms2115b_channel_formats[];
+SR_PRIV gboolean sr_ms2115b_packet_valid(const uint8_t *buf);
+SR_PRIV int sr_ms2115b_parse(const uint8_t *buf, float *floatval,
+       struct sr_datafeed_analog *analog, void *info);
+
+/*--- dmm/ms8250d.c ---------------------------------------------------------*/
 
 #define MS8250D_PACKET_SIZE 18
 
@@ -1273,7 +1305,7 @@ SR_PRIV gboolean sr_ms8250d_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_ms8250d_parse(const uint8_t *buf, float *floatval,
                             struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/dtm0660.c ------------------------------------------------*/
+/*--- dmm/dtm0660.c ---------------------------------------------------------*/
 
 #define DTM0660_PACKET_SIZE 15
 
@@ -1289,7 +1321,7 @@ SR_PRIV gboolean sr_dtm0660_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_dtm0660_parse(const uint8_t *buf, float *floatval,
                        struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/m2110.c --------------------------------------------------*/
+/*--- dmm/m2110.c -----------------------------------------------------------*/
 
 #define BBCGM_M2110_PACKET_SIZE 9
 
@@ -1300,7 +1332,7 @@ SR_PRIV gboolean sr_m2110_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_m2110_parse(const uint8_t *buf, float *floatval,
                             struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/metex14.c ------------------------------------------------*/
+/*--- dmm/metex14.c ---------------------------------------------------------*/
 
 #define METEX14_PACKET_SIZE 14
 
@@ -1324,7 +1356,7 @@ SR_PRIV gboolean sr_metex14_4packets_valid(const uint8_t *buf);
 SR_PRIV int sr_metex14_4packets_parse(const uint8_t *buf, float *floatval,
                             struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/rs9lcd.c -------------------------------------------------*/
+/*--- dmm/rs9lcd.c ----------------------------------------------------------*/
 
 #define RS9LCD_PACKET_SIZE 9
 
@@ -1335,7 +1367,7 @@ SR_PRIV gboolean sr_rs9lcd_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_rs9lcd_parse(const uint8_t *buf, float *floatval,
                            struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/bm25x.c --------------------------------------------------*/
+/*--- dmm/bm25x.c -----------------------------------------------------------*/
 
 #define BRYMEN_BM25X_PACKET_SIZE 15
 
@@ -1346,7 +1378,7 @@ SR_PRIV gboolean sr_brymen_bm25x_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_brymen_bm25x_parse(const uint8_t *buf, float *floatval,
                             struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/ut71x.c --------------------------------------------------*/
+/*--- dmm/ut71x.c -----------------------------------------------------------*/
 
 #define UT71X_PACKET_SIZE 11
 
@@ -1361,7 +1393,7 @@ SR_PRIV gboolean sr_ut71x_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_ut71x_parse(const uint8_t *buf, float *floatval,
                struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/vc870.c --------------------------------------------------*/
+/*--- dmm/vc870.c -----------------------------------------------------------*/
 
 #define VC870_PACKET_SIZE 23
 
@@ -1382,7 +1414,7 @@ SR_PRIV gboolean sr_vc870_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_vc870_parse(const uint8_t *buf, float *floatval,
                struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/vc96.c ---------------------------------------------------*/
+/*--- dmm/vc96.c ------------------------------------------------------------*/
 
 #define VC96_PACKET_SIZE 13
 
@@ -1397,7 +1429,7 @@ SR_PRIV gboolean sr_vc96_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_vc96_parse(const uint8_t *buf, float *floatval,
                struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/lcr/es51919.c ------------------------------------------------*/
+/*--- lcr/es51919.c ---------------------------------------------------------*/
 
 SR_PRIV void es51919_serial_clean(void *priv);
 SR_PRIV struct sr_dev_inst *es51919_serial_scan(GSList *options,
@@ -1415,7 +1447,7 @@ SR_PRIV int es51919_serial_config_list(uint32_t key, GVariant **data,
 SR_PRIV int es51919_serial_acquisition_start(const struct sr_dev_inst *sdi);
 SR_PRIV int es51919_serial_acquisition_stop(struct sr_dev_inst *sdi);
 
-/*--- hardware/dmm/ut372.c --------------------------------------------------*/
+/*--- dmm/ut372.c -----------------------------------------------------------*/
 
 #define UT372_PACKET_SIZE 27
 
@@ -1427,7 +1459,7 @@ SR_PRIV gboolean sr_ut372_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_ut372_parse(const uint8_t *buf, float *floatval,
                struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/dmm/asycii.c -------------------------------------------------*/
+/*--- dmm/asycii.c ----------------------------------------------------------*/
 
 #define ASYCII_PACKET_SIZE 16
 
@@ -1452,7 +1484,7 @@ SR_PRIV gboolean sr_asycii_packet_valid(const uint8_t *buf);
 SR_PRIV int sr_asycii_parse(const uint8_t *buf, float *floatval,
                            struct sr_datafeed_analog *analog, void *info);
 
-/*--- src/dmm/eev121gw.c ----------------------------------------------------*/
+/*--- dmm/eev121gw.c --------------------------------------------------------*/
 
 #define EEV121GW_PACKET_SIZE 19
 
@@ -1495,7 +1527,7 @@ SR_PRIV int sr_eev121gw_parse(const uint8_t *buf, float *floatval,
 SR_PRIV int sr_eev121gw_3displays_parse(const uint8_t *buf, float *floatval,
                             struct sr_datafeed_analog *analog, void *info);
 
-/*--- hardware/scale/kern.c -------------------------------------------------*/
+/*--- scale/kern.c ----------------------------------------------------------*/
 
 struct kern_info {
        gboolean is_gram, is_carat, is_ounce, is_pound, is_troy_ounce;