[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 2bbe4c1f31b90c4ef7df1
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2021-01-01 21:26:53
|
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 2bbe4c1f31b90c4ef7df140efa7947238d4a5c8f (commit) via a59bdad6f5beaed1a442b9cd8bae2bcb2a7a630d (commit) via c530867165441e37958a6dc18868143f2f145a2d (commit) via aafaafd473dbb7b8174004594a1259c3e051b780 (commit) via 325dc8497b4df5920f3b4f879e110555b16a98b8 (commit) via 671f2070eb1b317b2cf5d8b47eb46386edf26ba6 (commit) via f7ff96fec85a831ee4f33f163c0a58b58fc9ca70 (commit) via 44c1645785ca9f178a578c418f85624c992a3904 (commit) from 29f56de41d0c9e9a6c34e73ec236851f0f353a9e (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 2bbe4c1f31b90c4ef7df140efa7947238d4a5c8f Merge: a59bdad6 c5308671 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 1 15:13:27 2021 -0600 Merge branch 'master' of https://github.com/Hamlib/Hamlib commit a59bdad6f5beaed1a442b9cd8bae2bcb2a7a630d Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 1 15:12:31 2021 -0600 https://github.com/Hamlib/Hamlib/issues/484 diff --git a/NEWS b/NEWS index 909ffc57..c7a64f93 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,9 @@ Copyright (C) 2000-2020 Michael Black W9MDB, and others Please send Hamlib bug reports to ham...@li... Version 4.1 + * Nobody should need to use rig->caps or rig->state anymore + If you need a variable added please contact us. + Note that rig->state abstraction is not implemented yet...no need known * New rig_get_caps_int and rig_get_caps_cptr functions to replace using caps-> values * New rig_get_function to replace using caps-> function pointers diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index bdfb64c8..4fabe256 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1952,9 +1952,9 @@ enum rig_caps_int_e { }; enum rig_caps_cptr_e { - RIG_CAPS_VERSION, - RIG_CAPS_MFG_NAME, - RIG_CAPS_MODEL_NAME + RIG_CAPS_VERSION_CPTR, + RIG_CAPS_MFG_NAME_CPTR, + RIG_CAPS_MODEL_NAME_CPTR }; /** diff --git a/src/misc.c b/src/misc.c index 976db49e..7274bf23 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2105,13 +2105,13 @@ const char *rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps) { switch (rig_caps) { - case RIG_CAPS_VERSION: + case RIG_CAPS_VERSION_CPTR: return rig->caps->version; - case RIG_CAPS_MFG_NAME: + case RIG_CAPS_MFG_NAME_CPTR: return rig->caps->mfg_name; - case RIG_CAPS_MODEL_NAME: + case RIG_CAPS_MODEL_NAME_CPTR: return rig->caps->model_name; default: commit c530867165441e37958a6dc18868143f2f145a2d Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 1 15:12:31 2021 -0600 Rename CAPS strings to have CPTR for easier editing diff --git a/NEWS b/NEWS index 909ffc57..c7a64f93 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,9 @@ Copyright (C) 2000-2020 Michael Black W9MDB, and others Please send Hamlib bug reports to ham...@li... Version 4.1 + * Nobody should need to use rig->caps or rig->state anymore + If you need a variable added please contact us. + Note that rig->state abstraction is not implemented yet...no need known * New rig_get_caps_int and rig_get_caps_cptr functions to replace using caps-> values * New rig_get_function to replace using caps-> function pointers diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index bdfb64c8..4fabe256 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1952,9 +1952,9 @@ enum rig_caps_int_e { }; enum rig_caps_cptr_e { - RIG_CAPS_VERSION, - RIG_CAPS_MFG_NAME, - RIG_CAPS_MODEL_NAME + RIG_CAPS_VERSION_CPTR, + RIG_CAPS_MFG_NAME_CPTR, + RIG_CAPS_MODEL_NAME_CPTR }; /** diff --git a/src/misc.c b/src/misc.c index 976db49e..7274bf23 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2105,13 +2105,13 @@ const char *rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps) { switch (rig_caps) { - case RIG_CAPS_VERSION: + case RIG_CAPS_VERSION_CPTR: return rig->caps->version; - case RIG_CAPS_MFG_NAME: + case RIG_CAPS_MFG_NAME_CPTR: return rig->caps->mfg_name; - case RIG_CAPS_MODEL_NAME: + case RIG_CAPS_MODEL_NAME_CPTR: return rig->caps->model_name; default: commit aafaafd473dbb7b8174004594a1259c3e051b780 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 1 10:59:36 2021 -0600 Added rig_get_caps_int and rig_get_caps_cptr functions to replace using caps-> values https://github.com/Hamlib/Hamlib/issues/484 diff --git a/NEWS b/NEWS index e1407ba7..909ffc57 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,10 @@ Copyright (C) 2000-2020 Michael Black W9MDB, and others Please send Hamlib bug reports to ham...@li... +Version 4.1 + * New rig_get_caps_int and rig_get_caps_cptr functions to replace using caps-> values + * New rig_get_function to replace using caps-> function pointers + Version 4.0 2020-11-29 * API/ABI changes, advance ABI to 4 0 0. diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 3fafa6b2..bdfb64c8 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1938,6 +1938,39 @@ enum rig_function_e { //! @cond Doxygen_Suppress extern void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function); +/** + * \brief Enumeration of rig->caps values + * + */ +//! @cond Doxygen_Suppress +// values enumerated for rig->caps values +enum rig_caps_int_e { + RIG_CAPS_TARGETABLE_VFO, + RIG_CAPS_RIG_MODEL, + RIG_CAPS_PORT_TYPE, + RIG_CAPS_PTT_TYPE +}; + +enum rig_caps_cptr_e { + RIG_CAPS_VERSION, + RIG_CAPS_MFG_NAME, + RIG_CAPS_MODEL_NAME +}; + +/** + * \brief Function to return int value from rig->caps + * + */ +//! @cond Doxygen_Suppress +extern int rig_get_caps_int(RIG *rig, enum rig_caps_int_e rig_caps); + +/** + * \brief Function to return char pointer value from rig->caps + * + */ +//! @cond Doxygen_Suppress +extern const char* rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps); + /** * \brief Port definition * diff --git a/src/misc.c b/src/misc.c index 89aedd2a..976db49e 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2077,7 +2077,48 @@ void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function) return RIG_OK; } +int rig_get_caps_int(RIG *rig, enum rig_caps_int_e rig_caps) +{ + switch (rig_caps) + { + case RIG_CAPS_TARGETABLE_VFO: + return rig->caps->targetable_vfo; + + case RIG_CAPS_RIG_MODEL: + return rig->caps->rig_model; + + case RIG_CAPS_PTT_TYPE: + return rig->caps->ptt_type; + + case RIG_CAPS_PORT_TYPE: + return rig->caps->port_type; + + default: + rig_debug(RIG_DEBUG_ERR, "%s: Unknown rig_caps value=%d\n", __func__, rig_caps); + return -RIG_EINVAL; + } + + return RIG_OK; +} + +const char *rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps) +{ + switch (rig_caps) + { + case RIG_CAPS_VERSION: + return rig->caps->version; + case RIG_CAPS_MFG_NAME: + return rig->caps->mfg_name; + + case RIG_CAPS_MODEL_NAME: + return rig->caps->model_name; + + default: + rig_debug(RIG_DEBUG_ERR, "%s: Unknown rig_caps value=%d\n", __func__, rig_caps); + return "Unknown caps value"; + } +} //! @endcond commit 325dc8497b4df5920f3b4f879e110555b16a98b8 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 31 23:39:05 2020 -0600 Rename RIG_FUNCTION in misc.c https://github.com/Hamlib/Hamlib/issues/484 diff --git a/src/misc.c b/src/misc.c index fab7a03f..89aedd2a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1816,256 +1816,256 @@ void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function) { switch (rig_function) { - case RIG_FUNCTION_RIG_INIT: + case RIG_FUNCTION_INIT: return rig->caps->rig_init; - case RIG_FUNCTION_RIG_CLEANUP: + case RIG_FUNCTION_CLEANUP: return rig->caps->rig_cleanup; - case RIG_FUNCTION_RIG_OPEN: + case RIG_FUNCTION_OPEN: return rig->caps->rig_open; - case RIG_FUNCTION_RIG_CLOSE: + case RIG_FUNCTION_CLOSE: return rig->caps->rig_close; - case RIG_FUNCTION_RIG_SET_FREQ: + case RIG_FUNCTION_SET_FREQ: return rig->caps->set_freq; - case RIG_FUNCTION_RIG_GET_FREQ: + case RIG_FUNCTION_GET_FREQ: return rig->caps->get_freq; - case RIG_FUNCTION_RIG_SET_MODE: + case RIG_FUNCTION_SET_MODE: return rig->caps->set_mode; - case RIG_FUNCTION_RIG_GET_MODE: + case RIG_FUNCTION_GET_MODE: return rig->caps->get_mode; - case RIG_FUNCTION_RIG_SET_VFO: + case RIG_FUNCTION_SET_VFO: return rig->caps->set_vfo; - case RIG_FUNCTION_RIG_GET_VFO: + case RIG_FUNCTION_GET_VFO: return rig->caps->get_vfo; - case RIG_FUNCTION_RIG_SET_PTT: + case RIG_FUNCTION_SET_PTT: return rig->caps->set_ptt; - case RIG_FUNCTION_RIG_GET_PTT: + case RIG_FUNCTION_GET_PTT: return rig->caps->get_ptt; - case RIG_FUNCTION_RIG_GET_DCD: + case RIG_FUNCTION_GET_DCD: return rig->caps->get_dcd; - case RIG_FUNCTION_RIG_SET_RPTR_SHIFT: + case RIG_FUNCTION_SET_RPTR_SHIFT: return rig->caps->set_rptr_shift; - case RIG_FUNCTION_RIG_GET_RPTR_SHIFT: + case RIG_FUNCTION_GET_RPTR_SHIFT: return rig->caps->get_rptr_shift; - case RIG_FUNCTION_RIG_SET_RPTR_OFFS: + case RIG_FUNCTION_SET_RPTR_OFFS: return rig->caps->set_rptr_offs; - case RIG_FUNCTION_RIG_GET_RPTR_OFFS: + case RIG_FUNCTION_GET_RPTR_OFFS: return rig->caps->get_rptr_offs; - case RIG_FUNCTION_RIG_SET_SPLIT_FREQ: + case RIG_FUNCTION_SET_SPLIT_FREQ: return rig->caps->set_split_freq; - case RIG_FUNCTION_RIG_GET_SPLIT_FREQ: + case RIG_FUNCTION_GET_SPLIT_FREQ: return rig->caps->get_split_freq; - case RIG_FUNCTION_RIG_SET_SPLIT_MODE: + case RIG_FUNCTION_SET_SPLIT_MODE: return rig->caps->set_split_mode; - case RIG_FUNCTION_RIG_SET_SPLIT_FREQ_MODE: + case RIG_FUNCTION_SET_SPLIT_FREQ_MODE: return rig->caps->set_split_freq_mode; - case RIG_FUNCTION_RIG_GET_SPLIT_FREQ_MODE: + case RIG_FUNCTION_GET_SPLIT_FREQ_MODE: return rig->caps->get_split_freq_mode; - case RIG_FUNCTION_RIG_SET_SPLIT_VFO: + case RIG_FUNCTION_SET_SPLIT_VFO: return rig->caps->set_split_vfo; - case RIG_FUNCTION_RIG_GET_SPLIT_VFO: + case RIG_FUNCTION_GET_SPLIT_VFO: return rig->caps->get_split_vfo; - case RIG_FUNCTION_RIG_SET_RIT: + case RIG_FUNCTION_SET_RIT: return rig->caps->set_rit; - case RIG_FUNCTION_RIG_GET_RIT: + case RIG_FUNCTION_GET_RIT: return rig->caps->get_rit; - case RIG_FUNCTION_RIG_SET_XIT: + case RIG_FUNCTION_SET_XIT: return rig->caps->set_xit; - case RIG_FUNCTION_RIG_GET_XIT: + case RIG_FUNCTION_GET_XIT: return rig->caps->get_xit; - case RIG_FUNCTION_RIG_SET_TS: + case RIG_FUNCTION_SET_TS: return rig->caps->set_ts; - case RIG_FUNCTION_RIG_GET_TS: + case RIG_FUNCTION_GET_TS: return rig->caps->get_ts; - case RIG_FUNCTION_RIG_SET_DCS_CODE: + case RIG_FUNCTION_SET_DCS_CODE: return rig->caps->set_dcs_code; - case RIG_FUNCTION_RIG_GET_DCS_CODE: + case RIG_FUNCTION_GET_DCS_CODE: return rig->caps->get_dcs_code; - case RIG_FUNCTION_RIG_SET_TONE: + case RIG_FUNCTION_SET_TONE: return rig->caps->set_tone; - case RIG_FUNCTION_RIG_GET_TONE: + case RIG_FUNCTION_GET_TONE: return rig->caps->get_tone; - case RIG_FUNCTION_RIG_SET_CTCSS_TONE: + case RIG_FUNCTION_SET_CTCSS_TONE: return rig->caps->set_ctcss_tone; - case RIG_FUNCTION_RIG_GET_CTCSS_TONE: + case RIG_FUNCTION_GET_CTCSS_TONE: return rig->caps->get_ctcss_tone; - case RIG_FUNCTION_RIG_SET_DCS_SQL: + case RIG_FUNCTION_SET_DCS_SQL: return rig->caps->set_dcs_sql; - case RIG_FUNCTION_RIG_GET_DCS_SQL: + case RIG_FUNCTION_GET_DCS_SQL: return rig->caps->get_dcs_sql; - case RIG_FUNCTION_RIG_SET_TONE_SQL: + case RIG_FUNCTION_SET_TONE_SQL: return rig->caps->set_tone_sql; - case RIG_FUNCTION_RIG_GET_TONE_SQL: + case RIG_FUNCTION_GET_TONE_SQL: return rig->caps->get_tone_sql; - case RIG_FUNCTION_RIG_SET_CTCSS_SQL: + case RIG_FUNCTION_SET_CTCSS_SQL: return rig->caps->set_ctcss_sql; - case RIG_FUNCTION_RIG_GET_CTCSS_SQL: + case RIG_FUNCTION_GET_CTCSS_SQL: return rig->caps->get_ctcss_sql; - case RIG_FUNCTION_RIG_POWER2MW: + case RIG_FUNCTION_POWER2MW: return rig->caps->power2mW; - case RIG_FUNCTION_RIG_MW2POWER: + case RIG_FUNCTION_MW2POWER: return rig->caps->mW2power; - case RIG_FUNCTION_RIG_SET_POWERSTAT: + case RIG_FUNCTION_SET_POWERSTAT: return rig->caps->set_powerstat; - case RIG_FUNCTION_RIG_GET_POWERSTAT: + case RIG_FUNCTION_GET_POWERSTAT: return rig->caps->get_powerstat; - case RIG_FUNCTION_RIG_RESET: + case RIG_FUNCTION_RESET: return rig->caps->reset; - case RIG_FUNCTION_RIG_SET_ANT: + case RIG_FUNCTION_SET_ANT: return rig->caps->set_ant; - case RIG_FUNCTION_RIG_GET_ANT: + case RIG_FUNCTION_GET_ANT: return rig->caps->get_ant; - case RIG_FUNCTION_RIG_SET_LEVEL: + case RIG_FUNCTION_SET_LEVEL: return rig->caps->set_level; - case RIG_FUNCTION_RIG_GET_LEVEL: + case RIG_FUNCTION_GET_LEVEL: return rig->caps->get_level; - case RIG_FUNCTION_RIG_SET_FUNC: + case RIG_FUNCTION_SET_FUNC: return rig->caps->set_func; - case RIG_FUNCTION_RIG_GET_FUNC: + case RIG_FUNCTION_GET_FUNC: return rig->caps->get_func; - case RIG_FUNCTION_RIG_SET_PARM: + case RIG_FUNCTION_SET_PARM: return rig->caps->set_parm; - case RIG_FUNCTION_RIG_GET_PARM: + case RIG_FUNCTION_GET_PARM: return rig->caps->get_parm; - case RIG_FUNCTION_RIG_SET_EXT_LEVEL: + case RIG_FUNCTION_SET_EXT_LEVEL: return rig->caps->set_ext_level; - case RIG_FUNCTION_RIG_GET_EXT_LEVEL: + case RIG_FUNCTION_GET_EXT_LEVEL: return rig->caps->get_ext_level; - case RIG_FUNCTION_RIG_SET_EXT_FUNC: + case RIG_FUNCTION_SET_EXT_FUNC: return rig->caps->set_ext_func; - case RIG_FUNCTION_RIG_GET_EXT_FUNC: + case RIG_FUNCTION_GET_EXT_FUNC: return rig->caps->get_ext_func; - case RIG_FUNCTION_RIG_SET_EXT_PARM: + case RIG_FUNCTION_SET_EXT_PARM: return rig->caps->set_ext_parm; - case RIG_FUNCTION_RIG_GET_EXT_PARM: + case RIG_FUNCTION_GET_EXT_PARM: return rig->caps->get_ext_parm; - case RIG_FUNCTION_RIG_SET_CONF: + case RIG_FUNCTION_SET_CONF: return rig->caps->set_conf; - case RIG_FUNCTION_RIG_GET_CONF: + case RIG_FUNCTION_GET_CONF: return rig->caps->get_conf; - case RIG_FUNCTION_RIG_SEND_DTMF: + case RIG_FUNCTION_SEND_DTMF: return rig->caps->send_dtmf; - case RIG_FUNCTION_RIG_SEND_MORSE: + case RIG_FUNCTION_SEND_MORSE: return rig->caps->send_morse; - case RIG_FUNCTION_RIG_STOP_MORSE: + case RIG_FUNCTION_STOP_MORSE: return rig->caps->stop_morse; - case RIG_FUNCTION_RIG_WAIT_MORSE: + case RIG_FUNCTION_WAIT_MORSE: return rig->caps->wait_morse; - case RIG_FUNCTION_RIG_SEND_VOICE_MEM: + case RIG_FUNCTION_SEND_VOICE_MEM: return rig->caps->send_voice_mem; - case RIG_FUNCTION_RIG_SET_BANK: + case RIG_FUNCTION_SET_BANK: return rig->caps->set_bank; - case RIG_FUNCTION_RIG_SET_MEM: + case RIG_FUNCTION_SET_MEM: return rig->caps->set_mem; - case RIG_FUNCTION_RIG_GET_MEM: + case RIG_FUNCTION_GET_MEM: return rig->caps->get_mem; - case RIG_FUNCTION_RIG_VFO_OP: + case RIG_FUNCTION_VFO_OP: return rig->caps->vfo_op; - case RIG_FUNCTION_RIG_SCAN: + case RIG_FUNCTION_SCAN: return rig->caps->scan; - case RIG_FUNCTION_RIG_SET_TRN: + case RIG_FUNCTION_SET_TRN: return rig->caps->set_trn; - case RIG_FUNCTION_RIG_GET_TRN: + case RIG_FUNCTION_GET_TRN: return rig->caps->get_trn; - case RIG_FUNCTION_RIG_DECODE_EVENT: + case RIG_FUNCTION_DECODE_EVENT: return rig->caps->decode_event; - case RIG_FUNCTION_RIG_SET_CHANNEL: + case RIG_FUNCTION_SET_CHANNEL: return rig->caps->set_channel; - case RIG_FUNCTION_RIG_GET_CHANNEL: + case RIG_FUNCTION_GET_CHANNEL: return rig->caps->get_channel; - case RIG_FUNCTION_RIG_GET_INFO: + case RIG_FUNCTION_GET_INFO: return rig->caps->get_info; - case RIG_FUNCTION_RIG_SET_CHAN_ALL_CB: + case RIG_FUNCTION_SET_CHAN_ALL_CB: return rig->caps->set_chan_all_cb; - case RIG_FUNCTION_RIG_GET_CHAN_ALL_CB: + case RIG_FUNCTION_GET_CHAN_ALL_CB: return rig->caps->get_chan_all_cb; - case RIG_FUNCTION_RIG_SET_MEM_ALL_CB: + case RIG_FUNCTION_SET_MEM_ALL_CB: return rig->caps->set_mem_all_cb; - case RIG_FUNCTION_RIG_GET_MEM_ALL_CB: + case RIG_FUNCTION_GET_MEM_ALL_CB: return rig->caps->get_mem_all_cb; - case RIG_FUNCTION_RIG_SET_VFO_OPT: + case RIG_FUNCTION_SET_VFO_OPT: return rig->caps->set_vfo_opt; default: commit 671f2070eb1b317b2cf5d8b47eb46386edf26ba6 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 31 23:31:27 2020 -0600 Rename RIG_FUNCTION enums to shorten them up a bit https://github.com/Hamlib/Hamlib/issues/484 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 39f7d433..3fafa6b2 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1845,90 +1845,90 @@ struct rig_caps { //! @cond Doxygen_Suppress // all functions enumerated for rig_get_function_ptr enum rig_function_e { - RIG_FUNCTION_RIG_INIT, - RIG_FUNCTION_RIG_CLEANUP, - RIG_FUNCTION_RIG_OPEN, - RIG_FUNCTION_RIG_CLOSE, - RIG_FUNCTION_RIG_SET_FREQ, - RIG_FUNCTION_RIG_GET_FREQ, - RIG_FUNCTION_RIG_SET_MODE, - RIG_FUNCTION_RIG_GET_MODE, - RIG_FUNCTION_RIG_SET_VFO, - RIG_FUNCTION_RIG_GET_VFO, - RIG_FUNCTION_RIG_SET_PTT, - RIG_FUNCTION_RIG_GET_PTT, - RIG_FUNCTION_RIG_GET_DCD, - RIG_FUNCTION_RIG_SET_RPTR_SHIFT, - RIG_FUNCTION_RIG_GET_RPTR_SHIFT, - RIG_FUNCTION_RIG_SET_RPTR_OFFS, - RIG_FUNCTION_RIG_GET_RPTR_OFFS, - RIG_FUNCTION_RIG_SET_SPLIT_FREQ, - RIG_FUNCTION_RIG_GET_SPLIT_FREQ, - RIG_FUNCTION_RIG_SET_SPLIT_MODE, - RIG_FUNCTION_RIG_SET_SPLIT_FREQ_MODE, - RIG_FUNCTION_RIG_GET_SPLIT_FREQ_MODE, - RIG_FUNCTION_RIG_SET_SPLIT_VFO, - RIG_FUNCTION_RIG_GET_SPLIT_VFO, - RIG_FUNCTION_RIG_SET_RIT, - RIG_FUNCTION_RIG_GET_RIT, - RIG_FUNCTION_RIG_SET_XIT, - RIG_FUNCTION_RIG_GET_XIT, - RIG_FUNCTION_RIG_SET_TS, - RIG_FUNCTION_RIG_GET_TS, - RIG_FUNCTION_RIG_SET_DCS_CODE, - RIG_FUNCTION_RIG_GET_DCS_CODE, - RIG_FUNCTION_RIG_SET_TONE, - RIG_FUNCTION_RIG_GET_TONE, - RIG_FUNCTION_RIG_SET_CTCSS_TONE, - RIG_FUNCTION_RIG_GET_CTCSS_TONE, - RIG_FUNCTION_RIG_SET_DCS_SQL, - RIG_FUNCTION_RIG_GET_DCS_SQL, - RIG_FUNCTION_RIG_SET_TONE_SQL, - RIG_FUNCTION_RIG_GET_TONE_SQL, - RIG_FUNCTION_RIG_SET_CTCSS_SQL, - RIG_FUNCTION_RIG_GET_CTCSS_SQL, - RIG_FUNCTION_RIG_POWER2MW, - RIG_FUNCTION_RIG_MW2POWER, - RIG_FUNCTION_RIG_SET_POWERSTAT, - RIG_FUNCTION_RIG_GET_POWERSTAT, - RIG_FUNCTION_RIG_RESET, - RIG_FUNCTION_RIG_SET_ANT, - RIG_FUNCTION_RIG_GET_ANT, - RIG_FUNCTION_RIG_SET_LEVEL, - RIG_FUNCTION_RIG_GET_LEVEL, - RIG_FUNCTION_RIG_SET_FUNC, - RIG_FUNCTION_RIG_GET_FUNC, - RIG_FUNCTION_RIG_SET_PARM, - RIG_FUNCTION_RIG_GET_PARM, - RIG_FUNCTION_RIG_SET_EXT_LEVEL, - RIG_FUNCTION_RIG_GET_EXT_LEVEL, - RIG_FUNCTION_RIG_SET_EXT_FUNC, - RIG_FUNCTION_RIG_GET_EXT_FUNC, - RIG_FUNCTION_RIG_SET_EXT_PARM, - RIG_FUNCTION_RIG_GET_EXT_PARM, - RIG_FUNCTION_RIG_SET_CONF, - RIG_FUNCTION_RIG_GET_CONF, - RIG_FUNCTION_RIG_SEND_DTMF, - RIG_FUNCTION_RIG_SEND_MORSE, - RIG_FUNCTION_RIG_STOP_MORSE, - RIG_FUNCTION_RIG_WAIT_MORSE, - RIG_FUNCTION_RIG_SEND_VOICE_MEM, - RIG_FUNCTION_RIG_SET_BANK, - RIG_FUNCTION_RIG_SET_MEM, - RIG_FUNCTION_RIG_GET_MEM, - RIG_FUNCTION_RIG_VFO_OP, - RIG_FUNCTION_RIG_SCAN, - RIG_FUNCTION_RIG_SET_TRN, - RIG_FUNCTION_RIG_GET_TRN, - RIG_FUNCTION_RIG_DECODE_EVENT, - RIG_FUNCTION_RIG_SET_CHANNEL, - RIG_FUNCTION_RIG_GET_CHANNEL, - RIG_FUNCTION_RIG_GET_INFO, - RIG_FUNCTION_RIG_SET_CHAN_ALL_CB, - RIG_FUNCTION_RIG_GET_CHAN_ALL_CB, - RIG_FUNCTION_RIG_SET_MEM_ALL_CB, - RIG_FUNCTION_RIG_GET_MEM_ALL_CB, - RIG_FUNCTION_RIG_SET_VFO_OPT + RIG_FUNCTION_INIT, + RIG_FUNCTION_CLEANUP, + RIG_FUNCTION_OPEN, + RIG_FUNCTION_CLOSE, + RIG_FUNCTION_SET_FREQ, + RIG_FUNCTION_GET_FREQ, + RIG_FUNCTION_SET_MODE, + RIG_FUNCTION_GET_MODE, + RIG_FUNCTION_SET_VFO, + RIG_FUNCTION_GET_VFO, + RIG_FUNCTION_SET_PTT, + RIG_FUNCTION_GET_PTT, + RIG_FUNCTION_GET_DCD, + RIG_FUNCTION_SET_RPTR_SHIFT, + RIG_FUNCTION_GET_RPTR_SHIFT, + RIG_FUNCTION_SET_RPTR_OFFS, + RIG_FUNCTION_GET_RPTR_OFFS, + RIG_FUNCTION_SET_SPLIT_FREQ, + RIG_FUNCTION_GET_SPLIT_FREQ, + RIG_FUNCTION_SET_SPLIT_MODE, + RIG_FUNCTION_SET_SPLIT_FREQ_MODE, + RIG_FUNCTION_GET_SPLIT_FREQ_MODE, + RIG_FUNCTION_SET_SPLIT_VFO, + RIG_FUNCTION_GET_SPLIT_VFO, + RIG_FUNCTION_SET_RIT, + RIG_FUNCTION_GET_RIT, + RIG_FUNCTION_SET_XIT, + RIG_FUNCTION_GET_XIT, + RIG_FUNCTION_SET_TS, + RIG_FUNCTION_GET_TS, + RIG_FUNCTION_SET_DCS_CODE, + RIG_FUNCTION_GET_DCS_CODE, + RIG_FUNCTION_SET_TONE, + RIG_FUNCTION_GET_TONE, + RIG_FUNCTION_SET_CTCSS_TONE, + RIG_FUNCTION_GET_CTCSS_TONE, + RIG_FUNCTION_SET_DCS_SQL, + RIG_FUNCTION_GET_DCS_SQL, + RIG_FUNCTION_SET_TONE_SQL, + RIG_FUNCTION_GET_TONE_SQL, + RIG_FUNCTION_SET_CTCSS_SQL, + RIG_FUNCTION_GET_CTCSS_SQL, + RIG_FUNCTION_POWER2MW, + RIG_FUNCTION_MW2POWER, + RIG_FUNCTION_SET_POWERSTAT, + RIG_FUNCTION_GET_POWERSTAT, + RIG_FUNCTION_RESET, + RIG_FUNCTION_SET_ANT, + RIG_FUNCTION_GET_ANT, + RIG_FUNCTION_SET_LEVEL, + RIG_FUNCTION_GET_LEVEL, + RIG_FUNCTION_SET_FUNC, + RIG_FUNCTION_GET_FUNC, + RIG_FUNCTION_SET_PARM, + RIG_FUNCTION_GET_PARM, + RIG_FUNCTION_SET_EXT_LEVEL, + RIG_FUNCTION_GET_EXT_LEVEL, + RIG_FUNCTION_SET_EXT_FUNC, + RIG_FUNCTION_GET_EXT_FUNC, + RIG_FUNCTION_SET_EXT_PARM, + RIG_FUNCTION_GET_EXT_PARM, + RIG_FUNCTION_SET_CONF, + RIG_FUNCTION_GET_CONF, + RIG_FUNCTION_SEND_DTMF, + RIG_FUNCTION_SEND_MORSE, + RIG_FUNCTION_STOP_MORSE, + RIG_FUNCTION_WAIT_MORSE, + RIG_FUNCTION_SEND_VOICE_MEM, + RIG_FUNCTION_SET_BANK, + RIG_FUNCTION_SET_MEM, + RIG_FUNCTION_GET_MEM, + RIG_FUNCTION_VFO_OP, + RIG_FUNCTION_SCAN, + RIG_FUNCTION_SET_TRN, + RIG_FUNCTION_GET_TRN, + RIG_FUNCTION_DECODE_EVENT, + RIG_FUNCTION_SET_CHANNEL, + RIG_FUNCTION_GET_CHANNEL, + RIG_FUNCTION_GET_INFO, + RIG_FUNCTION_SET_CHAN_ALL_CB, + RIG_FUNCTION_GET_CHAN_ALL_CB, + RIG_FUNCTION_SET_MEM_ALL_CB, + RIG_FUNCTION_GET_MEM_ALL_CB, + RIG_FUNCTION_SET_VFO_OPT }; /** commit f7ff96fec85a831ee4f33f163c0a58b58fc9ca70 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 31 23:05:54 2020 -0600 Adding rig_get_function to replace use of rig->caps->set_vfo and such https://github.com/Hamlib/Hamlib/issues/484 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 3650026e..39f7d433 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1838,6 +1838,105 @@ struct rig_caps { }; //! @endcond +/** + * \brief Enumeration of all rig_ functions + * + */ +//! @cond Doxygen_Suppress +// all functions enumerated for rig_get_function_ptr +enum rig_function_e { + RIG_FUNCTION_RIG_INIT, + RIG_FUNCTION_RIG_CLEANUP, + RIG_FUNCTION_RIG_OPEN, + RIG_FUNCTION_RIG_CLOSE, + RIG_FUNCTION_RIG_SET_FREQ, + RIG_FUNCTION_RIG_GET_FREQ, + RIG_FUNCTION_RIG_SET_MODE, + RIG_FUNCTION_RIG_GET_MODE, + RIG_FUNCTION_RIG_SET_VFO, + RIG_FUNCTION_RIG_GET_VFO, + RIG_FUNCTION_RIG_SET_PTT, + RIG_FUNCTION_RIG_GET_PTT, + RIG_FUNCTION_RIG_GET_DCD, + RIG_FUNCTION_RIG_SET_RPTR_SHIFT, + RIG_FUNCTION_RIG_GET_RPTR_SHIFT, + RIG_FUNCTION_RIG_SET_RPTR_OFFS, + RIG_FUNCTION_RIG_GET_RPTR_OFFS, + RIG_FUNCTION_RIG_SET_SPLIT_FREQ, + RIG_FUNCTION_RIG_GET_SPLIT_FREQ, + RIG_FUNCTION_RIG_SET_SPLIT_MODE, + RIG_FUNCTION_RIG_SET_SPLIT_FREQ_MODE, + RIG_FUNCTION_RIG_GET_SPLIT_FREQ_MODE, + RIG_FUNCTION_RIG_SET_SPLIT_VFO, + RIG_FUNCTION_RIG_GET_SPLIT_VFO, + RIG_FUNCTION_RIG_SET_RIT, + RIG_FUNCTION_RIG_GET_RIT, + RIG_FUNCTION_RIG_SET_XIT, + RIG_FUNCTION_RIG_GET_XIT, + RIG_FUNCTION_RIG_SET_TS, + RIG_FUNCTION_RIG_GET_TS, + RIG_FUNCTION_RIG_SET_DCS_CODE, + RIG_FUNCTION_RIG_GET_DCS_CODE, + RIG_FUNCTION_RIG_SET_TONE, + RIG_FUNCTION_RIG_GET_TONE, + RIG_FUNCTION_RIG_SET_CTCSS_TONE, + RIG_FUNCTION_RIG_GET_CTCSS_TONE, + RIG_FUNCTION_RIG_SET_DCS_SQL, + RIG_FUNCTION_RIG_GET_DCS_SQL, + RIG_FUNCTION_RIG_SET_TONE_SQL, + RIG_FUNCTION_RIG_GET_TONE_SQL, + RIG_FUNCTION_RIG_SET_CTCSS_SQL, + RIG_FUNCTION_RIG_GET_CTCSS_SQL, + RIG_FUNCTION_RIG_POWER2MW, + RIG_FUNCTION_RIG_MW2POWER, + RIG_FUNCTION_RIG_SET_POWERSTAT, + RIG_FUNCTION_RIG_GET_POWERSTAT, + RIG_FUNCTION_RIG_RESET, + RIG_FUNCTION_RIG_SET_ANT, + RIG_FUNCTION_RIG_GET_ANT, + RIG_FUNCTION_RIG_SET_LEVEL, + RIG_FUNCTION_RIG_GET_LEVEL, + RIG_FUNCTION_RIG_SET_FUNC, + RIG_FUNCTION_RIG_GET_FUNC, + RIG_FUNCTION_RIG_SET_PARM, + RIG_FUNCTION_RIG_GET_PARM, + RIG_FUNCTION_RIG_SET_EXT_LEVEL, + RIG_FUNCTION_RIG_GET_EXT_LEVEL, + RIG_FUNCTION_RIG_SET_EXT_FUNC, + RIG_FUNCTION_RIG_GET_EXT_FUNC, + RIG_FUNCTION_RIG_SET_EXT_PARM, + RIG_FUNCTION_RIG_GET_EXT_PARM, + RIG_FUNCTION_RIG_SET_CONF, + RIG_FUNCTION_RIG_GET_CONF, + RIG_FUNCTION_RIG_SEND_DTMF, + RIG_FUNCTION_RIG_SEND_MORSE, + RIG_FUNCTION_RIG_STOP_MORSE, + RIG_FUNCTION_RIG_WAIT_MORSE, + RIG_FUNCTION_RIG_SEND_VOICE_MEM, + RIG_FUNCTION_RIG_SET_BANK, + RIG_FUNCTION_RIG_SET_MEM, + RIG_FUNCTION_RIG_GET_MEM, + RIG_FUNCTION_RIG_VFO_OP, + RIG_FUNCTION_RIG_SCAN, + RIG_FUNCTION_RIG_SET_TRN, + RIG_FUNCTION_RIG_GET_TRN, + RIG_FUNCTION_RIG_DECODE_EVENT, + RIG_FUNCTION_RIG_SET_CHANNEL, + RIG_FUNCTION_RIG_GET_CHANNEL, + RIG_FUNCTION_RIG_GET_INFO, + RIG_FUNCTION_RIG_SET_CHAN_ALL_CB, + RIG_FUNCTION_RIG_GET_CHAN_ALL_CB, + RIG_FUNCTION_RIG_SET_MEM_ALL_CB, + RIG_FUNCTION_RIG_GET_MEM_ALL_CB, + RIG_FUNCTION_RIG_SET_VFO_OPT +}; + +/** + * \brief Function to return pointer to rig_* function + * + */ +//! @cond Doxygen_Suppress +extern void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function); /** * \brief Port definition diff --git a/src/misc.c b/src/misc.c index fa023d5b..fab7a03f 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1807,6 +1807,277 @@ const char *HAMLIB_API rot_strstatus(rot_status_t status) return ""; } +/** + * \brief Get pointer to rig function instead of using rig->caps + * \param RIG* and rig_function_e + * \return the corresponding function pointer + */ +void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function) +{ + switch (rig_function) + { + case RIG_FUNCTION_RIG_INIT: + return rig->caps->rig_init; + + case RIG_FUNCTION_RIG_CLEANUP: + return rig->caps->rig_cleanup; + + case RIG_FUNCTION_RIG_OPEN: + return rig->caps->rig_open; + + case RIG_FUNCTION_RIG_CLOSE: + return rig->caps->rig_close; + + case RIG_FUNCTION_RIG_SET_FREQ: + return rig->caps->set_freq; + + case RIG_FUNCTION_RIG_GET_FREQ: + return rig->caps->get_freq; + + case RIG_FUNCTION_RIG_SET_MODE: + return rig->caps->set_mode; + + case RIG_FUNCTION_RIG_GET_MODE: + return rig->caps->get_mode; + + case RIG_FUNCTION_RIG_SET_VFO: + return rig->caps->set_vfo; + + case RIG_FUNCTION_RIG_GET_VFO: + return rig->caps->get_vfo; + + case RIG_FUNCTION_RIG_SET_PTT: + return rig->caps->set_ptt; + + case RIG_FUNCTION_RIG_GET_PTT: + return rig->caps->get_ptt; + + case RIG_FUNCTION_RIG_GET_DCD: + return rig->caps->get_dcd; + + case RIG_FUNCTION_RIG_SET_RPTR_SHIFT: + return rig->caps->set_rptr_shift; + + case RIG_FUNCTION_RIG_GET_RPTR_SHIFT: + return rig->caps->get_rptr_shift; + + case RIG_FUNCTION_RIG_SET_RPTR_OFFS: + return rig->caps->set_rptr_offs; + + case RIG_FUNCTION_RIG_GET_RPTR_OFFS: + return rig->caps->get_rptr_offs; + + case RIG_FUNCTION_RIG_SET_SPLIT_FREQ: + return rig->caps->set_split_freq; + + case RIG_FUNCTION_RIG_GET_SPLIT_FREQ: + return rig->caps->get_split_freq; + + case RIG_FUNCTION_RIG_SET_SPLIT_MODE: + return rig->caps->set_split_mode; + + case RIG_FUNCTION_RIG_SET_SPLIT_FREQ_MODE: + return rig->caps->set_split_freq_mode; + + case RIG_FUNCTION_RIG_GET_SPLIT_FREQ_MODE: + return rig->caps->get_split_freq_mode; + + case RIG_FUNCTION_RIG_SET_SPLIT_VFO: + return rig->caps->set_split_vfo; + + case RIG_FUNCTION_RIG_GET_SPLIT_VFO: + return rig->caps->get_split_vfo; + + case RIG_FUNCTION_RIG_SET_RIT: + return rig->caps->set_rit; + + case RIG_FUNCTION_RIG_GET_RIT: + return rig->caps->get_rit; + + case RIG_FUNCTION_RIG_SET_XIT: + return rig->caps->set_xit; + + case RIG_FUNCTION_RIG_GET_XIT: + return rig->caps->get_xit; + + case RIG_FUNCTION_RIG_SET_TS: + return rig->caps->set_ts; + + case RIG_FUNCTION_RIG_GET_TS: + return rig->caps->get_ts; + + case RIG_FUNCTION_RIG_SET_DCS_CODE: + return rig->caps->set_dcs_code; + + case RIG_FUNCTION_RIG_GET_DCS_CODE: + return rig->caps->get_dcs_code; + + case RIG_FUNCTION_RIG_SET_TONE: + return rig->caps->set_tone; + + case RIG_FUNCTION_RIG_GET_TONE: + return rig->caps->get_tone; + + case RIG_FUNCTION_RIG_SET_CTCSS_TONE: + return rig->caps->set_ctcss_tone; + + case RIG_FUNCTION_RIG_GET_CTCSS_TONE: + return rig->caps->get_ctcss_tone; + + case RIG_FUNCTION_RIG_SET_DCS_SQL: + return rig->caps->set_dcs_sql; + + case RIG_FUNCTION_RIG_GET_DCS_SQL: + return rig->caps->get_dcs_sql; + + case RIG_FUNCTION_RIG_SET_TONE_SQL: + return rig->caps->set_tone_sql; + + case RIG_FUNCTION_RIG_GET_TONE_SQL: + return rig->caps->get_tone_sql; + + case RIG_FUNCTION_RIG_SET_CTCSS_SQL: + return rig->caps->set_ctcss_sql; + + case RIG_FUNCTION_RIG_GET_CTCSS_SQL: + return rig->caps->get_ctcss_sql; + + case RIG_FUNCTION_RIG_POWER2MW: + return rig->caps->power2mW; + + case RIG_FUNCTION_RIG_MW2POWER: + return rig->caps->mW2power; + + case RIG_FUNCTION_RIG_SET_POWERSTAT: + return rig->caps->set_powerstat; + + case RIG_FUNCTION_RIG_GET_POWERSTAT: + return rig->caps->get_powerstat; + + case RIG_FUNCTION_RIG_RESET: + return rig->caps->reset; + + case RIG_FUNCTION_RIG_SET_ANT: + return rig->caps->set_ant; + + case RIG_FUNCTION_RIG_GET_ANT: + return rig->caps->get_ant; + + case RIG_FUNCTION_RIG_SET_LEVEL: + return rig->caps->set_level; + + case RIG_FUNCTION_RIG_GET_LEVEL: + return rig->caps->get_level; + + case RIG_FUNCTION_RIG_SET_FUNC: + return rig->caps->set_func; + + case RIG_FUNCTION_RIG_GET_FUNC: + return rig->caps->get_func; + + case RIG_FUNCTION_RIG_SET_PARM: + return rig->caps->set_parm; + + case RIG_FUNCTION_RIG_GET_PARM: + return rig->caps->get_parm; + + case RIG_FUNCTION_RIG_SET_EXT_LEVEL: + return rig->caps->set_ext_level; + + case RIG_FUNCTION_RIG_GET_EXT_LEVEL: + return rig->caps->get_ext_level; + + case RIG_FUNCTION_RIG_SET_EXT_FUNC: + return rig->caps->set_ext_func; + + case RIG_FUNCTION_RIG_GET_EXT_FUNC: + return rig->caps->get_ext_func; + + case RIG_FUNCTION_RIG_SET_EXT_PARM: + return rig->caps->set_ext_parm; + + case RIG_FUNCTION_RIG_GET_EXT_PARM: + return rig->caps->get_ext_parm; + + case RIG_FUNCTION_RIG_SET_CONF: + return rig->caps->set_conf; + + case RIG_FUNCTION_RIG_GET_CONF: + return rig->caps->get_conf; + + case RIG_FUNCTION_RIG_SEND_DTMF: + return rig->caps->send_dtmf; + + case RIG_FUNCTION_RIG_SEND_MORSE: + return rig->caps->send_morse; + + case RIG_FUNCTION_RIG_STOP_MORSE: + return rig->caps->stop_morse; + + case RIG_FUNCTION_RIG_WAIT_MORSE: + return rig->caps->wait_morse; + + case RIG_FUNCTION_RIG_SEND_VOICE_MEM: + return rig->caps->send_voice_mem; + + case RIG_FUNCTION_RIG_SET_BANK: + return rig->caps->set_bank; + + case RIG_FUNCTION_RIG_SET_MEM: + return rig->caps->set_mem; + + case RIG_FUNCTION_RIG_GET_MEM: + return rig->caps->get_mem; + + case RIG_FUNCTION_RIG_VFO_OP: + return rig->caps->vfo_op; + + case RIG_FUNCTION_RIG_SCAN: + return rig->caps->scan; + + case RIG_FUNCTION_RIG_SET_TRN: + return rig->caps->set_trn; + + case RIG_FUNCTION_RIG_GET_TRN: + return rig->caps->get_trn; + + case RIG_FUNCTION_RIG_DECODE_EVENT: + return rig->caps->decode_event; + + case RIG_FUNCTION_RIG_SET_CHANNEL: + return rig->caps->set_channel; + + case RIG_FUNCTION_RIG_GET_CHANNEL: + return rig->caps->get_channel; + + case RIG_FUNCTION_RIG_GET_INFO: + return rig->caps->get_info; + + case RIG_FUNCTION_RIG_SET_CHAN_ALL_CB: + return rig->caps->set_chan_all_cb; + + case RIG_FUNCTION_RIG_GET_CHAN_ALL_CB: + return rig->caps->get_chan_all_cb; + + case RIG_FUNCTION_RIG_SET_MEM_ALL_CB: + return rig->caps->set_mem_all_cb; + + case RIG_FUNCTION_RIG_GET_MEM_ALL_CB: + return rig->caps->get_mem_all_cb; + + case RIG_FUNCTION_RIG_SET_VFO_OPT: + return rig->caps->set_vfo_opt; + + default: + rig_debug(RIG_DEBUG_ERR, "Unknown function?? function=%d\n", rig_function); + return NULL; + + } + + return RIG_OK; +} + + //! @endcond commit 44c1645785ca9f178a578c418f85624c992a3904 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 31 14:24:22 2020 -0600 Fix PowerSDR STRENGTH diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index 539d3b25..2b183e62 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -1967,7 +1967,8 @@ static int flrig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) switch (level) { case RIG_LEVEL_STRENGTH: - val->i = atoi(value); + val->i = atoi(value) - 54; + //if (val->i > 0) val->i /= 10; rig_debug(RIG_DEBUG_TRACE, "%s: val.i='%s'(%d)\n", __func__, value, val->i); break; diff --git a/rigs/kenwood/flex6xxx.c b/rigs/kenwood/flex6xxx.c index 3b9c3ced..f6ebb384 100644 --- a/rigs/kenwood/flex6xxx.c +++ b/rigs/kenwood/flex6xxx.c @@ -53,7 +53,7 @@ #define POWERSDR_FUNC_ALL (RIG_FUNC_VOX|RIG_FUNC_SQL|RIG_FUNC_NB|RIG_FUNC_ANF|RIG_FUNC_MUTE|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_TUNER) -#define POWERSDR_LEVEL_ALL (RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_KEYSPD|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_MICGAIN|RIG_LEVEL_VOXGAIN|RIG_LEVEL_SQL|RIG_LEVEL_AF|RIG_LEVEL_AGC|RIG_LEVEL_RF|RIG_LEVEL_IF) +#define POWERSDR_LEVEL_ALL (RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_KEYSPD|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_MICGAIN|RIG_LEVEL_VOXGAIN|RIG_LEVEL_SQL|RIG_LEVEL_AF|RIG_LEVEL_AGC|RIG_LEVEL_RF|RIG_LEVEL_IF|RIG_LEVEL_STRENGTH) static rmode_t flex_mode_table[KENWOOD_MODE_TABLE_MAX] = @@ -739,6 +739,7 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) rmode_t mode; pbwidth_t width; ptt_t ptt; + double dval; rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -773,6 +774,20 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) ans = 4; break; + case RIG_LEVEL_STRENGTH: + flex6k_get_ptt(rig, vfo, &ptt); + + if (ptt) // not applicable if transmitting + { + val->f = 0; + return RIG_OK; + } + + cmd = "ZZRM0"; + len = 5; + ans = 9; + break; + case RIG_LEVEL_RFPOWER_METER: case RIG_LEVEL_RFPOWER_METER_WATTS: flex6k_get_ptt(rig, vfo, &ptt); @@ -810,7 +825,7 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return kenwood_get_level(rig, vfo, level, val); } - retval = kenwood_safe_transaction(rig, cmd, lvlbuf, 10, len + ans); + retval = kenwood_safe_transaction(rig, cmd, lvlbuf, sizeof(lvlbuf), len + ans); if (retval != RIG_OK) { @@ -845,6 +860,21 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; + case RIG_LEVEL_STRENGTH: + n = sscanf(lvlbuf, "ZZRM0%lf", &dval); + + if (n != 1) + { + rig_debug(RIG_DEBUG_ERR, "%s: Error parsing value from lvlbuf='%s'\n", + __func__, lvlbuf); + val->i = 0; + return -RIG_EPROTO; + } + + val->i = dval + 73; // dbm to S9-based=0dB + break; + + case RIG_LEVEL_AF: case RIG_LEVEL_RFPOWER_METER: case RIG_LEVEL_RFPOWER_METER_WATTS: @@ -1162,7 +1192,7 @@ const struct rig_caps powersdr_caps = RIG_MODEL(RIG_MODEL_POWERSDR), .model_name = "PowerSDR/Thetis", .mfg_name = "FlexRadio/ANAN", - .version = "20201227.0", + .version = "20201231.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 73370375..2f3609b4 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -598,6 +598,8 @@ int kenwood_safe_transaction(RIG *rig, const char *cmd, char *buf, do { size_t length; + // some PowerSDR commands have variable len + int checklen = !RIG_IS_POWERSDR; err = kenwood_transaction(rig, cmd, buf, buf_size); if (err != RIG_OK) /* return immediately on error as any @@ -608,7 +610,7 @@ int kenwood_safe_transaction(RIG *rig, const char *cmd, char *buf, length = strlen(buf); - if (length != expected) /* worth retrying as some rigs + if (checklen && length != expected) /* worth retrying as some rigs occasionally send short results */ { rig_debug(RIG_DEBUG_ERR, @@ -637,7 +639,8 @@ rmode_t kenwood2rmode(unsigned char mode, const rmode_t mode_table[]) char rmode2kenwood(rmode_t mode, const rmode_t mode_table[]) { - rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=%s\n", __func__, rig_strrmode(mode)); + rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=%s\n", __func__, + rig_strrmode(mode)); if (mode != RIG_MODE_NONE) { @@ -1840,7 +1843,8 @@ int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) struct kenwood_priv_caps *caps = kenwood_caps(rig); - rig_debug(RIG_DEBUG_VERBOSE, "%s called, vfo=%s, mode=%s, width=%d\n", __func__, rig_strvfo(vfo), rig_strrmode(mode), (int)width); + rig_debug(RIG_DEBUG_VERBOSE, "%s called, vfo=%s, mode=%s, width=%d\n", __func__, + rig_strvfo(vfo), rig_strrmode(mode), (int)width); if (RIG_IS_TS590S || RIG_IS_TS590SG || RIG_IS_TS950S || RIG_IS_TS950SDX) { @@ -1892,6 +1896,7 @@ int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { c = 'A' + kmode - 10; } + rig_debug(RIG_DEBUG_VERBOSE, "%s: kmode=%d, cmode=%c\n", __func__, kmode, c); if (RIG_IS_TS990S) diff --git a/rigs/kenwood/kenwood.h b/rigs/kenwood/kenwood.h index 7816efff..7382156d 100644 --- a/rigs/kenwood/kenwood.h +++ b/rigs/kenwood/kenwood.h @@ -27,7 +27,7 @@ #include <string.h> #include "token.h" -#define BACKEND_VER "20201214" +#define BACKEND_VER "20201231" #define EOM_KEN ';' #define EOM_TH '\r' ----------------------------------------------------------------------- Summary of changes: NEWS | 7 ++ include/hamlib/rig.h | 132 ++++++++++++++++++++ rigs/dummy/flrig.c | 3 +- rigs/kenwood/flex6xxx.c | 36 +++++- rigs/kenwood/kenwood.c | 11 +- rigs/kenwood/kenwood.h | 2 +- src/misc.c | 312 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 495 insertions(+), 8 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |