X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Frigol-ds1xx2%2Fprotocol.h;h=34d9e8adf42d57fa6599ce8686e03b4babc613c7;hb=1e1bfcd0fef7c397b3d8fc6cd244263e6828a5da;hp=f7020e0d1d7743bb487911e436cc8c50a0c25a62;hpb=fb6e5ba8c7da4cc16eda03e3ffd0a97780655442;p=libsigrok.git diff --git a/hardware/rigol-ds1xx2/protocol.h b/hardware/rigol-ds1xx2/protocol.h index f7020e0d..34d9e8ad 100644 --- a/hardware/rigol-ds1xx2/protocol.h +++ b/hardware/rigol-ds1xx2/protocol.h @@ -2,6 +2,7 @@ * This file is part of the libsigrok project. * * Copyright (C) 2012 Martin Ling + * Copyright (C) 2013 Bert Vermeulen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,43 +34,41 @@ #define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args) #define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args) -#define WAVEFORM_SIZE 600 +#define ANALOG_WAVEFORM_SIZE 600 +#define DIGITAL_WAVEFORM_SIZE 1210 /** Private, per-device-instance driver context. */ struct dev_context { - /** The current frame limit */ - uint64_t limit_frames; - - /** The current sampling limit (in number of samples). */ - uint64_t limit_samples; - - /** The current sampling limit (in ms). */ - uint64_t limit_msec; + /* Device features */ + gboolean has_digital; - /** Opaque pointer passed in by the frontend. */ + /* Acquisition settings */ + GSList *enabled_analog_probes; + GSList *enabled_digital_probes; + uint64_t limit_frames; void *cb_data; - /** The current number of already received frames. */ - uint64_t num_frames; - - /** The current number of already received samples. */ - uint64_t num_samples; - - /** Current scale setting. */ - float scale; - - /** Current offset setting. */ - float offset; - - /** Path to USBTMC character device file. */ + /* Device settings */ + gboolean analog_channels[2]; + gboolean digital_channels[16]; + float timebase; + float vdiv[2]; + float vert_offset[2]; + char *trigger_source; + float horiz_triggerpos; + char *trigger_slope; + char *coupling[2]; + + /* Operational state */ char *device; - - /** USBTMC character device file descriptor. */ int fd; + uint64_t num_frames; + uint64_t num_frame_bytes; + struct sr_probe *channel_frame; }; -SR_PRIV int rigol_ds1xx2_receive_data(int fd, int revents, void *cb_data); - -SR_PRIV int rigol_ds1xx2_send_data(int fd, const char *format, ...); +SR_PRIV int rigol_ds1xx2_receive(int fd, int revents, void *cb_data); +SR_PRIV int rigol_ds1xx2_send(struct dev_context *devc, const char *format, ...); +SR_PRIV int rigol_ds1xx2_get_dev_cfg(const struct sr_dev_inst *sdi); #endif