diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index e06fa8049..e8e35435d 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -307,6 +307,21 @@ typedef enum { RIG_FLAG_TUNER = (1 << 11) /*!< dumb tuner */ } rig_type_t; +/** + * \brief AGC delay settings + */ +/* TODO: kill me, and replace by real AGC delay */ +enum agc_level_e { + RIG_AGC_OFF = 0, + RIG_AGC_SUPERFAST, + RIG_AGC_FAST, + RIG_AGC_SLOW, + RIG_AGC_USER, /*!< user selectable */ + RIG_AGC_MEDIUM, + RIG_AGC_AUTO +}; + + //! @cond Doxygen_Suppress #define RIG_FLAG_TRANSCEIVER (RIG_FLAG_RECEIVER|RIG_FLAG_TRANSMITTER) #define RIG_TYPE_MASK (RIG_FLAG_TRANSCEIVER|RIG_FLAG_SCANNER|RIG_FLAG_MOBILE|RIG_FLAG_HANDHELD|RIG_FLAG_COMPUTER|RIG_FLAG_TRUNKING|RIG_FLAG_TUNER) @@ -836,20 +851,6 @@ typedef unsigned int ant_t; #define RIG_ANT_MAX 32 -/** - * \brief AGC delay settings - */ -/* TODO: kill me, and replace by real AGC delay */ -enum agc_level_e { - RIG_AGC_OFF = 0, - RIG_AGC_SUPERFAST, - RIG_AGC_FAST, - RIG_AGC_SLOW, - RIG_AGC_USER, /*!< user selectable */ - RIG_AGC_MEDIUM, - RIG_AGC_AUTO -}; - //! @cond Doxygen_Suppress #define RIG_AGC_LAST RIG_AGC_AUTO //! @endcond @@ -3188,6 +3189,8 @@ extern HAMLIB_EXPORT(const char *) rig_strfunc(setting_t); extern HAMLIB_EXPORT(const char *) rig_strlevel(setting_t); extern HAMLIB_EXPORT(const char *) rig_strparm(setting_t); extern HAMLIB_EXPORT(const char *) rig_stragclevel(enum agc_level_e level); +extern HAMLIB_EXPORT(enum agc_level_e) rig_levelagcstr (char *agcString); +extern HAMLIB_EXPORT(enum agc_level_e) rig_levelagcvalue (int agcValue); extern HAMLIB_EXPORT(const char *) rig_strptrshift(rptr_shift_t); extern HAMLIB_EXPORT(const char *) rig_strvfop(vfo_op_t op); extern HAMLIB_EXPORT(const char *) rig_strscan(scan_t scan); diff --git a/macros/ax_python_devel.m4 b/macros/ax_python_devel.m4 old mode 100755 new mode 100644 diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index c12e353ce..3ff57e890 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -768,6 +768,14 @@ static int netrigctl_open(RIG *rig) rig_debug(RIG_DEBUG_TRACE, "%s: timeout value = '%s', final timeout=%d\n", __func__, value, rig->caps->timeout); } + else if (strcmp(setting, "rig_model") == 0) + { + rig_debug(RIG_DEBUG_TRACE, "%s: rig_model=%s\n", __func__, value); + } + else if (strcmp(setting, "rigctld_version") == 0) + { + rig_debug(RIG_DEBUG_TRACE, "%s: rigctld_version=%s\n", __func__, value); + } else if (strcmp(setting, "ctcss_list") == 0) { int n; diff --git a/simulators/simkenwood.c b/simulators/simkenwood.c index d8b80e3f7..7ed635f4b 100644 --- a/simulators/simkenwood.c +++ b/simulators/simkenwood.c @@ -12,6 +12,7 @@ float freqA = 14074000; float freqB = 14074500; int filternum = 7; +int datamode = 0; // ID 0310 == 310, Must drop leading zero typedef enum nc_rigid_e @@ -233,9 +234,15 @@ int main(int argc, char *argv[]) { sscanf(buf, "FL%d", &filternum); } - - - + else if (strncmp(buf, "DA;", 3) == 0) + { + sprintf(buf, "DA%d;", datamode); + write(fd, buf, strlen(buf)); + } + else if (strncmp(buf, "DA", 2) == 0) + { + sscanf(buf, "DA%d", &datamode); + } else if (strlen(buf) > 0) { fprintf(stderr, "Unknown command: %s\n", buf); diff --git a/src/misc.c b/src/misc.c index fda00c223..a9e34970a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1293,6 +1293,57 @@ const char *HAMLIB_API rig_stragclevel(enum agc_level_e level) return ""; } +/** + * \brief Convert a value to agc_level_e -- constrains the range + * \param integer... + * \return agc_level_e + */ +enum agc_level_e levelagcvalue(int agcValue) +{ + enum agc_level_e agcLevel; + + switch (agcValue) + { + case 0: agcLevel = RIG_AGC_OFF; break; + + case 1: agcLevel = RIG_AGC_SUPERFAST; break; + + case 2: agcLevel = RIG_AGC_FAST; break; + + case 3: agcLevel = RIG_AGC_SLOW; break; + + case 4: agcLevel = RIG_AGC_USER; break; + + case 5: agcLevel = RIG_AGC_MEDIUM; break; + + case 6: agcLevel = RIG_AGC_AUTO; break; + + default: agcLevel = RIG_AGC_AUTO; break; + } + + return agcLevel; +} + +/** + * \brief Convert AGC string... to agc_level_e + * \param mode AGC string... + * \return agc_level_e + */ +enum agc_level_e levelagcstr(char *agcString) +{ + enum agc_level_e agcLevel; + + if (strcmp(agcString, "OFF") == 0) { agcLevel = RIG_AGC_OFF; } + else if (strcmp(agcString, "SUPERFAST") == 0) { agcLevel = RIG_AGC_SUPERFAST; } + else if (strcmp(agcString, "FAST") == 0) { agcLevel = RIG_AGC_FAST; } + else if (strcmp(agcString, "SLOW") == 0) { agcLevel = RIG_AGC_SLOW; } + else if (strcmp(agcString, "USER") == 0) { agcLevel = RIG_AGC_USER; } + else if (strcmp(agcString, "MEDIUM") == 0) { agcLevel = RIG_AGC_MEDIUM; } + else { agcLevel = RIG_AGC_AUTO; } + + return agcLevel; +} + static const struct { @@ -2485,7 +2536,8 @@ char *date_strget(char *buf, int buflen, int localtime) gettimeofday(&tv, NULL); snprintf(tmpbuf, sizeof(tmpbuf), "%06ld", (long)tv.tv_usec); strcat(buf, tmpbuf); - snprintf(tmpbuf, sizeof(tmpbuf), "%s%04d", mytimezone >=0? "-":"+", ((int)abs(mytimezone)/3600)*100); + snprintf(tmpbuf, sizeof(tmpbuf), "%s%04d", mytimezone >= 0 ? "-" : "+", + ((int)abs(mytimezone) / 3600) * 100); strcat(buf, tmpbuf); return buf; } diff --git a/src/misc.h b/src/misc.h index 27d618b37..b533a957b 100644 --- a/src/misc.h +++ b/src/misc.h @@ -119,7 +119,7 @@ extern HAMLIB_EXPORT(int) parse_hoststr(char *hoststr, char host[256], char port extern HAMLIB_EXPORT(uint32_t) CRC32_function(uint8_t *buf, uint32_t len); -extern char *date_strget(char *buf, int buflen, int localtime); +extern HAMLIB_EXPORT(char *)date_strget(char *buf, int buflen, int localtime); #ifdef PRId64 /** \brief printf(3) format to be used for long long (64bits) type */ diff --git a/src/rig.c b/src/rig.c index 6f3004595..b49301daa 100644 --- a/src/rig.c +++ b/src/rig.c @@ -2731,10 +2731,10 @@ int HAMLIB_API rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) retcode = ser_set_dtr(&rig->state.pttport, ptt != RIG_PTT_OFF); + rig_debug(RIG_DEBUG_TRACE, "%s: rigport=%s, pttport=%s, ptt_share=%d\n", __func__, rs->pttport.pathname, rs->rigport.pathname, rs->ptt_share); if (strcmp(rs->pttport.pathname, rs->rigport.pathname) && ptt == RIG_PTT_OFF && rs->ptt_share != 0) { - rig_debug(RIG_DEBUG_TRACE, "%s: ptt_share=%d\n", __func__, rs->ptt_share); /* free the port */ ser_close(&rs->pttport); } @@ -2778,10 +2778,10 @@ int HAMLIB_API rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) retcode = ser_set_rts(&rig->state.pttport, ptt != RIG_PTT_OFF); + rig_debug(RIG_DEBUG_TRACE, "%s: rigport=%s, pttport=%s, ptt_share=%d\n", __func__, rs->pttport.pathname, rs->rigport.pathname, rs->ptt_share); if (strcmp(rs->pttport.pathname, rs->rigport.pathname) && ptt == RIG_PTT_OFF && rs->ptt_share != 0) { - rig_debug(RIG_DEBUG_TRACE, "%s: ptt_share=%d\n", __func__, rs->ptt_share); /* free the port */ ser_close(&rs->pttport); } diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 0875ac531..c40b859c3 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -4365,6 +4365,8 @@ declare_proto_rig(dump_state) fprintf(fout, "has_power2mW=%d\n", rig->caps->power2mW != NULL); fprintf(fout, "has_mW2power=%d\n", rig->caps->mW2power != NULL); fprintf(fout, "timeout=%d\n", rig->caps->timeout); + fprintf(fout, "rig_model=%d\n", rig->caps->rig_model); + fprintf(fout, "rigctld_version=%s\n", hamlib_version2); if (rig->caps->ctcss_list) {