X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Frigol-ds1xx2%2Fprotocol.h;h=34d9e8adf42d57fa6599ce8686e03b4babc613c7;hb=1e1bfcd0fef7c397b3d8fc6cd244263e6828a5da;hp=0a5f14c309201624094fc819c32829fd5295ff85;hpb=f4816ac6cc2403558276ada44d3e14eb4a9b3d15;p=libsigrok.git diff --git a/hardware/rigol-ds1xx2/protocol.h b/hardware/rigol-ds1xx2/protocol.h index 0a5f14c3..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,21 +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 ANALOG_WAVEFORM_SIZE 600 +#define DIGITAL_WAVEFORM_SIZE 1210 + /** Private, per-device-instance driver context. */ struct dev_context { - /** 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 samples. */ - uint64_t num_samples; + /* 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_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