]> sigrok.org Git - libsigrok.git/commitdiff
sr: SR_DF_ANALOG type, and meta types for analog+logic
authorBert Vermeulen <redacted>
Sun, 22 Apr 2012 16:11:31 +0000 (18:11 +0200)
committerBert Vermeulen <redacted>
Wed, 30 May 2012 21:55:36 +0000 (23:55 +0200)
session.c
sigrok.h.in

index f1a8370bf48784641973a978ae5ba45a28f110bb..4bf96b8ccfe20f21f0ce486670e1aa5f0c1a625e 100644 (file)
--- 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;
index 7b3f122e72b765bb6541f3413dab4db9d1a41e3c..442136ec72d3cc50826db8f675d32b5d937d7d0c 100644 (file)
@@ -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 {