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:
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;
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 {
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 {
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;
/** 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 --------------------------------------------------*/
/** The device supports Run Length Encoding. */
SR_HWCAP_RLE,
+ /** The device supports setting trigger slope. */
+ SR_HWCAP_TRIGGERSLOPE,
+
/*--- Special stuff -------------------------------------------------*/
/* TODO: Better description. */
*/
SR_HWCAP_CONTINUOUS,
- /* TODO: SR_HWCAP_JUST_SAMPLE or similar. */
};
struct sr_hwcap_option {