+ /* Send header packet to the session bus. */
+ sr_dbg("fluke-dmm: Sending SR_DF_HEADER.");
+ packet.type = SR_DF_HEADER;
+ packet.payload = (uint8_t *)&header;
+ header.feed_version = 1;
+ gettimeofday(&header.starttime, NULL);
+ sr_session_send(devc->cb_data, &packet);
+
+ /* Send metadata about the SR_DF_ANALOG packets to come. */
+ sr_dbg("fluke-dmm: Sending SR_DF_META_ANALOG.");
+ packet.type = SR_DF_META_ANALOG;
+ packet.payload = &meta;
+ meta.num_probes = 1;
+ sr_session_send(devc->cb_data, &packet);
+
+ /* Poll every 100ms, or whenever some data comes in. */
+ sr_source_add(devc->serial->fd, G_IO_IN, 50, fluke_receive_data, (void *)sdi);
+
+ if (serial_write(devc->serial->fd, "QM\r", 3) == -1) {
+ sr_err("fluke-dmm: unable to send QM: %s", strerror(errno));
+ return SR_ERR;
+ }
+ devc->cmd_sent_at = g_get_monotonic_time() / 1000;
+ devc->expect_response = TRUE;