X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fcem-dt-885x%2Fprotocol.c;h=0366b29d95b5ac7a0832614dc53a4ce115a06ac2;hb=f6129c8f0c92e45de5d70b4101bf2bd759a5fdf7;hp=092d16542aa2aa1e0f3ff75c7049dac726228cc8;hpb=d2f7c417fdd96a13d8fd86350d2fc13db16f626c;p=libsigrok.git diff --git a/src/hardware/cem-dt-885x/protocol.c b/src/hardware/cem-dt-885x/protocol.c index 092d1654..0366b29d 100644 --- a/src/hardware/cem-dt-885x/protocol.c +++ b/src/hardware/cem-dt-885x/protocol.c @@ -346,7 +346,8 @@ static void process_byte(const struct sr_dev_inst *sdi, const unsigned char c, g_variant_new_uint64(devc->buf[7] * 1000)); meta.config = g_slist_append(NULL, src); sr_session_send(sdi, &packet); - g_free(src); + g_slist_free(meta.config); + sr_config_free(src); devc->buf_len = 0; } } else if (devc->state == ST_GET_LOG_RECORD_DATA) { @@ -400,7 +401,7 @@ SR_PRIV int cem_dt_885x_receive_data(int fd, int revents, void *cb_data) } else { /* Tell device to start transferring from memory. */ cmd = CMD_TRANSFER_MEMORY; - serial_write_nonblocking(serial, &cmd, 1); + serial_write_blocking(serial, &cmd, 1, 0); } } } @@ -456,7 +457,7 @@ static int cem_dt_885x_toggle(const struct sr_dev_inst *sdi, uint8_t cmd, * only thing to do is wait for the token that will confirm * whether the command worked or not, and resend if needed. */ while (TRUE) { - if (serial_write_nonblocking(serial, (const void *)&cmd, 1) != 1) + if (serial_write_blocking(serial, (const void *)&cmd, 1, 0) < 0) return SR_ERR; if (wait_for_token(sdi, tokens, timeout) == SR_ERR) return SR_ERR; @@ -817,7 +818,7 @@ SR_PRIV int cem_dt_885x_power_off(const struct sr_dev_inst *sdi) cmd = CMD_TOGGLE_POWER_OFF; while (TRUE) { serial_flush(serial); - if (serial_write_nonblocking(serial, (const void *)&cmd, 1) != 1) + if (serial_write_blocking(serial, (const void *)&cmd, 1, 0) < 0) return SR_ERR; /* It never takes more than 23ms for the next token to arrive. */ g_usleep(25 * 1000);