X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fdemo%2Fprotocol.h;h=9877f55367b2a84f16374bc52a64deba5c8cfee2;hb=a90ffc373005b8ee506e5b69bcb9451233295d1b;hp=de0ac7a86078d125f1925c801638249bdff37a7c;hpb=94f364ec11c938934f68cde067ee590218177140;p=libsigrok.git diff --git a/src/hardware/demo/protocol.h b/src/hardware/demo/protocol.h index de0ac7a8..9877f553 100644 --- a/src/hardware/demo/protocol.h +++ b/src/hardware/demo/protocol.h @@ -38,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 { /** @@ -92,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; @@ -110,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 */ @@ -124,13 +142,6 @@ 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; @@ -138,8 +149,7 @@ struct analog_gen { 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; @@ -148,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