[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. b97d05369cb4a8f277808
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2020-09-15 04:13:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via b97d05369cb4a8f27780837af8af99530c0665e0 (commit) via b397fc07bd7ad59550086027a6595b30785f281c (commit) via 6267d2674e08ef7dc512831f2d241d7f50a76c9e (commit) via ebddade1dcdd588dcb4ce3f0dfa4616c82eb6037 (commit) via 9c5b7499f6767ca75b8e7da52dc0e1d5b6abea60 (commit) via 15a879d5ea2d06a17ae88e1952ec14d05b78e105 (commit) via 1c5c44edd2921dcf7dc7d24646fce9430837a623 (commit) via 52764221ca674e239cbf9254c4eb0c55e40d5ba7 (commit) via 12c2434dc7c925645950cd12c4b4ceee4c066098 (commit) via 3e2949ddf934cfcd73bf469382506e378f5b4075 (commit) via f41e07c0e68f70f95f8ba7e22dd488c20c3b0eda (commit) from cb2c757c6230767fd1191aed47c6d11a9c1900b3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b97d05369cb4a8f27780837af8af99530c0665e0 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 23:12:35 2020 -0500 astyle files diff --git a/lib/termios.c b/lib/termios.c index eb27729b..887b2ff6 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 658099cc..a2c40c04 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 7207ac77..0cad1438 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 67959ac3..9ffcaf91 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 f3f1df76..09f4788d 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; } commit b397fc07bd7ad59550086027a6595b30785f281c Merge: 1c5c44ed 6267d267 Author: Michael Black <mdb...@ya...> Date: Mon Sep 14 16:48:57 2020 -0500 Merge pull request #379 from mdblack98/master Fix icom levels commit 6267d2674e08ef7dc512831f2d241d7f50a76c9e Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 14:45:36 2020 -0700 Fix icom LEVELs diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 06edd785..7207ac77 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2344,7 +2344,7 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) for (i = 0; cmd && cmd[i].id.s != 0; i++) { - if (cmd[i].id.s == level) + if (cmd[i].cmdparamtype == CMD_PARAM_TYPE_LEVEL && cmd[i].id.s == level) { return icom_set_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val); } commit ebddade1dcdd588dcb4ce3f0dfa4616c82eb6037 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 14:34:52 2020 -0700 Fix debug statement in ic7300.c diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 6cc8486b..658099cc 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -1008,7 +1008,7 @@ 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", __func__, rig_strparm(parm)); + rig_debug(RIG_DEBUG_TRACE, "%s: using icom routine for PARM=%s\n", __func__, rig_strparm(parm)); return icom_get_parm(rig,parm,val); } commit 9c5b7499f6767ca75b8e7da52dc0e1d5b6abea60 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 09:18:43 2020 -0700 Fix IC7300 set_parm PARM_TIME diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 3d2a0efc..6cc8486b 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -965,26 +965,25 @@ 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); - prmbuf[0] = 0x05; switch (rig->caps->rig_model) { case RIG_MODEL_IC7300: - prmbuf[2] = 0x00; - prmbuf[3] = 0x95; + prmbuf[0] = 0x00; + prmbuf[1] = 0x95; break; case RIG_MODEL_IC9700: - prmbuf[2] = 0x01; - prmbuf[3] = 0x80; + prmbuf[0] = 0x01; + prmbuf[1] = 0x80; break; case RIG_MODEL_IC705: - prmbuf[2] = 0x01; - prmbuf[3] = 0x66; + prmbuf[0] = 0x01; + prmbuf[1] = 0x66; break; default: return -RIG_ENIMPL; } - to_bcd_be(prmbuf + 3, (long long) hr, 2); - to_bcd_be(prmbuf + 4, (long long) min, 2); - return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, 5, prmbuf, 0, 0); + 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); default: rig_debug(RIG_DEBUG_ERR, "Unsupported set_parm %s\n", rig_strparm(parm)); diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 6fcd4f10..06edd785 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -5566,7 +5566,7 @@ int icom_set_parm(RIG *rig, setting_t parm, value_t val) for (i = 0; cmd && cmd[i].id.s != 0; i++) { - if (cmd[i].id.s == parm) + if (cmd[i].cmdparamtype == CMD_PARAM_TYPE_PARM && cmd[i].id.s == parm) { return icom_set_cmd(rig, RIG_VFO_NONE, (struct cmdparams *)&cmd[i], val); } commit 15a879d5ea2d06a17ae88e1952ec14d05b78e105 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 11:08:38 2020 -0500 Add ic7300_get_parm and ic7300_set_parm diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 880dd0bf..3d2a0efc 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -38,6 +38,10 @@ #include "bandplan.h" #include "tones.h" +static int ic7300_set_parm(RIG *rig, setting_t parm, value_t val); +static int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val); + + #define IC7300_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|RIG_MODE_PKTAM) #define IC7300_1HZ_TS_MODES (RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|RIG_MODE_PKTAM) #define IC7300_NOT_TS_MODES (IC7300_ALL_RX_MODES &~IC7300_1HZ_TS_MODES) @@ -404,8 +408,8 @@ const struct rig_caps ic7300_caps = .get_ext_level = icom_get_ext_level, .set_func = icom_set_func, .get_func = icom_get_func, - .set_parm = icom_set_parm, - .get_parm = icom_get_parm, + .set_parm = ic7300_set_parm, + .get_parm = ic7300_get_parm, .set_mem = icom_set_mem, .vfo_op = icom_vfo_op, .scan = icom_scan, @@ -885,3 +889,162 @@ const struct rig_caps ic705_caps = .send_morse = icom_send_morse, .send_voice_mem = icom_send_voice_mem }; + +int ic7300_set_parm(RIG *rig, setting_t parm, value_t val) +{ + unsigned char prmbuf[MAXFRAMELEN]; + int min, hr; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + switch (parm) + { + case RIG_PARM_ANN: + { + int ann_mode = -1; + int ann_lang = -1; + + switch (val.i) + { + case RIG_ANN_OFF: + ann_mode = S_ANN_ALL; + break; + + case RIG_ANN_FREQ: + ann_mode = S_ANN_FREQ; + break; + + case RIG_ANN_RXMODE: + ann_mode = S_ANN_MODE; + break; + + case RIG_ANN_ENG: + case RIG_ANN_JAP: + ann_lang = (val.i == RIG_ANN_ENG) ? 0 : 1; + break; + + default: + rig_debug(RIG_DEBUG_ERR, "Unsupported RIG_PARM_ANN %d\n", val.i); + return -RIG_EINVAL; + } + + if (ann_mode >= 0) + { + return icom_set_raw(rig, C_CTL_ANN, ann_mode, 0, NULL, 0, 0); + } + else if (ann_lang >= 0) + { + prmbuf[0] = 0x1a; + prmbuf[1] = 0x05; + 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; + } + + prmbuf[4] = ann_lang; + return icom_set_raw(rig, C_CTL_MEM, S_MEM_MODE_SLCT, 5, prmbuf, 0, 0); + } + + rig_debug(RIG_DEBUG_ERR, "Unsupported RIG_PARM_ANN %d\n", val.i); + return -RIG_EINVAL; + } + + case RIG_PARM_TIME: + hr = (int)((float) val.i / 3600.0); + min = (int)((float)(val.i - (hr * 3600)) / 60.0); + + prmbuf[0] = 0x05; + switch (rig->caps->rig_model) { + case RIG_MODEL_IC7300: + prmbuf[2] = 0x00; + prmbuf[3] = 0x95; + break; + case RIG_MODEL_IC9700: + prmbuf[2] = 0x01; + prmbuf[3] = 0x80; + break; + case RIG_MODEL_IC705: + prmbuf[2] = 0x01; + prmbuf[3] = 0x66; + break; + default: + return -RIG_ENIMPL; + } + to_bcd_be(prmbuf + 3, (long long) hr, 2); + to_bcd_be(prmbuf + 4, (long long) min, 2); + return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, 5, prmbuf, 0, 0); + + default: + rig_debug(RIG_DEBUG_ERR, "Unsupported set_parm %s\n", rig_strparm(parm)); + return -RIG_EINVAL; + } +} + +int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val) +{ + unsigned char prmbuf[MAXFRAMELEN], resbuf[MAXFRAMELEN]; + int prm_len, res_len; + int prm_cn, prm_sc; + int icom_val = 0; + int cmdhead; + int retval; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + switch (parm) + { + case RIG_PARM_ANN: + return -RIG_ENIMPL; // How can we implement this? + + default: + rig_debug(RIG_DEBUG_TRACE, "%s: using icom routine for PARM=%s", __func__, rig_strparm(parm)); + return icom_get_parm(rig,parm,val); + } + + retval = icom_transaction(rig, prm_cn, prm_sc, prmbuf, prm_len, resbuf, + &res_len); + + if (retval != RIG_OK) + { + return retval; + } + + cmdhead = 3; + res_len -= cmdhead; + + if (resbuf[0] != ACK && resbuf[0] != prm_cn) + { + rig_debug(RIG_DEBUG_ERR, "%s: ack NG (%#.2x), len=%d\n", __func__, resbuf[0], + res_len); + return -RIG_ERJCTED; + } + + switch (parm) + { + + 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); + } + + + rig_debug(RIG_DEBUG_TRACE, "%s: %d %d %d %f\n", __func__, res_len, icom_val, + val->i, val->f); + + return RIG_OK; +} + commit 1c5c44edd2921dcf7dc7d24646fce9430837a623 Merge: 52764221 3e2949dd Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 08:02:52 2020 -0500 Merge branch 'master' of https://github.com/Hamlib/Hamlib commit 52764221ca674e239cbf9254c4eb0c55e40d5ba7 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 08:02:42 2020 -0500 Make ic75 parm functions static diff --git a/rigs/icom/icr75.c b/rigs/icom/icr75.c index 955a7ab5..a813f557 100644 --- a/rigs/icom/icr75.c +++ b/rigs/icom/icr75.c @@ -93,8 +93,8 @@ static int icr75_set_channel(RIG *rig, const channel_t *chan); static int icr75_get_channel(RIG *rig, channel_t *chan, int read_only); -int icr75_set_parm(RIG *rig, setting_t parm, value_t val); -int icr75_get_parm(RIG *rig, setting_t parm, value_t *val); +static int icr75_set_parm(RIG *rig, setting_t parm, value_t val); +static int icr75_get_parm(RIG *rig, setting_t parm, value_t *val); static struct icom_priv_caps icr75_priv_caps = { commit 12c2434dc7c925645950cd12c4b4ceee4c066098 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 07:59:47 2020 -0500 Fix cppcheck warning in termios.c: diff --git a/lib/termios.c b/lib/termios.c index ac5ccb31..eb27729b 100644 --- a/lib/termios.c +++ b/lib/termios.c @@ -808,29 +808,27 @@ int win32_serial_close(int fd) first_tl = NULL; } - if (index) - { - if (index->rol.hEvent) { CloseHandle(index->rol.hEvent); } + if (index->rol.hEvent) { CloseHandle(index->rol.hEvent); } - if (index->wol.hEvent) { CloseHandle(index->wol.hEvent); } + if (index->wol.hEvent) { CloseHandle(index->wol.hEvent); } - if (index->sol.hEvent) { CloseHandle(index->sol.hEvent); } + if (index->sol.hEvent) { CloseHandle(index->sol.hEvent); } - if (index->hComm) { CloseHandle(index->hComm); } + if (index->hComm) { CloseHandle(index->hComm); } - if (index->ttyset) { free(index->ttyset); } + if (index->ttyset) { free(index->ttyset); } - if (index->astruct) { free(index->astruct); } + if (index->astruct) { free(index->astruct); } - if (index->sstruct) { free(index->sstruct); } + if (index->sstruct) { free(index->sstruct); } - if (index->sis) { free(index->sis); } + if (index->sis) { free(index->sis); } - /* had problems with strdup - if ( index->filename ) free( index->filename ); - */ - free(index); - } + /* had problems with strdup + if ( index->filename ) free( index->filename ); + */ + free(index); + LEAVE("serial_close"); return 0; @@ -1740,7 +1738,7 @@ int win32_serial_read(int fd, void *vb, int size) } } - sprintf(message, "end nBytes=%ld] ", nBytes); + sprintf(message, "end nBytes=%lu] ", nBytes); report(message); /* hl_usleep(1000); @@ -2497,8 +2495,10 @@ int tcgetattr(int fd, struct termios *s_termios) s_termios->c_cflag &= ~(PARENB | PARODD | CMSPAR); myDCB.fParity = 1; +#if 0 // redundant if (myDCB.fParity) { +#endif report("tcgetattr getting parity\n"); s_termios->c_cflag |= PARENB; @@ -2524,11 +2524,13 @@ 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 */ s_termios->c_cflag |= bytesize_to_termios(myDCB.ByteSize); @@ -2752,11 +2754,11 @@ int tcsetattr(int fd, int when, struct termios *s_termios) if (dcb.EofChar != '\0') { - dcb.fBinary = 0; + dcb.fBinary = FALSE; } else { - dcb.fBinary = 1; + dcb.fBinary = TRUE; } if (EV_BREAK | EV_CTS | EV_DSR | EV_ERR | EV_RING | (EV_RLSD & EV_RXFLAG)) @@ -3536,38 +3538,10 @@ int win32_serial_ioctl(int fd, int request, ...) return -1; } - if (sistruct->frame != index->sis->frame) - { - sistruct->frame = index->sis->frame; - /* - printf( "---------------frame = %i\n", sistruct->frame++ ); - */ - } - - if (sistruct->overrun != index->sis->overrun) - { - /* - printf( "---------------overrun\n" ); - */ - sistruct->overrun = index->sis->overrun; - /* ErrCode &= ~CE_OVERRUN; */ - } - - if (sistruct->parity != index->sis->parity) - { - /* - printf( "---------------parity\n" ); - */ - sistruct->parity = index->sis->parity; - } - - if (sistruct->brk != index->sis->brk) - { - /* - printf( "---------------brk\n" ); - */ - sistruct->brk = index->sis->brk; - } + sistruct->frame = index->sis->frame; + sistruct->overrun = index->sis->overrun; + sistruct->parity = index->sis->parity; + sistruct->brk = index->sis->brk; va_end(ap); return 0; @@ -3777,7 +3751,7 @@ int win32_serial_select(int n, fd_set *readfds, fd_set *writefds, termios_setflags(fd, eventflags); } - if (!index || !index->event_flag) + if (!index->event_flag) { /* still setting up the port? hold off for a Sec so things can fire up commit 3e2949ddf934cfcd73bf469382506e378f5b4075 Merge: cb2c757c f41e07c0 Author: Michael Black <mdb...@ya...> Date: Mon Sep 14 07:37:16 2020 -0500 Merge pull request #378 from mdblack98/master Remove rptr functions from ic7300.c commit f41e07c0e68f70f95f8ba7e22dd488c20c3b0eda Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Sep 14 07:34:02 2020 -0500 Remove rptr functions from ic7300.c https://github.com/Hamlib/Hamlib/issues/373 diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 68987aef..880dd0bf 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -270,7 +270,7 @@ const struct rig_caps ic7300_caps = RIG_MODEL(RIG_MODEL_IC7300), .model_name = "IC-7300", .mfg_name = "Icom", - .version = BACKEND_VER ".0", + .version = BACKEND_VER ".1", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -414,10 +414,10 @@ const struct rig_caps ic7300_caps = .get_dcd = icom_get_dcd, .set_ts = icom_set_ts, .get_ts = icom_get_ts, - .set_rptr_shift = icom_set_rptr_shift, - .get_rptr_shift = icom_get_rptr_shift, - .set_rptr_offs = icom_set_rptr_offs, - .get_rptr_offs = icom_get_rptr_offs, + .set_rptr_shift = NULL, + .get_rptr_shift = NULL, + .set_rptr_offs = NULL, + .get_rptr_offs = NULL, .set_ctcss_tone = icom_set_ctcss_tone, .get_ctcss_tone = icom_get_ctcss_tone, .set_ctcss_sql = icom_set_ctcss_sql, ----------------------------------------------------------------------- Summary of changes: lib/termios.c | 79 ++++++--------- rigs/icom/ic7300.c | 252 ++++++++++++++++++++++++++++++++++++++++-------- rigs/icom/icom.c | 16 +-- rigs/icom/icr75.c | 4 +- rigs/kenwood/flex6xxx.c | 38 +++++--- rigs/kenwood/kenwood.c | 9 +- 6 files changed, 283 insertions(+), 115 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |