Exemplo n.º 1
0
static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi)
{
	float floatval;
	struct dev_context *devc;
	struct sr_datafeed_packet packet;
	struct sr_datafeed_analog analog;

	devc = sdi->priv;

	analog.num_samples = 1;
	analog.mq = -1;

	if (brymen_parse(buf, &floatval, &analog, NULL) != SR_OK)
		return;
	analog.data = &floatval;

	analog.channels = sdi->channels;

	if (analog.mq != -1) {
		/* Got a measurement. */
		packet.type = SR_DF_ANALOG;
		packet.payload = &analog;
		sr_session_send(devc->cb_data, &packet);
		devc->num_samples++;
	}
}
Exemplo n.º 2
0
static void handle_packet(const uint8_t *buf, struct sr_dev_inst *sdi)
{
    float floatval;
    struct dev_context *devc;
    struct sr_datafeed_packet packet;
    struct sr_datafeed_analog analog;
    struct sr_analog_encoding encoding;
    struct sr_analog_meaning meaning;
    struct sr_analog_spec spec;

    devc = sdi->priv;

    sr_analog_init(&analog, &encoding, &meaning, &spec, 0);

    analog.num_samples = 1;
    analog.meaning->mq = 0;

    if (brymen_parse(buf, &floatval, &analog, NULL) != SR_OK)
        return;
    analog.data = &floatval;

    analog.meaning->channels = sdi->channels;

    if (analog.meaning->mq != 0) {
        /* Got a measurement. */
        packet.type = SR_DF_ANALOG;
        packet.payload = &analog;
        sr_session_send(sdi, &packet);
        sr_sw_limits_update_samples_read(&devc->sw_limits, 1);
    }
}