X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhung-chang-dso-2100%2Fprotocol.h;h=5636699a87b4126be9c2aeaa7f397bdf5a8e3b26;hb=c04ca4da177bbd718be4de11e40a4ef5cbf3df7a;hp=4a24aebc68edc1a9fe75e72942a1870143350d8d;hpb=05ac4a9828fc73bee0d420e96104d9cf3c5b658a;p=libsigrok.git diff --git a/src/hardware/hung-chang-dso-2100/protocol.h b/src/hardware/hung-chang-dso-2100/protocol.h index 4a24aebc..5636699a 100644 --- a/src/hardware/hung-chang-dso-2100/protocol.h +++ b/src/hardware/hung-chang-dso-2100/protocol.h @@ -26,19 +26,44 @@ #include "libsigrok-internal.h" #define LOG_PREFIX "hung-chang-dso-2100" +#define MAX_RETRIES 4 +#define NUM_CHANNELS 2 /** Private, per-device-instance driver context. */ struct dev_context { - /* Model-specific information */ - /* Acquisition settings */ + GSList *enabled_channel; + uint8_t channel; + uint8_t rate; + uint8_t cctl[2]; + uint8_t edge; + uint8_t tlevel; + uint8_t pos[2]; + uint8_t offset[2]; + uint8_t gain[2]; /* Operational state */ + uint64_t frame_limit; + uint64_t frame; + uint64_t probe[2]; + uint8_t step; + uint8_t last_step; + uint8_t retries; + gboolean adc2; /* Temporary state across callbacks */ - + void *cb_data; + float *samples; + float factor; + gboolean state_known; }; -SR_PRIV int hung_chang_dso_2100_receive_data(int fd, int revents, void *cb_data); +SR_PRIV void hung_chang_dso_2100_reset_port(struct parport *port); +SR_PRIV gboolean hung_chang_dso_2100_check_id(struct parport *port); +SR_PRIV void hung_chang_dso_2100_write_mbox(struct parport *port, uint8_t val); +SR_PRIV uint8_t hung_chang_dso_2100_read_mbox(struct parport *port, float timeout); +SR_PRIV int hung_chang_dso_2100_move_to(const struct sr_dev_inst *sdi, uint8_t target); +SR_PRIV int hung_chang_dso_2100_poll(int fd, int revents, void *cb_data); +SR_PRIV int hung_chang_dso_2100_dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data); #endif