X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Flcr%2Fes51919.c;h=2dc5e648159aeddeb6fe73370da6e789a77f72e8;hb=b8fa29a1756eaa4a58b2556dc23dc8089447d549;hp=9030a4ba7d2c055285d406b113135eef1bd03919;hpb=53012da658ae94b245240c8a3e115723eede4c7d;p=libsigrok.git diff --git a/src/lcr/es51919.c b/src/lcr/es51919.c index 9030a4ba..2dc5e648 100644 --- a/src/lcr/es51919.c +++ b/src/lcr/es51919.c @@ -593,6 +593,7 @@ static void handle_packet(struct sr_dev_inst *sdi, const uint8_t *pkt) unsigned int val; float floatval; gboolean frame; + struct sr_channel *channel; devc = sdi->priv; @@ -620,10 +621,11 @@ static void handle_packet(struct sr_dev_inst *sdi, const uint8_t *pkt) analog.num_samples = 1; analog.data = &floatval; - analog.meaning->channels = g_slist_append(NULL, sdi->channels->data); + channel = sdi->channels->data; + analog.meaning->channels = g_slist_append(NULL, channel); parse_measurement(pkt, &floatval, &analog, 0); - if (analog.meaning->mq != 0) { + if (analog.meaning->mq != 0 && channel->enabled) { if (!frame) { packet.type = SR_DF_FRAME_BEGIN; sr_session_send(sdi, &packet); @@ -637,10 +639,12 @@ static void handle_packet(struct sr_dev_inst *sdi, const uint8_t *pkt) } g_slist_free(analog.meaning->channels); - analog.meaning->channels = g_slist_append(NULL, sdi->channels->next->data); + + channel = sdi->channels->next->data; + analog.meaning->channels = g_slist_append(NULL, channel); parse_measurement(pkt, &floatval, &analog, 1); - if (analog.meaning->mq != 0) { + if (analog.meaning->mq != 0 && channel->enabled) { if (!frame) { packet.type = SR_DF_FRAME_BEGIN; sr_session_send(sdi, &packet); @@ -726,7 +730,6 @@ SR_PRIV void es51919_serial_clean(void *priv) return; dev_buffer_destroy(devc->buf); - g_free(devc); } SR_PRIV struct sr_dev_inst *es51919_serial_scan(GSList *options,