diff --git a/lib/termios.c b/lib/termios.c index eb27729bf..887b2ff66 100644 --- a/lib/termios.c +++ b/lib/termios.c @@ -828,7 +828,7 @@ int win32_serial_close(int fd) if ( index->filename ) free( index->filename ); */ free(index); - + LEAVE("serial_close"); return 0; @@ -2496,6 +2496,7 @@ int tcgetattr(int fd, struct termios *s_termios) myDCB.fParity = 1; #if 0 // redundant + if (myDCB.fParity) { #endif @@ -2524,12 +2525,14 @@ int tcgetattr(int fd, struct termios *s_termios) { s_termios->c_cflag &= ~(PARODD | CMSPAR | PARENB); } + #if 0 // see redundant above } else { s_termios->c_cflag &= ~PARENB; } + #endif /* CSIZE */ diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 658099ccc..a2c40c042 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -324,9 +324,9 @@ const struct rig_caps ic7300_caps = RIG_CHAN_END, }, - .rx_range_list1 = { - {kHz(30), MHz(74.8), IC7300_ALL_RX_MODES, -1, -1, IC7300_VFOS}, RIG_FRNG_END, - }, + .rx_range_list1 = { + {kHz(30), MHz(74.8), IC7300_ALL_RX_MODES, -1, -1, IC7300_VFOS}, RIG_FRNG_END, + }, .tx_range_list1 = { FRQ_RNG_HF(1, IC7300_OTHER_TX_MODES, W(2), W(100), IC7300_VFOS, RIG_ANT_1), FRQ_RNG_60m(1, IC7300_OTHER_TX_MODES, W(2), W(100), IC7300_VFOS, RIG_ANT_1), @@ -741,46 +741,46 @@ const struct rig_caps ic705_caps = RIG_CHAN_END, }, - .rx_range_list1 = { + .rx_range_list1 = { {kHz(30), MHz(199.999999), IC705_ALL_RX_MODES, -1, -1, IC7300_VFOS, RIG_ANT_1, "USA"}, {MHz(400), MHz(470), IC705_ALL_RX_MODES, -1, -1, IC7300_VFOS, RIG_ANT_1, "USA"}, - RIG_FRNG_END, + RIG_FRNG_END, }, .tx_range_list1 = { - { kHz(1800), MHz(1.999999),IC705_ALL_TX_MODES, W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(3.5), MHz(3.999999),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(5.255), MHz(5.405),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(7.0), MHz(7.3),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(10.1), MHz(10.15),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(14.0), MHz(14.35),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(18.068), MHz(18.168),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(21.00), MHz(21.45),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(24.89), MHz(24.99),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(28.00), MHz(29.70),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(50.00), MHz(54.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(144.00), MHz(148.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, - { MHz(430.00), MHz(450.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "USA" }, + { kHz(1800), MHz(1.999999), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(3.5), MHz(3.999999), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(5.255), MHz(5.405), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(7.0), MHz(7.3), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(10.1), MHz(10.15), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(14.0), MHz(14.35), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(18.068), MHz(18.168), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(21.00), MHz(21.45), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(24.89), MHz(24.99), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(28.00), MHz(29.70), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(50.00), MHz(54.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(144.00), MHz(148.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, + { MHz(430.00), MHz(450.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "USA" }, RIG_FRNG_END, }, - .rx_range_list2 = { + .rx_range_list2 = { {kHz(30), MHz(199.999999), IC705_ALL_RX_MODES, -1, -1, IC7300_VFOS, RIG_ANT_1, "EUR"}, {MHz(400), MHz(470), IC705_ALL_RX_MODES, -1, -1, IC7300_VFOS, RIG_ANT_1, "EUR"}, - RIG_FRNG_END, + RIG_FRNG_END, }, .tx_range_list2 = { - { kHz(1810), MHz(1.999999),IC705_ALL_TX_MODES, W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(3.5), MHz(3.8),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(7.0), MHz(7.2),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(10.1), MHz(10.15),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(14.0), MHz(14.35),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(18.068), MHz(18.168),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(21.00), MHz(21.45),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(24.89), MHz(24.99),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(28.00), MHz(29.70),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(50.00), MHz(52.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(144.00), MHz(146.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, - { MHz(430.00), MHz(440.00),IC705_ALL_TX_MODES ,W(0.1) , W(10) , IC7300_VFOS, RIG_ANT_1, "EUR" }, + { kHz(1810), MHz(1.999999), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(3.5), MHz(3.8), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(7.0), MHz(7.2), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(10.1), MHz(10.15), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(14.0), MHz(14.35), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(18.068), MHz(18.168), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(21.00), MHz(21.45), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(24.89), MHz(24.99), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(28.00), MHz(29.70), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(50.00), MHz(52.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(144.00), MHz(146.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, + { MHz(430.00), MHz(440.00), IC705_ALL_TX_MODES, W(0.1), W(10), IC7300_VFOS, RIG_ANT_1, "EUR" }, RIG_FRNG_END, }, @@ -936,19 +936,24 @@ int ic7300_set_parm(RIG *rig, setting_t parm, value_t val) { prmbuf[0] = 0x1a; prmbuf[1] = 0x05; - switch (rig->caps->rig_model) { + + switch (rig->caps->rig_model) + { case RIG_MODEL_IC7300: prmbuf[2] = 0x00; prmbuf[3] = 0x39; break; + case RIG_MODEL_IC9700: prmbuf[2] = 0x01; prmbuf[3] = 0x77; break; + case RIG_MODEL_IC705: prmbuf[2] = 0x00; prmbuf[3] = 0x53; break; + default: return -RIG_ENIMPL; } @@ -965,22 +970,27 @@ int ic7300_set_parm(RIG *rig, setting_t parm, value_t val) hr = (int)((float) val.i / 3600.0); min = (int)((float)(val.i - (hr * 3600)) / 60.0); - switch (rig->caps->rig_model) { + switch (rig->caps->rig_model) + { case RIG_MODEL_IC7300: prmbuf[0] = 0x00; prmbuf[1] = 0x95; break; + case RIG_MODEL_IC9700: prmbuf[0] = 0x01; prmbuf[1] = 0x80; break; + case RIG_MODEL_IC705: prmbuf[0] = 0x01; prmbuf[1] = 0x66; break; + default: return -RIG_ENIMPL; } + to_bcd_be(prmbuf + 2, (long long) hr, 2); to_bcd_be(prmbuf + 3, (long long) min, 2); return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, 4, prmbuf, 0, 0); @@ -1008,8 +1018,9 @@ int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val) return -RIG_ENIMPL; // How can we implement this? default: - rig_debug(RIG_DEBUG_TRACE, "%s: using icom routine for PARM=%s\n", __func__, rig_strparm(parm)); - return icom_get_parm(rig,parm,val); + rig_debug(RIG_DEBUG_TRACE, "%s: using icom routine for PARM=%s\n", __func__, + rig_strparm(parm)); + return icom_get_parm(rig, parm, val); } retval = icom_transaction(rig, prm_cn, prm_sc, prmbuf, prm_len, resbuf, @@ -1033,11 +1044,12 @@ int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val) switch (parm) { - case RIG_PARM_ANN: + case RIG_PARM_ANN: rig_debug(RIG_DEBUG_WARN, "%s: not implemented\n", __func__); return -RIG_ENIMPL; + default: - return icom_get_parm(rig,parm,val); + return icom_get_parm(rig, parm, val); } diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 7207ac777..0cad1438f 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2703,12 +2703,14 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) for (i = 0; cmd && cmd[i].id.s != 0; i++) { - rig_debug(RIG_DEBUG_TRACE, "%s: i=%d\n", __func__, i); + rig_debug(RIG_DEBUG_TRACE, "%s: i=%d\n", __func__, i); + if (cmd[i].cmdparamtype == CMD_PARAM_TYPE_LEVEL && cmd[i].id.s == level) { return icom_get_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val); } } + rig_debug(RIG_DEBUG_TRACE, "%s: no extcmd found\n", __func__); rs = &rig->state; @@ -3189,7 +3191,7 @@ int icom_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val) } else if (cfp[i].token == token) { - return icom_get_ext_cmd(rig, vfo, CMD_PARAM_TYPE_LEVEL, token, val); + return icom_get_ext_cmd(rig, vfo, CMD_PARAM_TYPE_LEVEL, token, val); } else { i++; } } @@ -3239,7 +3241,8 @@ int icom_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status) } else if (cfp[i].token == token) { - return icom_get_ext_cmd(rig, vfo, CMD_PARAM_TYPE_FUNC, token, (value_t *)status); + return icom_get_ext_cmd(rig, vfo, CMD_PARAM_TYPE_FUNC, token, + (value_t *)status); } else { i++; } } @@ -3297,7 +3300,8 @@ int icom_get_ext_parm(RIG *rig, token_t token, value_t *val) return -RIG_EINVAL; } -int icom_get_ext_cmd(RIG *rig, vfo_t vfo, cmd_param_t cmdparamtype, token_t token, value_t *val) +int icom_get_ext_cmd(RIG *rig, vfo_t vfo, cmd_param_t cmdparamtype, + token_t token, value_t *val) { int i; diff --git a/rigs/kenwood/flex6xxx.c b/rigs/kenwood/flex6xxx.c index 67959ac3d..9ffcaf910 100644 --- a/rigs/kenwood/flex6xxx.c +++ b/rigs/kenwood/flex6xxx.c @@ -650,30 +650,40 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) switch (level) { - case RIG_LEVEL_RFPOWER_METER: - cmd = "ZZRM5"; - len = 5; - break; - default: - return kenwood_get_level(rig,vfo,level,val); + case RIG_LEVEL_RFPOWER_METER: + cmd = "ZZRM5"; + len = 5; + break; + + default: + return kenwood_get_level(rig, vfo, level, val); } + retval = kenwood_safe_transaction(rig, cmd, lvlbuf, 10, len + 3); + if (retval != RIG_OK) { return retval; } + int n; + switch (level) { - case RIG_LEVEL_RFPOWER_METER: - n = sscanf(lvlbuf + len, "%f", &val->f); - if (n != 1) { - rig_debug(RIG_DEBUG_ERR,"%s: Error parsing RFPOWER from lvlbuf='%s'\n",__func__,lvlbuf); - return -RIG_EPROTO; - } - val->f /= 100; - break; + case RIG_LEVEL_RFPOWER_METER: + n = sscanf(lvlbuf + len, "%f", &val->f); + + if (n != 1) + { + rig_debug(RIG_DEBUG_ERR, "%s: Error parsing RFPOWER from lvlbuf='%s'\n", + __func__, lvlbuf); + return -RIG_EPROTO; + } + + val->f /= 100; + break; } + return RIG_OK; } diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index f3f1df76e..09f4788dd 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -355,7 +355,8 @@ transaction_read: if (retval < 0) { rig_debug(RIG_DEBUG_WARN, - "%s: read_string retval < 0, retval = %d, retry_read=%d, rs->rigport.retry=%d\n", __func__, + "%s: read_string retval < 0, retval = %d, retry_read=%d, rs->rigport.retry=%d\n", + __func__, retval, retry_read, rs->rigport.retry); // only retry if we expect a response from the command @@ -476,8 +477,10 @@ transaction_read: rig_debug(RIG_DEBUG_ERR, "%s: wrong reply %c%c for command %c%c\n", __func__, buffer[0], buffer[1], cmdstr[0], cmdstr[1]); - rig_debug(RIG_DEBUG_ERR, "%s: retry_read=%d, rs->rigport.retry=%d\n", __func__, retry_read, rs->rigport.retry); - if (retry_read++ < rs->rigport.retry) + rig_debug(RIG_DEBUG_ERR, "%s: retry_read=%d, rs->rigport.retry=%d\n", __func__, + retry_read, rs->rigport.retry); + + if (retry_read++ < rs->rigport.retry) { goto transaction_write; }