X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=fc3c8d085b01cb794af3444372d80dc70f0102da;hb=fdcdfe53d8fa27e101f7d4b206f05a4f3513c306;hp=bd308472e0711ded76d2957aa9d8681b0662c32c;hpb=769561cbe9ff04e02502832cae676fc591716866;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index bd308472..fc3c8d08 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; @@ -745,7 +745,7 @@ struct drv_context { /*--- log.c -----------------------------------------------------------------*/ -#if defined(G_OS_WIN32) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +#if defined(_WIN32) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) /* * On MinGW, we need to specify the gnu_printf format flavor or GCC * will assume non-standard Microsoft printf syntax. @@ -782,8 +782,12 @@ enum { SR_PRIV struct sr_channel *sr_channel_new(struct sr_dev_inst *sdi, int index, int type, gboolean enabled, const char *name); +SR_PRIV void sr_channel_free(struct sr_channel *ch); +SR_PRIV void sr_channel_free_cb(void *p); SR_PRIV struct sr_channel *sr_next_enabled_channel(const struct sr_dev_inst *sdi, struct sr_channel *cur_channel); +SR_PRIV gboolean sr_channels_differ(struct sr_channel *ch1, struct sr_channel *ch2); +SR_PRIV gboolean sr_channel_lists_differ(GSList *l1, GSList *l2); /** Device instance data */ struct sr_dev_inst { @@ -904,14 +908,13 @@ 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); SR_PRIV struct sr_dev_inst *sr_session_prepare_sdi(const char *filename, struct sr_session **session); -SR_PRIV int sr_packet_copy(const struct sr_datafeed_packet *packet, - struct sr_datafeed_packet **copy); -SR_PRIV void sr_packet_free(struct sr_datafeed_packet *packet); /*--- session_file.c --------------------------------------------------------*/ @@ -963,6 +966,8 @@ SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data, const uint32_t scanopts[], size_t scansize, const uint32_t drvopts[], size_t drvsize, const uint32_t devopts[], size_t devsize); +extern SR_PRIV const uint32_t NO_OPTS[1]; + #define STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts) \ std_opts_config_list(key, data, sdi, cg, ARRAY_AND_SIZE(scanopts), \ ARRAY_AND_SIZE(drvopts), ARRAY_AND_SIZE(devopts)) @@ -1023,6 +1028,9 @@ SR_PRIV int sr_atof(const char *str, float *ret); SR_PRIV int sr_atod_ascii(const char *str, double *ret); SR_PRIV int sr_atof_ascii(const char *str, float *ret); +SR_PRIV GString *sr_hexdump_new(const uint8_t *data, const size_t len); +SR_PRIV void sr_hexdump_free(GString *s); + /*--- soft-trigger.c --------------------------------------------------------*/ struct soft_trigger_logic { @@ -1038,6 +1046,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); @@ -1445,6 +1454,49 @@ 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 ----------------------------------------------------*/ + +#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); + /*--- hardware/scale/kern.c -------------------------------------------------*/ struct kern_info {