X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fyokogawa-dlm%2Fprotocol.c;h=d2c51cdac6d4f5ebfebaf61c02c66dfef262d9cb;hb=f2ad79d19b616b61e50495bb87473630bb6cc594;hp=cc822eb462feb1f0fbf8ddaafa901832341a22d4;hpb=d2391b5453cd54b4bb087bdfbf2964202ba29098;p=libsigrok.git diff --git a/src/hardware/yokogawa-dlm/protocol.c b/src/hardware/yokogawa-dlm/protocol.c index cc822eb4..d2c51cda 100644 --- a/src/hardware/yokogawa-dlm/protocol.c +++ b/src/hardware/yokogawa-dlm/protocol.c @@ -777,9 +777,13 @@ SR_PRIV int dlm_device_init(struct sr_dev_inst *sdi, int model_index) devc->analog_groups = g_malloc0(sizeof(struct sr_channel_group*) * scope_models[model_index].analog_channels); - devc->digital_groups = g_malloc0(sizeof(struct sr_channel_group*) * scope_models[model_index].pods); + if (!devc->analog_groups || !devc->digital_groups) { + g_free(devc->analog_groups); + g_free(devc->digital_groups); + return SR_ERR_MALLOC; + } /* Add analog channels, each in its own group. */ for (i = 0; i < scope_models[model_index].analog_channels; i++) { @@ -1014,7 +1018,6 @@ SR_PRIV int dlm_data_receive(int fd, int revents, void *cb_data) struct scope_state *model_state; struct dev_context *devc; struct sr_channel *ch; - struct sr_datafeed_packet packet; int chunk_len, num_bytes; static GArray *data = NULL; @@ -1061,10 +1064,8 @@ SR_PRIV int dlm_data_receive(int fd, int revents, void *cb_data) devc->data_pending = FALSE; /* Signal the beginning of a new frame if this is the first channel. */ - if (devc->current_channel == devc->enabled_channels) { - packet.type = SR_DF_FRAME_BEGIN; - sr_session_send(sdi, &packet); - } + if (devc->current_channel == devc->enabled_channels) + std_session_send_df_frame_begin(sdi); if (dlm_block_data_header_process(data, &num_bytes) != SR_OK) { sr_err("Encountered malformed block data header."); @@ -1107,8 +1108,7 @@ SR_PRIV int dlm_data_receive(int fd, int revents, void *cb_data) * and set the next enabled channel. Then, request its data. */ if (!devc->current_channel->next) { - packet.type = SR_DF_FRAME_END; - sr_session_send(sdi, &packet); + std_session_send_df_frame_end(sdi); devc->current_channel = devc->enabled_channels; /*