From: Bert Vermeulen Date: Sun, 22 Apr 2012 16:11:31 +0000 (+0200) Subject: sr: SR_DF_ANALOG type, and meta types for analog+logic X-Git-Tag: dsupstream~954 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=ee7489d23449a3f5a81777fbdb3309dfe22bcecd;p=libsigrok.git sr: SR_DF_ANALOG type, and meta types for analog+logic --- diff --git a/session.c b/session.c index f1a8370b..4bf96b8c 100644 --- a/session.c +++ b/session.c @@ -400,6 +400,7 @@ SR_API int sr_session_stop(void) static void datafeed_dump(struct sr_datafeed_packet *packet) { struct sr_datafeed_logic *logic; + struct sr_datafeed_analog *analog; switch (packet->type) { case SR_DF_HEADER: @@ -408,11 +409,22 @@ static void datafeed_dump(struct sr_datafeed_packet *packet) case SR_DF_TRIGGER: sr_dbg("bus: received SR_DF_TRIGGER"); break; + case SR_DF_META_LOGIC: + sr_dbg("bus: received SR_DF_META_LOGIC"); + break; case SR_DF_LOGIC: logic = packet->payload; /* TODO: Check for logic != NULL. */ sr_dbg("bus: received SR_DF_LOGIC %" PRIu64 " bytes", logic->length); break; + case SR_DF_META_ANALOG: + sr_dbg("bus: received SR_DF_META_LOGIC"); + break; + case SR_DF_ANALOG: + analog = packet->payload; + /* TODO: Check for analog != NULL. */ + sr_dbg("bus: received SR_DF_ANALOG %d samples", analog->num_samples); + break; case SR_DF_END: sr_dbg("bus: received SR_DF_END"); break; diff --git a/sigrok.h.in b/sigrok.h.in index 7b3f122e..442136ec 100644 --- a/sigrok.h.in +++ b/sigrok.h.in @@ -150,7 +150,9 @@ enum { SR_DF_END, SR_DF_TRIGGER, SR_DF_LOGIC, - SR_DF_PD, + SR_DF_META_LOGIC, + SR_DF_ANALOG, + SR_DF_META_ANALOG, }; struct sr_datafeed_packet { @@ -161,8 +163,11 @@ struct sr_datafeed_packet { struct sr_datafeed_header { int feed_version; struct timeval starttime; +}; + +struct sr_datafeed_meta_logic { + int num_probes; uint64_t samplerate; - int num_logic_probes; }; struct sr_datafeed_logic { @@ -171,6 +176,15 @@ struct sr_datafeed_logic { void *data; }; +struct sr_datafeed_meta_analog { + int num_probes; +}; + +struct sr_datafeed_analog { + int num_samples; + float *data; +}; + struct sr_input { struct sr_input_format *format; char *param; @@ -249,7 +263,8 @@ enum { /** The device can act as logic analyzer. */ SR_HWCAP_LOGIC_ANALYZER, - /* TODO: SR_HWCAP_SCOPE, SW_HWCAP_PATTERN_GENERATOR, etc.? */ + /** The device can act as an oscilloscope. */ + SR_HWCAP_OSCILLOSCOPE, /*--- Device types --------------------------------------------------*/ @@ -275,6 +290,9 @@ enum { /** The device supports Run Length Encoding. */ SR_HWCAP_RLE, + /** The device supports setting trigger slope. */ + SR_HWCAP_TRIGGERSLOPE, + /*--- Special stuff -------------------------------------------------*/ /* TODO: Better description. */ @@ -310,7 +328,6 @@ enum { */ SR_HWCAP_CONTINUOUS, - /* TODO: SR_HWCAP_JUST_SAMPLE or similar. */ }; struct sr_hwcap_option {