X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fagilent-dmm%2Fsched.c;h=d7d720d3227af38c87efc2ffb9eaf46cb4a5350d;hb=949b3dc0916eed68ba6f3878300feb61ad858014;hp=6687953ad6f1dbf4ec9f9c0d018d575ea2c83035;hpb=545f9786390a89b8bb6868907afa555fc0a6ece4;p=libsigrok.git diff --git a/hardware/agilent-dmm/sched.c b/hardware/agilent-dmm/sched.c index 6687953a..d7d720d3 100644 --- a/hardware/agilent-dmm/sched.c +++ b/hardware/agilent-dmm/sched.c @@ -26,7 +26,6 @@ #include #include - static void dispatch(const struct sr_dev_inst *sdi) { struct dev_context *devc; @@ -39,12 +38,11 @@ static void dispatch(const struct sr_dev_inst *sdi) now = g_get_monotonic_time() / 1000; for (i = 0; (&jobs[i])->interval; i++) { if (now - devc->jobqueue[i] > (&jobs[i])->interval) { - sr_spew("agilent-dmm: running job %d", i); + sr_spew("Running job %d.", i); (&jobs[i])->send(sdi); devc->jobqueue[i] = now; } } - } static void receive_line(const struct sr_dev_inst *sdi) @@ -65,7 +63,7 @@ static void receive_line(const struct sr_dev_inst *sdi) else break; } - sr_spew("agilent-dmm: received '%s'", devc->buf); + sr_spew("Received '%s'.", devc->buf); recv = NULL; recvs = devc->profile->recvs; @@ -83,19 +81,20 @@ static void receive_line(const struct sr_dev_inst *sdi) g_match_info_unref(match); g_regex_unref(reg); } else - sr_dbg("agilent-dmm: unknown line '%s'", devc->buf); + sr_dbg("Unknown line '%s'.", devc->buf); /* Done with this. */ devc->buflen = 0; - } SR_PRIV int agdmm_receive_data(int fd, int revents, void *cb_data) { - const struct sr_dev_inst *sdi; + struct sr_dev_inst *sdi; struct dev_context *devc; int len; + (void)fd; + if (!(sdi = cb_data)) return TRUE; @@ -105,7 +104,7 @@ SR_PRIV int agdmm_receive_data(int fd, int revents, void *cb_data) if (revents == G_IO_IN) { /* Serial data arrived. */ while(AGDMM_BUFSIZE - devc->buflen - 1 > 0) { - len = serial_read(fd, devc->buf + devc->buflen, 1); + len = serial_read(devc->serial, devc->buf + devc->buflen, 1); if (len < 1) break; devc->buflen += len; @@ -120,7 +119,7 @@ SR_PRIV int agdmm_receive_data(int fd, int revents, void *cb_data) dispatch(sdi); - if (devc->num_samples >= devc->limit_samples) + if (devc->limit_samples && devc->num_samples >= devc->limit_samples) sdi->driver->dev_acquisition_stop(sdi, cb_data); return TRUE; @@ -132,14 +131,14 @@ static int agdmm_send(const struct sr_dev_inst *sdi, const char *cmd) char buf[32]; devc = sdi->priv; - sr_spew("agilent-dmm: sending '%s'", cmd); + sr_spew("Sending '%s'.", cmd); strncpy(buf, cmd, 28); if (!strncmp(buf, "*IDN?", 5)) strncat(buf, "\r\n", 32); else strncat(buf, "\n\r\n", 32); - if (serial_write(devc->serial->fd, buf, strlen(buf)) == -1) { - sr_err("agilent-dmm: failed to send: %s", strerror(errno)); + if (serial_write(devc->serial, buf, strlen(buf)) == -1) { + sr_err("Failed to send: %s.", strerror(errno)); return SR_ERR; } @@ -148,7 +147,6 @@ static int agdmm_send(const struct sr_dev_inst *sdi, const char *cmd) static int send_stat(const struct sr_dev_inst *sdi) { - return agdmm_send(sdi, "STAT?"); } @@ -159,7 +157,7 @@ static int recv_stat_u123x(const struct sr_dev_inst *sdi, GMatchInfo *match) devc = sdi->priv; s = g_match_info_fetch(match, 1); - sr_spew("agilent-dmm: STAT response '%s'", s); + sr_spew("STAT response '%s'.", s); /* Max, Min or Avg mode -- no way to tell which, so we'll * set both flags to denote it's not a normal measurement. */ @@ -185,7 +183,7 @@ static int recv_stat_u123x(const struct sr_dev_inst *sdi, GMatchInfo *match) else devc->mode_tempaux = FALSE; - /* Continuity mode. */ + /* Continuity mode. */ if (s[16] == '1') devc->mode_continuity = TRUE; else @@ -203,7 +201,7 @@ static int recv_stat_u125x(const struct sr_dev_inst *sdi, GMatchInfo *match) devc = sdi->priv; s = g_match_info_fetch(match, 1); - sr_spew("agilent-dmm: STAT response '%s'", s); + sr_spew("STAT response '%s'.", s); /* Peak hold mode. */ if (s[4] == '1') @@ -224,7 +222,6 @@ static int recv_stat_u125x(const struct sr_dev_inst *sdi, GMatchInfo *match) static int send_fetc(const struct sr_dev_inst *sdi) { - return agdmm_send(sdi, "FETC?"); } @@ -236,7 +233,7 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match) float fvalue; char *mstr, *eptr; - sr_spew("agilent-dmm: FETC reply '%s'", g_match_info_get_string(match)); + sr_spew("FETC reply '%s'.", g_match_info_get_string(match)); devc = sdi->priv; if (devc->cur_mq == -1) @@ -246,7 +243,7 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match) return SR_OK; if (!strcmp(g_match_info_get_string(match), "+9.90000000E+37")) { - /* An invalid measurement shows up on the display as "O.L, but + /* An invalid measurement shows up on the display as "O.L", but * comes through like this. Since comparing 38-digit floats * is rather problematic, we'll cut through this here. */ fvalue = NAN; @@ -255,7 +252,7 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match) fvalue = strtof(mstr, &eptr); g_free(mstr); if (fvalue == 0.0 && eptr == mstr) { - sr_err("agilent-dmm: invalid float"); + sr_err("Invalid float."); return SR_ERR; } if (devc->cur_divider > 0) @@ -266,6 +263,7 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match) analog.mq = devc->cur_mq; analog.unit = devc->cur_unit; analog.mqflags = devc->cur_mqflags; + analog.probes = sdi->probes; analog.num_samples = 1; analog.data = &fvalue; packet.type = SR_DF_ANALOG; @@ -279,7 +277,6 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match) static int send_conf(const struct sr_dev_inst *sdi) { - return agdmm_send(sdi, "CONF?"); } @@ -288,7 +285,7 @@ static int recv_conf_u123x(const struct sr_dev_inst *sdi, GMatchInfo *match) struct dev_context *devc; char *mstr; - sr_spew("agilent-dmm: CONF? response '%s'", g_match_info_get_string(match)); + sr_spew("CONF? response '%s'.", g_match_info_get_string(match)); devc = sdi->priv; mstr = g_match_info_fetch(match, 1); if (!strcmp(mstr, "V")) { @@ -341,7 +338,7 @@ static int recv_conf_u123x(const struct sr_dev_inst *sdi, GMatchInfo *match) devc->cur_mqflags = 0; devc->cur_divider = 0; } else - sr_dbg("agilent-dmm: unknown first argument"); + sr_dbg("Unknown first argument."); g_free(mstr); if (g_match_info_get_match_count(match) == 4) { @@ -352,7 +349,7 @@ static int recv_conf_u123x(const struct sr_dev_inst *sdi, GMatchInfo *match) else if (!strcmp(mstr, "DC")) devc->cur_mqflags |= SR_MQFLAG_DC; else - sr_dbg("agilent-dmm: unknown third argument"); + sr_dbg("Unknown third argument."); g_free(mstr); } else devc->cur_mqflags &= ~(SR_MQFLAG_AC | SR_MQFLAG_DC); @@ -365,7 +362,7 @@ static int recv_conf_u125x(const struct sr_dev_inst *sdi, GMatchInfo *match) struct dev_context *devc; char *mstr; - sr_spew("agilent-dmm: CONF? response '%s'", g_match_info_get_string(match)); + sr_spew("CONF? response '%s'.", g_match_info_get_string(match)); devc = sdi->priv; mstr = g_match_info_fetch(match, 1); if (!strncmp(mstr, "VOLT", 4)) { @@ -398,11 +395,10 @@ static int recv_conf_u125x(const struct sr_dev_inst *sdi, GMatchInfo *match) } devc->cur_mqflags = 0; devc->cur_divider = 0; -} else - sr_dbg("agilent-dmm: unknown first argument"); + } else + sr_dbg("Unknown first argument."); g_free(mstr); - return SR_OK; } @@ -412,7 +408,7 @@ static int recv_conf(const struct sr_dev_inst *sdi, GMatchInfo *match) struct dev_context *devc; char *mstr; - sr_spew("agilent-dmm: CONF? response '%s'", g_match_info_get_string(match)); + sr_spew("CONF? response '%s'.", g_match_info_get_string(match)); devc = sdi->priv; mstr = g_match_info_fetch(match, 1); if(!strcmp(mstr, "DIOD")) { @@ -421,7 +417,7 @@ static int recv_conf(const struct sr_dev_inst *sdi, GMatchInfo *match) devc->cur_mqflags = SR_MQFLAG_DIODE; devc->cur_divider = 0; } else - sr_dbg("agilent-dmm: unknown single argument"); + sr_dbg("Unknown single argument."); g_free(mstr); return SR_OK; @@ -433,15 +429,13 @@ static int recv_conf(const struct sr_dev_inst *sdi, GMatchInfo *match) * we do need to catch this here, or it'll show up in some other output. */ static int recv_switch(const struct sr_dev_inst *sdi, GMatchInfo *match) { - (void)sdi; - sr_spew("agilent-dmm: switch '%s'", g_match_info_get_string(match)); + sr_spew("Switch '%s'.", g_match_info_get_string(match)); return SR_OK; } - SR_PRIV const struct agdmm_job agdmm_jobs_u123x[] = { { 143, send_stat }, { 1000, send_conf }, @@ -475,5 +469,3 @@ SR_PRIV const struct agdmm_recv agdmm_recvs_u125x[] = { { "^\"(DIOD)\"$", recv_conf }, { NULL, NULL } }; - -