X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=a937d046ff8854399bae7111b471ca8741acf797;hb=62d7945f8059ccbf56dfa2e5eb60671dd5bc959b;hp=b127d0ef14efd6481f6100296b64e2eb8076a7e8;hpb=3cd4b381744eb88fd4ba32565bd408c33b431629;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index b127d0ef..a937d046 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -632,6 +632,8 @@ 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 struct sr_channel *sr_next_enabled_channel(const struct sr_dev_inst *sdi, + struct sr_channel *cur_channel); /** Device instance data */ struct sr_dev_inst { @@ -716,7 +718,7 @@ struct sr_session { GSList *datafeed_callbacks; GSList *transforms; struct sr_trigger *trigger; - GTimeVal starttime; + gboolean running; unsigned int num_sources; @@ -729,7 +731,6 @@ struct sr_session { */ struct source *sources; GPollFD *pollfds; - int source_timeout; /* * These are our synchronization primitives for stopping the session in @@ -742,6 +743,9 @@ struct sr_session { gboolean abort_session; }; +SR_PRIV int sr_session_source_add_internal(struct sr_session *session, + GPollFD *pollfd, int timeout, sr_receive_data_callback cb, + void *cb_data, gintptr poll_object, gboolean is_usb); SR_PRIV int sr_session_send(const struct sr_dev_inst *sdi, const struct sr_datafeed_packet *packet); SR_PRIV int sr_session_stop_sync(struct sr_session *session); @@ -866,109 +870,13 @@ SR_PRIV int ezusb_upload_firmware(libusb_device *dev, int configuration, #ifdef HAVE_LIBUSB_1_0 SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn); SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb); +SR_PRIV void sr_usb_close(struct sr_usb_dev_inst *usb); SR_PRIV int usb_source_add(struct sr_session *session, struct sr_context *ctx, int timeout, sr_receive_data_callback cb, void *cb_data); SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx); SR_PRIV int usb_get_port_path(libusb_device *dev, char *path, int path_len); #endif -/*--- hardware/scpi.c -------------------------------------------------------*/ - -#define SCPI_CMD_IDN "*IDN?" -#define SCPI_CMD_OPC "*OPC?" - -enum { - SCPI_CMD_SET_TRIGGER_SOURCE, - SCPI_CMD_SET_TIMEBASE, - SCPI_CMD_SET_VERTICAL_DIV, - SCPI_CMD_SET_TRIGGER_SLOPE, - SCPI_CMD_SET_COUPLING, - SCPI_CMD_SET_HORIZ_TRIGGERPOS, - SCPI_CMD_GET_ANALOG_CHAN_STATE, - SCPI_CMD_GET_DIG_CHAN_STATE, - SCPI_CMD_GET_TIMEBASE, - SCPI_CMD_GET_VERTICAL_DIV, - SCPI_CMD_GET_VERTICAL_OFFSET, - SCPI_CMD_GET_TRIGGER_SOURCE, - SCPI_CMD_GET_HORIZ_TRIGGERPOS, - SCPI_CMD_GET_TRIGGER_SLOPE, - SCPI_CMD_GET_COUPLING, - SCPI_CMD_SET_ANALOG_CHAN_STATE, - SCPI_CMD_SET_DIG_CHAN_STATE, - SCPI_CMD_GET_DIG_POD_STATE, - SCPI_CMD_SET_DIG_POD_STATE, - SCPI_CMD_GET_ANALOG_DATA, - SCPI_CMD_GET_DIG_DATA, - SCPI_CMD_GET_SAMPLE_RATE, - SCPI_CMD_GET_SAMPLE_RATE_LIVE, -}; - -struct sr_scpi_hw_info { - char *manufacturer; - char *model; - char *serial_number; - char *firmware_version; -}; - -struct sr_scpi_dev_inst { - const char *name; - const char *prefix; - int priv_size; - GSList *(*scan)(struct drv_context *drvc); - int (*dev_inst_new)(void *priv, struct drv_context *drvc, - const char *resource, char **params, const char *serialcomm); - int (*open)(void *priv); - int (*source_add)(struct sr_session *session, void *priv, int events, - int timeout, sr_receive_data_callback cb, void *cb_data); - int (*source_remove)(struct sr_session *session, void *priv); - int (*send)(void *priv, const char *command); - int (*read_begin)(void *priv); - int (*read_data)(void *priv, char *buf, int maxlen); - int (*read_complete)(void *priv); - int (*close)(void *priv); - void (*free)(void *priv); - unsigned int read_timeout_ms; - void *priv; -}; - -SR_PRIV GSList *sr_scpi_scan(struct drv_context *drvc, GSList *options, - struct sr_dev_inst *(*probe_device)(struct sr_scpi_dev_inst *scpi)); -SR_PRIV struct sr_scpi_dev_inst *scpi_dev_inst_new(struct drv_context *drvc, - const char *resource, const char *serialcomm); -SR_PRIV int sr_scpi_open(struct sr_scpi_dev_inst *scpi); -SR_PRIV int sr_scpi_source_add(struct sr_session *session, - struct sr_scpi_dev_inst *scpi, int events, int timeout, - sr_receive_data_callback cb, void *cb_data); -SR_PRIV int sr_scpi_source_remove(struct sr_session *session, - struct sr_scpi_dev_inst *scpi); -SR_PRIV int sr_scpi_send(struct sr_scpi_dev_inst *scpi, - const char *format, ...); -SR_PRIV int sr_scpi_send_variadic(struct sr_scpi_dev_inst *scpi, - const char *format, va_list args); -SR_PRIV int sr_scpi_read_begin(struct sr_scpi_dev_inst *scpi); -SR_PRIV int sr_scpi_read_data(struct sr_scpi_dev_inst *scpi, char *buf, int maxlen); -SR_PRIV int sr_scpi_read_complete(struct sr_scpi_dev_inst *scpi); -SR_PRIV int sr_scpi_close(struct sr_scpi_dev_inst *scpi); -SR_PRIV void sr_scpi_free(struct sr_scpi_dev_inst *scpi); - -SR_PRIV int sr_scpi_get_string(struct sr_scpi_dev_inst *scpi, - const char *command, char **scpi_response); -SR_PRIV int sr_scpi_get_bool(struct sr_scpi_dev_inst *scpi, - const char *command, gboolean *scpi_response); -SR_PRIV int sr_scpi_get_int(struct sr_scpi_dev_inst *scpi, - const char *command, int *scpi_response); -SR_PRIV int sr_scpi_get_float(struct sr_scpi_dev_inst *scpi, - const char *command, float *scpi_response); -SR_PRIV int sr_scpi_get_double(struct sr_scpi_dev_inst *scpi, - const char *command, double *scpi_response); -SR_PRIV int sr_scpi_get_opc(struct sr_scpi_dev_inst *scpi); -SR_PRIV int sr_scpi_get_floatv(struct sr_scpi_dev_inst *scpi, - const char *command, GArray **scpi_response); -SR_PRIV int sr_scpi_get_uint8v(struct sr_scpi_dev_inst *scpi, - const char *command, GArray **scpi_response); -SR_PRIV int sr_scpi_get_hw_id(struct sr_scpi_dev_inst *scpi, - struct sr_scpi_hw_info **scpi_response); -SR_PRIV void sr_scpi_hw_info_free(struct sr_scpi_hw_info *hw_info); /*--- modbus/modbus.c -------------------------------------------------------*/ @@ -1223,4 +1131,17 @@ 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/scale/kern.c -------------------------------------------------*/ + +struct kern_info { + gboolean is_gram, is_carat, is_ounce, is_pound, is_troy_ounce; + gboolean is_pennyweight, is_grain, is_tael, is_momme, is_tola; + gboolean is_percentage, is_piece, is_unstable, is_stable, is_error; + int buflen; +}; + +SR_PRIV gboolean sr_kern_packet_valid(const uint8_t *buf); +SR_PRIV int sr_kern_parse(const uint8_t *buf, float *floatval, + struct sr_datafeed_analog *analog, void *info); + #endif