X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flibsigrok-internal.h;h=7499e15f547d1e131c88d9487ea2f0015ac16ff6;hb=d4915da66285a2ad324432b7fc28add3bbc70191;hp=eba74e7dd016d9c1c2899959b16d7f38d855dbd1;hpb=1e7468a8858768806a066f52d47d167a3721a8e4;p=libsigrok.git diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index eba74e7d..7499e15f 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -1572,6 +1572,7 @@ struct sr_serial_dev_inst { SER_BT_CONN_BLE122, /**!< BLE, BLE122 module, indications */ SER_BT_CONN_NRF51, /**!< BLE, Nordic nRF51, notifications */ SER_BT_CONN_CC254x, /**!< BLE, TI CC254x, notifications */ + SER_BT_CONN_AC6328, /**!< BLE, JL AC6328B, notifications */ SER_BT_CONN_MAX, /**!< sentinel */ } bt_conn_type; char *bt_addr_local; @@ -1688,6 +1689,7 @@ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi); SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, uint8_t address, struct libusb_device_handle *hdl); SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb); +SR_PRIV void sr_usb_dev_inst_free_cb(gpointer p); /* Glib wrapper. */ #endif #ifdef HAVE_SERIAL_COMM @@ -2125,6 +2127,8 @@ SR_PRIV int ezusb_upload_firmware(struct sr_context *ctx, libusb_device *dev, /*--- usb.c -----------------------------------------------------------------*/ +SR_PRIV int sr_usb_split_conn(const char *conn, + uint16_t *vid, uint16_t *pid, uint8_t *bus, uint8_t *addr); #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); @@ -2160,52 +2164,23 @@ enum binary_value_type { /** Binary value specification */ struct binary_value_spec { - /** Offset into binary blob */ - size_t offset; - /** Data type to decode */ - enum binary_value_type type; - /** Scale factor to get native units */ - float scale; -}; - -/** Binary channel definition */ -struct binary_analog_channel { - /** Channel name */ - const char *name; - /** Binary value in data stream */ - struct binary_value_spec spec; - /** Significant digits */ - int digits; - /** Measured quantity */ - enum sr_mq mq; - /** Measured unit */ - enum sr_unit unit; + size_t offset; /**!< Offset into binary image */ + enum binary_value_type type; /**!< Data type to decode */ + float scale; /**!< Scale factor to native units */ }; /** - * Read extract a value from a binary blob. + * Read extract a value from a binary data image. * - * @param out Pointer to output buffer. - * @param spec Binary value specification - * @param data Pointer to binary blob - * @param length Size of binary blob - * @return SR_OK on success, SR_ERR_* error code on failure. - */ -SR_PRIV int bv_get_value(float *out, const struct binary_value_spec *spec, const void *data, size_t length); - -/** - * Send an analog channel packet based on a binary analog channel - * specification. + * @param[out] out Pointer to output buffer (conversion result) + * @param[in] spec Binary value specification + * @param[in] data Pointer to binary input data + * @param[in] length Size of binary input data * - * @param sdi Device instance - * @param ch Sigrok channel - * @param spec Channel specification - * @param data Pointer to binary blob - * @param length Size of binary blob * @return SR_OK on success, SR_ERR_* error code on failure. */ -SR_PRIV int bv_send_analog_channel(const struct sr_dev_inst *sdi, struct sr_channel *ch, - const struct binary_analog_channel *spec, const void *data, size_t length); +SR_PRIV int bv_get_value(float *out, const struct binary_value_spec *spec, + const void *data, size_t length); /*--- crc.c -----------------------------------------------------------------*/ @@ -2777,6 +2752,10 @@ SR_API void feed_queue_logic_free(struct feed_queue_logic *q); SR_API struct feed_queue_analog *feed_queue_analog_alloc( const struct sr_dev_inst *sdi, size_t sample_count, int digits, struct sr_channel *ch); +SR_API int feed_queue_analog_mq_unit(struct feed_queue_analog *q, + enum sr_mq mq, enum sr_mqflag mq_flag, enum sr_unit unit); +SR_API int feed_queue_analog_scale_offset(struct feed_queue_analog *q, + const struct sr_rational *scale, const struct sr_rational *offset); SR_API int feed_queue_analog_submit(struct feed_queue_analog *q, float data, size_t count); SR_API int feed_queue_analog_flush(struct feed_queue_analog *q);