X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fteleinfo%2Fprotocol.c;h=21b695bd5be5041d72a2c24a2a1699624725e308;hb=803db07a1af036a5da65581ddbac23b7f84a4388;hp=a610173d1aaaa20421d2716bf44b3e7eaf8f42cd;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/hardware/teleinfo/protocol.c b/src/hardware/teleinfo/protocol.c index a610173d..21b695bd 100644 --- a/src/hardware/teleinfo/protocol.c +++ b/src/hardware/teleinfo/protocol.c @@ -17,6 +17,7 @@ * along with this program. If not, see . */ +#include #include #include #include @@ -59,7 +60,7 @@ static void teleinfo_send_value(struct sr_dev_inst *sdi, const char *channel_nam { struct dev_context *devc; struct sr_datafeed_packet packet; - struct sr_datafeed_analog analog; + struct sr_datafeed_analog_old analog; struct sr_channel *ch; devc = sdi->priv; @@ -68,22 +69,21 @@ static void teleinfo_send_value(struct sr_dev_inst *sdi, const char *channel_nam if (!ch || !ch->enabled) return; - memset(&analog, 0, sizeof(struct sr_datafeed_analog)); + memset(&analog, 0, sizeof(struct sr_datafeed_analog_old)); analog.channels = g_slist_append(analog.channels, ch); analog.num_samples = 1; analog.mq = mq; analog.unit = unit; analog.data = &value; - packet.type = SR_DF_ANALOG; + packet.type = SR_DF_ANALOG_OLD; packet.payload = &analog; sr_session_send(devc->session_cb_data, &packet); g_slist_free(analog.channels); } -static void teleinfo_handle_mesurement(struct sr_dev_inst *sdi, - const char *label, const char *data, - char *optarif) +static void teleinfo_handle_measurement(struct sr_dev_inst *sdi, + const char *label, const char *data, char *optarif) { struct dev_context *devc; int v = atoi(data); @@ -135,7 +135,7 @@ static gboolean teleinfo_parse_group(struct sr_dev_inst *sdi, return FALSE; if (!teleinfo_control_check(label, data, control)) return FALSE; - teleinfo_handle_mesurement(sdi, label, data, optarif); + teleinfo_handle_measurement(sdi, label, data, optarif); return TRUE; } @@ -196,7 +196,7 @@ SR_PRIV int teleinfo_receive_data(int fd, int revents, void *cb_data) /* Try to get as much data as the buffer can hold. */ len = TELEINFO_BUF_SIZE - devc->buf_len; - len = serial_read(serial, devc->buf + devc->buf_len, len); + len = serial_read_nonblocking(serial, devc->buf + devc->buf_len, len); if (len < 1) { sr_err("Serial port read error: %d.", len); return FALSE;