X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Frigol-ds1xx2%2Fprotocol.h;h=34d9e8adf42d57fa6599ce8686e03b4babc613c7;hb=250a78c7d5d049edd8c4f792f9eee56eae773a0b;hp=547dfc467854dbe74401152da0b66402e14c2eb3;hpb=e0b7d23ce884f03ecb693943c5bd822879c68d65;p=libsigrok.git diff --git a/hardware/rigol-ds1xx2/protocol.h b/hardware/rigol-ds1xx2/protocol.h index 547dfc46..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,40 +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; - - /** USBTMC character device file descriptor. */ + /* 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; 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