sr: SR_DF_ANALOG type, and meta types for analog+logic

This commit is contained in:
Bert Vermeulen 2012-04-22 18:11:31 +02:00
parent 7e41e319d9
commit ee7489d234
2 changed files with 33 additions and 4 deletions

View File

@ -400,6 +400,7 @@ SR_API int sr_session_stop(void)
static void datafeed_dump(struct sr_datafeed_packet *packet) static void datafeed_dump(struct sr_datafeed_packet *packet)
{ {
struct sr_datafeed_logic *logic; struct sr_datafeed_logic *logic;
struct sr_datafeed_analog *analog;
switch (packet->type) { switch (packet->type) {
case SR_DF_HEADER: case SR_DF_HEADER:
@ -408,11 +409,22 @@ static void datafeed_dump(struct sr_datafeed_packet *packet)
case SR_DF_TRIGGER: case SR_DF_TRIGGER:
sr_dbg("bus: received SR_DF_TRIGGER"); sr_dbg("bus: received SR_DF_TRIGGER");
break; break;
case SR_DF_META_LOGIC:
sr_dbg("bus: received SR_DF_META_LOGIC");
break;
case SR_DF_LOGIC: case SR_DF_LOGIC:
logic = packet->payload; logic = packet->payload;
/* TODO: Check for logic != NULL. */ /* TODO: Check for logic != NULL. */
sr_dbg("bus: received SR_DF_LOGIC %" PRIu64 " bytes", logic->length); sr_dbg("bus: received SR_DF_LOGIC %" PRIu64 " bytes", logic->length);
break; 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: case SR_DF_END:
sr_dbg("bus: received SR_DF_END"); sr_dbg("bus: received SR_DF_END");
break; break;

View File

@ -150,7 +150,9 @@ enum {
SR_DF_END, SR_DF_END,
SR_DF_TRIGGER, SR_DF_TRIGGER,
SR_DF_LOGIC, SR_DF_LOGIC,
SR_DF_PD, SR_DF_META_LOGIC,
SR_DF_ANALOG,
SR_DF_META_ANALOG,
}; };
struct sr_datafeed_packet { struct sr_datafeed_packet {
@ -161,8 +163,11 @@ struct sr_datafeed_packet {
struct sr_datafeed_header { struct sr_datafeed_header {
int feed_version; int feed_version;
struct timeval starttime; struct timeval starttime;
};
struct sr_datafeed_meta_logic {
int num_probes;
uint64_t samplerate; uint64_t samplerate;
int num_logic_probes;
}; };
struct sr_datafeed_logic { struct sr_datafeed_logic {
@ -171,6 +176,15 @@ struct sr_datafeed_logic {
void *data; 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 {
struct sr_input_format *format; struct sr_input_format *format;
char *param; char *param;
@ -249,7 +263,8 @@ enum {
/** The device can act as logic analyzer. */ /** The device can act as logic analyzer. */
SR_HWCAP_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 --------------------------------------------------*/ /*--- Device types --------------------------------------------------*/
@ -275,6 +290,9 @@ enum {
/** The device supports Run Length Encoding. */ /** The device supports Run Length Encoding. */
SR_HWCAP_RLE, SR_HWCAP_RLE,
/** The device supports setting trigger slope. */
SR_HWCAP_TRIGGERSLOPE,
/*--- Special stuff -------------------------------------------------*/ /*--- Special stuff -------------------------------------------------*/
/* TODO: Better description. */ /* TODO: Better description. */
@ -310,7 +328,6 @@ enum {
*/ */
SR_HWCAP_CONTINUOUS, SR_HWCAP_CONTINUOUS,
/* TODO: SR_HWCAP_JUST_SAMPLE or similar. */
}; };
struct sr_hwcap_option { struct sr_hwcap_option {