X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fdemo%2Fprotocol.h;h=9877f55367b2a84f16374bc52a64deba5c8cfee2;hb=dbc519f72038baff3bc026e45efa683e95880c19;hp=82fb5d23553829b62604ffcf94e5d67fd602c529;hpb=6fc51fb1eeddd7b024a672ef951e760b7b9f697f;p=libsigrok.git diff --git a/src/hardware/demo/protocol.h b/src/hardware/demo/protocol.h index 82fb5d23..9877f553 100644 --- a/src/hardware/demo/protocol.h +++ b/src/hardware/demo/protocol.h @@ -5,6 +5,7 @@ * Copyright (C) 2011 Olivier Fauchon * Copyright (C) 2012 Alexandru Gagniuc * Copyright (C) 2015 Bartosz Golaszewski + * Copyright (C) 2019 Frank Stettner * * 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 @@ -37,6 +38,11 @@ #define SAMPLES_PER_FRAME 1000UL #define DEFAULT_LIMIT_FRAMES 0 +#define DEFAULT_ANALOG_ENCODING_DIGITS 4 +#define DEFAULT_ANALOG_SPEC_DIGITS 4 +#define DEFAULT_ANALOG_AMPLITUDE 10 +#define DEFAULT_ANALOG_OFFSET 0. + /* Logic patterns we can generate. */ enum logic_pattern_type { /** @@ -91,6 +97,18 @@ enum analog_pattern_type { PATTERN_SAWTOOTH, }; +static const char *analog_pattern_str[] = { + "square", + "sine", + "triangle", + "sawtooth", +}; + +struct analog_pattern { + float data[ANALOG_BUFSIZE]; + unsigned int num_samples; +}; + struct dev_context { uint64_t cur_samplerate; uint64_t limit_samples; @@ -109,6 +127,7 @@ struct dev_context { enum logic_pattern_type logic_pattern; uint8_t logic_data[LOGIC_BUFSIZE]; /* Analog */ + struct analog_pattern *analog_patterns[ARRAY_SIZE(analog_pattern_str)]; int32_t num_analog_channels; GHashTable *ch_ag; gboolean avg; /* True if averaging is enabled */ @@ -123,19 +142,14 @@ struct dev_context { struct soft_trigger_logic *stl; }; -static const char *analog_pattern_str[] = { - "square", - "sine", - "triangle", - "sawtooth", -}; - struct analog_gen { struct sr_channel *ch; + enum sr_mq mq; + enum sr_mqflag mq_flags; + enum sr_unit unit; enum analog_pattern_type pattern; float amplitude; - float pattern_data[ANALOG_BUFSIZE]; - unsigned int num_samples; + float offset; struct sr_datafeed_analog packet; struct sr_analog_encoding encoding; struct sr_analog_meaning meaning; @@ -144,7 +158,7 @@ struct analog_gen { unsigned int num_avgs; /* Number of samples averaged */ }; -SR_PRIV void demo_generate_analog_pattern(struct analog_gen *ag, uint64_t sample_rate); +SR_PRIV void demo_generate_analog_pattern(struct dev_context *devc); SR_PRIV int demo_prepare_data(int fd, int revents, void *cb_data); #endif