X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=a6497c958ac86b725c753f8f182aec562d53bd9d;hb=8c3df6e5cd3d23bf01807e6296f7b7a9f8475902;hp=1d539c94677128cb29fa7b70d56915958973812e;hpb=271392d9690b941a764bebd1e657beef3d45ec6f;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index 1d539c94..a6497c95 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -35,6 +35,7 @@ #endif #include #include +#include struct zip; struct zip_stat; @@ -726,6 +727,12 @@ 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 *sp_data; }; @@ -1064,10 +1071,15 @@ enum { typedef gboolean (*packet_valid_callback)(const uint8_t *buf); +typedef GSList *(*sr_ser_list_append_t)(GSList *devs, const char *name, + const char *desc); +typedef GSList *(*sr_ser_find_append_t)(GSList *devs, const char *name); + SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags); SR_PRIV int serial_close(struct sr_serial_dev_inst *serial); SR_PRIV int serial_flush(struct sr_serial_dev_inst *serial); SR_PRIV int serial_drain(struct sr_serial_dev_inst *serial); +SR_PRIV size_t serial_has_receive_data(struct sr_serial_dev_inst *serial); SR_PRIV int serial_write_blocking(struct sr_serial_dev_inst *serial, const void *buf, size_t count, unsigned int timeout_ms); SR_PRIV int serial_write_nonblocking(struct sr_serial_dev_inst *serial, @@ -1096,6 +1108,32 @@ SR_PRIV int serial_source_remove(struct sr_session *session, struct sr_serial_dev_inst *serial); 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); + +SR_PRIV int sr_ser_libsp_open(struct sr_serial_dev_inst *serial, int flags); +SR_PRIV int sr_ser_libsp_close(struct sr_serial_dev_inst *serial); +SR_PRIV int sr_ser_libsp_flush(struct sr_serial_dev_inst *serial); +SR_PRIV int sr_ser_libsp_drain(struct sr_serial_dev_inst *serial); +SR_PRIV int sr_ser_libsp_write(struct sr_serial_dev_inst *serial, + const void *buf, size_t count, + int nonblocking, unsigned int timeout_ms); +SR_PRIV int sr_ser_libsp_read(struct sr_serial_dev_inst *serial, + void *buf, size_t count, + int nonblocking, unsigned int timeout_ms); +SR_PRIV int sr_ser_libsp_set_params(struct sr_serial_dev_inst *serial, + int baudrate, int bits, int parity, int stopbits, + int flowcontrol, int rts, int dtr); +SR_PRIV int sr_ser_libsp_source_add(struct sr_session *session, + struct sr_serial_dev_inst *serial, + int events, int timeout, + sr_receive_data_callback cb, void *cb_data); +SR_PRIV int sr_ser_libsp_source_remove(struct sr_session *session, + struct sr_serial_dev_inst *serial); +SR_PRIV GSList *sr_ser_libsp_list(GSList *list, sr_ser_list_append_t append); +SR_PRIV GSList *sr_ser_libsp_find_usb(GSList *list, sr_ser_find_append_t append, + uint16_t vendor_id, uint16_t product_id); +SR_PRIV int sr_ser_libsp_get_frame_format(struct sr_serial_dev_inst *serial, + int *baud, int *bits); +SR_PRIV size_t sr_ser_libsp_get_rx_avail(struct sr_serial_dev_inst *serial); #endif /*--- ezusb.c ---------------------------------------------------------------*/ @@ -1260,6 +1298,30 @@ 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); +/*--- 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