X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=hardware%2Flink-mso19%2Fprotocol.h;h=bf9488ddd1e7cc0d2cb57562315ee45e6a3473b0;hb=1e1bfcd0fef7c397b3d8fc6cd244263e6828a5da;hp=61c811006489dcb72792c572465350dbce64e4b5;hpb=00b44ccb8b2482c2c4c7e832ed11f7460f289e15;p=libsigrok.git diff --git a/hardware/link-mso19/protocol.h b/hardware/link-mso19/protocol.h index 61c81100..bf9488dd 100644 --- a/hardware/link-mso19/protocol.h +++ b/hardware/link-mso19/protocol.h @@ -25,6 +25,7 @@ #include #include #include +#include #include "libsigrok.h" #include "libsigrok-internal.h" @@ -40,9 +41,9 @@ #define USB_VENDOR "3195" #define USB_PRODUCT "f190" -#define NUM_PROBES 8 +#define NUM_PROBES (1 + 8) #define NUM_TRIGGER_STAGES 4 -#define TRIGGER_TYPES "01" //the first r/f is used for the whole group +#define TRIGGER_TYPE "01" //the first r/f is used for the whole group #define SERIALCOMM "460800/8n1/flow=2" #define SERIALCONN "/dev/ttyUSB0" #define CLOCK_RATE SR_MHZ(100) @@ -122,7 +123,7 @@ struct dev_context { double dso_trigger_voltage; uint16_t dso_trigger_width; struct mso_prototrig protocol_trigger; - void *session_dev_id; + void *cb_data; uint16_t buffer_n; char buffer[4096]; }; @@ -133,14 +134,14 @@ SR_PRIV int mso_check_trigger(struct sr_serial_dev_inst *serial, uint8_t * info); SR_PRIV int mso_reset_adc(struct sr_dev_inst *sdi); SR_PRIV int mso_clkrate_out(struct sr_serial_dev_inst *serial, uint16_t val); -SR_PRIV int mso_configure_rate(struct sr_dev_inst *sdi, uint32_t rate); +SR_PRIV int mso_configure_rate(const struct sr_dev_inst *sdi, uint32_t rate); SR_PRIV int mso_receive_data(int fd, int revents, void *cb_data); -SR_PRIV int mso_configure_trigger(struct sr_dev_inst *sdi); -SR_PRIV int mso_configure_threshold_level(struct sr_dev_inst *sdi); +SR_PRIV int mso_configure_trigger(const struct sr_dev_inst *sdi); +SR_PRIV int mso_configure_threshold_level(const struct sr_dev_inst *sdi); SR_PRIV int mso_read_buffer(struct sr_dev_inst *sdi); -SR_PRIV int mso_arm(struct sr_dev_inst *sdi); +SR_PRIV int mso_arm(const struct sr_dev_inst *sdi); SR_PRIV int mso_force_capture(struct sr_dev_inst *sdi); -SR_PRIV int mso_dac_out(struct sr_dev_inst *sdi, uint16_t val); +SR_PRIV int mso_dac_out(const struct sr_dev_inst *sdi, uint16_t val); SR_PRIV inline uint16_t mso_calc_raw_from_mv(struct dev_context *devc); SR_PRIV int mso_reset_fsm(struct sr_dev_inst *sdi); SR_PRIV int mso_toggle_led(struct sr_dev_inst *sdi, int state); @@ -148,14 +149,6 @@ SR_PRIV int mso_toggle_led(struct sr_dev_inst *sdi, int state); SR_PRIV int mso_configure_probes(const struct sr_dev_inst *sdi); SR_PRIV void stop_acquisition(const struct sr_dev_inst *sdi); -/* serial protocol */ -#define mso_trans(a, v) \ - (((v) & 0x3f) | (((v) & 0xc0) << 6) | (((a) & 0xf) << 8) | \ - ((~(v) & 0x20) << 1) | ((~(v) & 0x80) << 7)) - -SR_PRIV static const char mso_head[] = { 0x40, 0x4c, 0x44, 0x53, 0x7e }; -SR_PRIV static const char mso_foot[] = { 0x7e }; - /* bank agnostic registers */ #define REG_CTL2 15 @@ -191,7 +184,7 @@ struct rate_map { uint8_t slowmode; }; -static struct rate_map rate_map[] = { +static const struct rate_map rate_map[] = { { SR_MHZ(200), 0x0205, 0 }, { SR_MHZ(100), 0x0105, 0 }, { SR_MHZ(50), 0x0005, 0 }, @@ -215,7 +208,7 @@ static struct rate_map rate_map[] = { }; /* FIXME: Determine corresponding voltages */ -static uint16_t la_threshold_map[] = { +static const uint16_t la_threshold_map[] = { 0x8600, 0x8770, 0x88ff,