X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=812cf3ceca11811aebe7569c6e14439375a7febb;hb=639c6f61c32e508e2d8e2330a7f21cb15e29c294;hp=a567d14baccc0df9b3612ed0daa414d117e17b41;hpb=d8bc7ca3e6853bd4df33d9ff9405652abec8b67e;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index a567d14b..812cf3ce 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -26,15 +26,15 @@ #ifndef LIBSIGROK_LIBSIGROK_INTERNAL_H #define LIBSIGROK_LIBSIGROK_INTERNAL_H -#include -#include #include -#ifdef HAVE_LIBUSB_1_0 -#include -#endif #ifdef HAVE_LIBSERIALPORT #include #endif +#ifdef HAVE_LIBUSB_1_0 +#include +#endif +#include +#include 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); @@ -1044,6 +1052,7 @@ struct soft_trigger_logic { int pre_trigger_fill; }; +SR_PRIV int logic_channel_unitsize(GSList *channels); SR_PRIV struct soft_trigger_logic *soft_trigger_logic_new( const struct sr_dev_inst *sdi, struct sr_trigger *trigger, int pre_trigger_samples); @@ -1051,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 { @@ -1095,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); @@ -1105,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); @@ -1173,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 @@ -1219,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 @@ -1237,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 @@ -1257,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 @@ -1272,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 @@ -1288,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 @@ -1299,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 @@ -1323,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 @@ -1334,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 @@ -1345,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 @@ -1360,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 @@ -1381,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 @@ -1396,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, @@ -1414,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 @@ -1426,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 @@ -1451,7 +1484,50 @@ 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); -/*--- hardware/scale/kern.c -------------------------------------------------*/ +/*--- dmm/eev121gw.c --------------------------------------------------------*/ + +#define EEV121GW_PACKET_SIZE 19 + +enum eev121gw_display { + EEV121GW_DISPLAY_MAIN, + EEV121GW_DISPLAY_SUB, + EEV121GW_DISPLAY_BAR, + EEV121GW_DISPLAY_COUNT, +}; + +struct eev121gw_info { + /* Selected channel. */ + size_t ch_idx; + /* + * Measured value, number and sign/overflow flags, scale factor + * and significant digits. + */ + uint32_t uint_value; + gboolean is_ofl, is_neg; + int factor, digits; + /* Currently active mode (meter's function). */ + gboolean is_ac, is_dc, is_voltage, is_current, is_power, is_gain; + gboolean is_resistance, is_capacitance, is_diode, is_temperature; + gboolean is_continuity, is_frequency, is_period, is_duty_cycle; + /* Quantities associated with mode/function. */ + gboolean is_ampere, is_volt, is_volt_ampere, is_dbm; + gboolean is_ohm, is_farad, is_celsius, is_fahrenheit; + gboolean is_hertz, is_seconds, is_percent, is_loop_current; + gboolean is_unitless, is_logic; + /* Other indicators. */ + gboolean is_min, is_max, is_avg, is_1ms_peak, is_rel, is_hold; + gboolean is_low_pass, is_mem, is_bt, is_auto_range, is_test; + gboolean is_auto_poweroff, is_low_batt; +}; + +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); + +/*--- scale/kern.c ----------------------------------------------------------*/ struct kern_info { gboolean is_gram, is_carat, is_ounce, is_pound, is_troy_ounce;