]> sigrok.org Git - libsigrok.git/blobdiff - src/libsigrok-internal.h
lcr/vc4080: introduce LCR packet parser for Voltcraft 4080 (and PeakTech 2165)
[libsigrok.git] / src / libsigrok-internal.h
index ea444823085e22211c30e602bdfbed96d3df46cd..a0f00b247c5feceb54e2230fcd69cb2f169bab1e 100644 (file)
@@ -758,6 +758,7 @@ struct sr_serial_dev_inst {
                SER_HID_CHIP_UNKNOWN,           /**!< place holder */
                SER_HID_CHIP_BTC_BU86X,         /**!< Brymen BU86x */
                SER_HID_CHIP_SIL_CP2110,        /**!< SiLabs CP2110 */
+               SER_HID_CHIP_VICTOR_DMM,        /**!< Victor 70/86 DMM cable */
                SER_HID_CHIP_WCH_CH9325,        /**!< WCH CH9325 */
                SER_HID_CHIP_LAST,              /**!< sentinel */
        } hid_chip;
@@ -1086,6 +1087,10 @@ SR_PRIV int std_double_tuple_idx_d0(const double d, const double a[][2], unsigne
 
 SR_PRIV int std_cg_idx(const struct sr_channel_group *cg, struct sr_channel_group *a[], unsigned int n);
 
+SR_PRIV int std_dummy_set_params(struct sr_serial_dev_inst *serial,
+       int baudrate, int bits, int parity, int stopbits,
+       int flowcontrol, int rts, int dtr);
+
 /*--- resource.c ------------------------------------------------------------*/
 
 SR_PRIV int64_t sr_file_get_size(FILE *file);
@@ -1231,7 +1236,6 @@ extern SR_PRIV struct ser_lib_functions *ser_lib_funcs_bt;
 struct vid_pid_item {
        uint16_t vid, pid;
 };
-#define VID_PID_TERM   ALL_ZERO
 
 struct ser_hid_chip_functions {
        const char *chipname;
@@ -1251,6 +1255,7 @@ struct ser_hid_chip_functions {
 extern SR_PRIV struct ser_hid_chip_functions *ser_hid_chip_funcs_bu86x;
 extern SR_PRIV struct ser_hid_chip_functions *ser_hid_chip_funcs_ch9325;
 extern SR_PRIV struct ser_hid_chip_functions *ser_hid_chip_funcs_cp2110;
+extern SR_PRIV struct ser_hid_chip_functions *ser_hid_chip_funcs_victor;
 SR_PRIV const char *ser_hid_chip_find_name_vid_pid(uint16_t vid, uint16_t pid);
 #endif
 #endif
@@ -1656,6 +1661,33 @@ SR_PRIV gboolean es51919_packet_valid(const uint8_t *pkt);
 SR_PRIV int es51919_packet_parse(const uint8_t *pkt, float *floatval,
        struct sr_datafeed_analog *analog, void *info);
 
+/*--- lcr/vc4080.c ----------------------------------------------------------*/
+
+/* Note: Also uses 'struct lcr_parse_info' from es51919 above. */
+
+#define VC4080_PACKET_SIZE     39
+#define VC4080_COMM_PARAM      "1200/8n1"
+#define VC4080_WITH_DQ_CHANS   0 /* Enable separate D/Q channels? */
+
+enum vc4080_display {
+       VC4080_DISPLAY_PRIMARY,
+       VC4080_DISPLAY_SECONDARY,
+#if VC4080_WITH_DQ_CHANS
+       VC4080_DISPLAY_D_VALUE,
+       VC4080_DISPLAY_Q_VALUE,
+#endif
+       VC4080_CHANNEL_COUNT,
+};
+
+extern SR_PRIV const char *vc4080_channel_formats[VC4080_CHANNEL_COUNT];
+
+SR_PRIV int vc4080_config_list(uint32_t key, GVariant **data,
+       const struct sr_dev_inst *sdi, const struct sr_channel_group *cg);
+SR_PRIV int vc4080_packet_request(struct sr_serial_dev_inst *serial);
+SR_PRIV gboolean vc4080_packet_valid(const uint8_t *pkt);
+SR_PRIV int vc4080_packet_parse(const uint8_t *pkt, float *floatval,
+       struct sr_datafeed_analog *analog, void *info);
+
 /*--- dmm/ut372.c -----------------------------------------------------------*/
 
 #define UT372_PACKET_SIZE 27
@@ -1731,10 +1763,8 @@ struct eev121gw_info {
 
 extern SR_PRIV const char *eev121gw_channel_formats[];
 SR_PRIV gboolean sr_eev121gw_packet_valid(const uint8_t *buf);
-SR_PRIV int sr_eev121gw_parse(const uint8_t *buf, float *floatval,
-                            struct sr_datafeed_analog *analog, void *info);
 SR_PRIV int sr_eev121gw_3displays_parse(const uint8_t *buf, float *floatval,
-                            struct sr_datafeed_analog *analog, void *info);
+               struct sr_datafeed_analog *analog, void *info);
 
 /*--- scale/kern.c ----------------------------------------------------------*/