#endif
#include <stdarg.h>
#include <stdio.h>
+#include <stdlib.h>
struct zip;
struct zip_stat;
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;
};
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,
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 ---------------------------------------------------------------*/
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