X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fdemo%2Fprotocol.h;h=82fb5d23553829b62604ffcf94e5d67fd602c529;hb=bde6a99b33fd520152c05183f5b80cff63d75675;hp=e2934980528e72a44930d725d2ba6fdaaaf26028;hpb=817e759ddc9a1c37b5cb044f8b2a99cb5465feb4;p=libsigrok.git diff --git a/src/hardware/demo/protocol.h b/src/hardware/demo/protocol.h index e2934980..82fb5d23 100644 --- a/src/hardware/demo/protocol.h +++ b/src/hardware/demo/protocol.h @@ -34,7 +34,8 @@ /* Size of the analog pattern space per channel. */ #define ANALOG_BUFSIZE 4096 /* This is a development feature: it starts a new frame every n samples. */ -#define SAMPLES_PER_FRAME 0 +#define SAMPLES_PER_FRAME 1000UL +#define DEFAULT_LIMIT_FRAMES 0 /* Logic patterns we can generate. */ enum logic_pattern_type { @@ -77,6 +78,9 @@ enum logic_pattern_type { * something that can get recognized. */ PATTERN_SQUID, + + /** Gray encoded data, like rotary encoder signals. */ + PATTERN_GRAYCODE, }; /* Analog patterns we can generate. */ @@ -91,6 +95,7 @@ struct dev_context { uint64_t cur_samplerate; uint64_t limit_samples; uint64_t limit_msec; + uint64_t limit_frames; uint64_t sent_samples; uint64_t sent_frame_samples; /* Number of samples that were sent for current frame. */ int64_t start_us; @@ -99,6 +104,7 @@ struct dev_context { /* Logic */ int32_t num_logic_channels; size_t logic_unitsize; + uint64_t all_logic_channels_mask; /* There is only ever one logic channel group, so its pattern goes here. */ enum logic_pattern_type logic_pattern; uint8_t logic_data[LOGIC_BUFSIZE]; @@ -111,6 +117,10 @@ struct dev_context { size_t enabled_analog_channels; size_t first_partial_logic_index; uint8_t first_partial_logic_mask; + /* Triggers */ + uint64_t capture_ratio; + gboolean trigger_fired; + struct soft_trigger_logic *stl; }; static const char *analog_pattern_str[] = {