hamlib-cvs-digest Mailing List for Ham Radio Control Libraries (Page 18)
Library to control radio transceivers and receivers
Brought to you by:
n0nb
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(57) |
Nov
(27) |
Dec
(25) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(41) |
Feb
(101) |
Mar
(60) |
Apr
(32) |
May
(32) |
Jun
(198) |
Jul
(95) |
Aug
(60) |
Sep
(48) |
Oct
(96) |
Nov
(27) |
Dec
(222) |
2002 |
Jan
(180) |
Feb
(46) |
Mar
(68) |
Apr
(11) |
May
(36) |
Jun
(34) |
Jul
(113) |
Aug
(42) |
Sep
(71) |
Oct
(65) |
Nov
(116) |
Dec
(40) |
2003 |
Jan
(32) |
Feb
(92) |
Mar
(29) |
Apr
(102) |
May
(21) |
Jun
(34) |
Jul
(3) |
Aug
(60) |
Sep
(30) |
Oct
(62) |
Nov
(57) |
Dec
(33) |
2004 |
Jan
(28) |
Feb
(46) |
Mar
(16) |
Apr
(14) |
May
(31) |
Jun
(21) |
Jul
(10) |
Aug
(80) |
Sep
(42) |
Oct
(11) |
Nov
(28) |
Dec
(13) |
2005 |
Jan
(35) |
Feb
(26) |
Mar
(20) |
Apr
(118) |
May
(2) |
Jun
(5) |
Jul
|
Aug
|
Sep
(5) |
Oct
(1) |
Nov
(13) |
Dec
(1) |
2006 |
Jan
(9) |
Feb
(25) |
Mar
(22) |
Apr
(6) |
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(3) |
Oct
(46) |
Nov
(13) |
Dec
(7) |
2007 |
Jan
(9) |
Feb
(14) |
Mar
(3) |
Apr
|
May
(6) |
Jun
(1) |
Jul
|
Aug
(11) |
Sep
(7) |
Oct
(8) |
Nov
(41) |
Dec
(3) |
2008 |
Jan
(27) |
Feb
(16) |
Mar
(13) |
Apr
(23) |
May
(39) |
Jun
(4) |
Jul
(7) |
Aug
(1) |
Sep
(13) |
Oct
(52) |
Nov
(44) |
Dec
(55) |
2009 |
Jan
(72) |
Feb
(69) |
Mar
|
Apr
|
May
|
Jun
(13) |
Jul
(1) |
Aug
(6) |
Sep
(15) |
Oct
(11) |
Nov
(31) |
Dec
(20) |
2010 |
Jan
(24) |
Feb
(21) |
Mar
(22) |
Apr
(40) |
May
(38) |
Jun
(4) |
Jul
(2) |
Aug
(22) |
Sep
(19) |
Oct
(14) |
Nov
(5) |
Dec
(8) |
2011 |
Jan
(14) |
Feb
(36) |
Mar
(6) |
Apr
|
May
|
Jun
(23) |
Jul
(13) |
Aug
(8) |
Sep
(7) |
Oct
|
Nov
(3) |
Dec
(9) |
2012 |
Jan
(17) |
Feb
(13) |
Mar
(10) |
Apr
|
May
(1) |
Jun
(14) |
Jul
(4) |
Aug
(12) |
Sep
(2) |
Oct
(24) |
Nov
(14) |
Dec
(2) |
2013 |
Jan
(4) |
Feb
(3) |
Mar
(3) |
Apr
(3) |
May
(10) |
Jun
(4) |
Jul
(7) |
Aug
|
Sep
(15) |
Oct
(5) |
Nov
(1) |
Dec
(2) |
2014 |
Jan
|
Feb
(8) |
Mar
(1) |
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
(7) |
Nov
(6) |
Dec
(3) |
2015 |
Jan
(4) |
Feb
(5) |
Mar
(8) |
Apr
(8) |
May
(2) |
Jun
|
Jul
(4) |
Aug
(7) |
Sep
(8) |
Oct
|
Nov
(6) |
Dec
(4) |
2016 |
Jan
(6) |
Feb
(26) |
Mar
(3) |
Apr
(10) |
May
(6) |
Jun
(5) |
Jul
(1) |
Aug
(4) |
Sep
(3) |
Oct
(4) |
Nov
(3) |
Dec
(10) |
2017 |
Jan
(11) |
Feb
(11) |
Mar
(2) |
Apr
(1) |
May
(7) |
Jun
(2) |
Jul
(11) |
Aug
(9) |
Sep
(5) |
Oct
(5) |
Nov
(1) |
Dec
(2) |
2018 |
Jan
(5) |
Feb
(2) |
Mar
(19) |
Apr
(7) |
May
(11) |
Jun
(3) |
Jul
(4) |
Aug
(10) |
Sep
(2) |
Oct
(8) |
Nov
(6) |
Dec
(9) |
2019 |
Jan
(9) |
Feb
(6) |
Mar
(2) |
Apr
(4) |
May
(6) |
Jun
(9) |
Jul
(6) |
Aug
(3) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(9) |
2020 |
Jan
(15) |
Feb
(1) |
Mar
(18) |
Apr
(33) |
May
(43) |
Jun
(87) |
Jul
(45) |
Aug
(8) |
Sep
(43) |
Oct
(3) |
Nov
(5) |
Dec
(42) |
2021 |
Jan
(116) |
Feb
(40) |
Mar
(58) |
Apr
(48) |
May
(29) |
Jun
(2) |
Jul
|
Aug
(22) |
Sep
(18) |
Oct
(1) |
Nov
|
Dec
(3) |
2022 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
(6) |
Nov
(2) |
Dec
(9) |
2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(10) |
May
(3) |
Jun
(1) |
Jul
(2) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(2) |
Dec
(3) |
2024 |
Jan
(4) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(9) |
2025 |
Jan
(5) |
Feb
(5) |
Mar
|
Apr
(10) |
May
(20) |
Jun
(43) |
Jul
(24) |
Aug
(20) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Nate B. <n0...@us...> - 2021-02-08 02:13:32
|
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 bc17a749d0bc133fe80f94c0e4fe4ab7a4835072 (commit) via da5662dce350ab1e2331e7286041aef9c865bdba (commit) from e7f5aa60664d8f39fdb20ba6c2e4f2431e583ca2 (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 bc17a749d0bc133fe80f94c0e4fe4ab7a4835072 Merge: e7f5aa60 da5662dc Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 20:12:25 2021 -0600 Merge pull request #534 from N0NB/doxygen_work Enable and update Doxygen comments in amplist.h commit da5662dce350ab1e2331e7286041aef9c865bdba Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 20:10:50 2021 -0600 Enable and update Doxygen comments in amplist.h diff --git a/include/hamlib/amplist.h b/include/hamlib/amplist.h index 42808d83..b8d094d8 100644 --- a/include/hamlib/amplist.h +++ b/include/hamlib/amplist.h @@ -27,6 +27,7 @@ //! @cond Doxygen_Suppress #define AMP_MAKE_MODEL(a,b) ((a)*100+(b)) #define AMP_BACKEND_NUM(a) ((a)/100) +//! @endcond /** @@ -38,41 +39,48 @@ * \file amplist.h * \brief Hamlib amplifier model definitions. * - * This file contains amplifier model definitions for the Hamlib amplifier API. - * Each distinct amplifier type has a unique model number (ID) and is used by - * hamlib to identify and distinguish between the different hardware drivers. - * The exact model numbers can be acquired using the macros in this file. To - * obtain a list of supported amplifier branches, one can use the statically - * defined AMP_BACKEND_LIST macro. To obtain a full list of supported - * amplifiers (including each model in every branch), the foreach_opened_amp() - * API function can be used. + * This file contains amplifier model definitions for the Hamlib amplifier + * Application Programming Interface (API). Each distinct amplifier type has + * a unique model number (ID) and is used by Hamlib to identify and + * distinguish between the different hardware drivers. The exact model + * numbers can be acquired using the macros in this file. To obtain a list of + * supported amplifier branches, one can use the statically defined + * AMP_BACKEND_LIST macro. To obtain a full list of supported amplifiers + * (including each model in every branch), the foreach_opened_amp() API + * function can be used. * * The model number, or ID, is used to tell Hamlib which amplifier the client - * whishes to use. It is done with the amp_init() API call. + * wishes to use. It is done with the amp_init() API call. */ +//! @cond Doxygen_Suppress #define AMP_MODEL_NONE 0 +//! @endcond +/* + * Hamlib + */ /** * \def AMP_MODEL_DUMMY * \brief A macro that returns the model number for the dummy backend. * - * The dummy backend, as the name suggests, is a backend which performs - * no hardware operations and always behaves as one would expect. It can - * be thought of as a hardware simulator and is very useful for testing - * client applications. - */ -/** + * The dummy backend, as the name suggests, is a backend which performs no + * hardware operations and always behaves as one would expect. It can be + * thought of as a hardware simulator and is very useful for testing client + * applications. + * * \def AMP_MODEL_NETAMPCTL - * \brief A macro that returns the model number for the Network backend. + * \brief A macro that returns the model number for the netampctl backend. * * This backend allows use of the ampctld daemon through the normal * Hamlib API. */ +//! @cond Doxygen_Suppress #define AMP_DUMMY 0 #define AMP_BACKEND_DUMMY "dummy" +//! @endcond #define AMP_MODEL_DUMMY AMP_MAKE_MODEL(AMP_DUMMY, 1) #define AMP_MODEL_NETAMPCTL AMP_MAKE_MODEL(AMP_DUMMY, 2) @@ -82,24 +90,25 @@ */ /** - * \def AMP_MODEL_ELECRAFT - * \brief A macro that returns the model number of the EasyComm 1 backend. + * \def AMP_MODEL_ELECRAFT_KPA1500 + * \brief A macro that returns the model number of the kpa1500 backend. * - * The Elecraft #1 backend can be used with amplifiers that support the - * KPA1500 protocol. + * The kpa1500 backend can be used with amplifiers that support the Elecraft + * KPA-1500 protocol. */ +//! @cond Doxygen_Suppress #define AMP_ELECRAFT 2 #define AMP_BACKEND_ELECRAFT "elecraft" +//! @endcond #define AMP_MODEL_ELECRAFT_KPA1500 AMP_MAKE_MODEL(AMP_ELECRAFT, 1) //#define AMP_MODEL_ELECRAFT_KPA500 AMP_MAKE_MODEL(AMP_ELECRAFT, 2) /** * \typedef typedef int amp_model_t * \brief Convenience type definition for amplifier model. -*/ + */ typedef int amp_model_t; -//! @endcond #endif /* _AMPLIST_H */ ----------------------------------------------------------------------- Summary of changes: include/hamlib/amplist.h | 53 ++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 22 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-08 01:00:30
|
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 e7f5aa60664d8f39fdb20ba6c2e4f2431e583ca2 (commit) via 07fa93bf43dcedd7c0566bec9db205844007bba5 (commit) from b05a1638a858ea94228f8017750537573845ee7f (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 e7f5aa60664d8f39fdb20ba6c2e4f2431e583ca2 Merge: b05a1638 07fa93bf Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 18:59:42 2021 -0600 Merge pull request #532 from N0NB/doxygen_work Update Doxygen comment sections in amplifier.c commit 07fa93bf43dcedd7c0566bec9db205844007bba5 Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 18:56:24 2021 -0600 Update Doxygen comment sections in amplifier.c diff --git a/src/amplifier.c b/src/amplifier.c index abb796d3..bf2eecf1 100644 --- a/src/amplifier.c +++ b/src/amplifier.c @@ -2,6 +2,7 @@ * Hamlib Interface - main file * Copyright (c) 2000-2012 by Stephane Fillod * Copyright (c) 2000-2003 by Frank Singleton + * Copyright (C) 2019-2020 by Michael Black * * * This library is free software; you can redistribute it and/or @@ -30,16 +31,21 @@ * \brief Amplifier interface * \author Stephane Fillod * \date 2000-2012 + * \author Frank Singleton + * \date 2000-2003 + * \author Michael Black + * \date 2019-2020 * - * Hamlib interface is a frontend implementing amplifier wrapper functions. + * This Hamlib interface is a frontend implementing the amplifier wrapper + * functions. */ /** * \page amp Amplifier interface * - * Amplifier can be any kind of azimuth or azimuth and elevation controlled - * antenna system. + * An amplifier can be any kind of external power amplifier that is capable of + * CAT type control. */ #ifdef HAVE_CONFIG_H @@ -163,14 +169,14 @@ int foreach_opened_amp(int (*cfunc)(AMP *, rig_ptr_t), rig_ptr_t data) /** - * \brief allocate a new #AMP handle - * \param amp_model The amp model for this new handle + * \brief Allocate a new #AMP handle + * \param amp_model The amplifier model for this new handle * * Allocates a new #AMP handle and initializes the associated data - * for \a amp_model. + * for \a amp_model (see amplist.h or `ampctl -l`). * - * \return a pointer to the #AMP handle otherwise NULL if memory allocation - * failed or \a amp_model is unknown (e.g. backend autoload failed). + * \return Pointer to the #AMP handle otherwise NULL if memory allocation + * failed or \a amp_model is unknown, e.g. backend autoload failed. * * \sa amp_cleanup(), amp_open() */ @@ -273,17 +279,17 @@ AMP *HAMLIB_API amp_init(amp_model_t amp_model) /** - * \brief open the communication to the amp - * \param amp The #AMP handle of the amplifier to be opened + * \brief Open the communication channel to the amplifier. + * \param amp The #AMP handle of the amplifier to be opened * - * Opens communication to a amplifier which \a AMP handle has been passed - * by argument. + * Opens the communication channel to an amplifier for which the #AMP handle + * has been passed. * - * \return RIG_OK if the operation has been successful, otherwise - * a negative value if an error occurred (in which case, cause is - * set appropriately). + * \return RIG_OK if the operation has been successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). * - * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_OK Communication channel succesfully opened. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. * * \sa amp_init(), amp_close() */ @@ -407,15 +413,18 @@ int HAMLIB_API amp_open(AMP *amp) /** - * \brief close the communication to the amp - * \param amp The #AMP handle of the amplifier to be closed + * \brief Close the communication channel to the amplifier. + * \param amp The #AMP handle of the amplifier to be closed. * - * Closes communication to a amplifier which \a AMP handle has been passed - * by argument that was previously open with amp_open(). + * Closes the communication channel to an amplifier for which the #AMP + * handle has been passed by argument that was previously opened with + * amp_open(). * - * \return RIG_OK if the operation has been successful, otherwise - * a negative value if an error occurred (in which case, cause is - * set appropriately). + * \return RIG_OK if the operation has been successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK Communication channel successfully closed. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. * * \sa amp_cleanup(), amp_open() */ @@ -486,15 +495,17 @@ int HAMLIB_API amp_close(AMP *amp) /** - * \brief release a amp handle and free associated memory - * \param amp The #AMP handle of the radio to be closed + * \brief Release an #AMP handle and free associated memory. + * \param amp The #AMP handle to be released. + * + * Releases an #AMP handle for which the communications channel has been + * closed with amp_close(). * - * Releases a amp struct which port has eventually been closed already - * with amp_close(). + * \return RIG_OK if the operation has been successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). * - * \return RIG_OK if the operation has been successful, otherwise - * a negative value if an error occurred (in which case, cause is - * set appropriately). + * \retval RIG_OK #AMP handle successfully released. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. * * \sa amp_init(), amp_close() */ @@ -528,17 +539,20 @@ int HAMLIB_API amp_cleanup(AMP *amp) return RIG_OK; } + /** - * \brief reset the amplifier - * \param amp The amp handle - * \param reset The reset operation to perform + * \brief Reset the amplifier + * \param amp The #AMP handle + * \param reset The reset operation to perform. * - * Resets the amplifier. + * Perform a reset of the amplifier. * - * \return RIG_OK if the operation has been successful, otherwise - * a negative value if an error occurred (in which case, cause is - * set appropriately). + * \return RIG_OK if the operation has been successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). * + * \retval RIG_OK The reset command was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#reset() capability is not available. */ int HAMLIB_API amp_reset(AMP *amp, amp_reset_t reset) { @@ -560,9 +574,24 @@ int HAMLIB_API amp_reset(AMP *amp, amp_reset_t reset) return caps->reset(amp, reset); } -//! @endcond -//! @cond Doxygen_Suppress + +/** + * \brief Query the operating frequency of the amplifier. + * \param amp The #AMP handle. + * \param freq The variable to store the operating frequency. + * + * Retrieves the operating frequency from the amplifier. + * + * \return RIG_OK if the operation was successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK The query was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#get_freq() capability is not available. + * + * \sa amp_set_freq() + */ int HAMLIB_API amp_get_freq(AMP *amp, freq_t *freq) { const struct amp_caps *caps; @@ -583,9 +612,25 @@ int HAMLIB_API amp_get_freq(AMP *amp, freq_t *freq) return caps->get_freq(amp, freq); } -//! @endcond -//! @cond Doxygen_Suppress + +/** + * \brief Set the operating frequency of the amplifier. + * \param amp The #AMP handle. + * \param freq The operating frequency. + * + * Set the operating frequency of the amplifier. Depending on the amplifier + * this may simply set the bandpass filters, etc. + * + * \return RIG_OK if the operation was successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK Setting the frequency was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#set_freq() capability is not available. + * + * \sa amp_get_freq() + */ int HAMLIB_API amp_set_freq(AMP *amp, freq_t freq) { const struct amp_caps *caps; @@ -606,18 +651,18 @@ int HAMLIB_API amp_set_freq(AMP *amp, freq_t freq) return caps->set_freq(amp, freq); } -//! @endcond + /** - * \brief get general information from the amplifier - * \param amp The amp handle + * \brief Query general information from the amplifier. + * \param amp The #AMP handle. * - * Retrieves some general information from the amplifier. - * This can include firmware revision, exact model name, or just nothing. + * Retrieves some general information from the amplifier. This can include + * firmware revision, exact model name, or just nothing. * - * \return a pointer to static memory containing the ASCIIZ string - * if the operation has been successful, otherwise NULL if an error occurred - * or get_info not part of capabilities. + * \return A pointer to static memory containing an ASCII nul terminated + * string (C string) if the operation has been successful, otherwise NULL if + * an error occurred or the amp_caps#get_info() capability is not available. */ const char *HAMLIB_API amp_get_info(AMP *amp) { @@ -636,7 +681,24 @@ const char *HAMLIB_API amp_get_info(AMP *amp) return amp->caps->get_info(amp); } -//! @cond Doxygen_Suppress + +/** + * \brief Query the value of a requested level. + * \param amp The #AMP handle. + * \param level The requested level. + * \param val The variable to store the \a level value. + * + * Query the \a val corresponding to the \a level. + * + * \return RIG_OK if the operation was successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK The query was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#get_level() capability is not available. + * + * \sa amp_get_ext_level() + */ int HAMLIB_API amp_get_level(AMP *amp, setting_t level, value_t *val) { amp_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -653,9 +715,25 @@ int HAMLIB_API amp_get_level(AMP *amp, setting_t level, value_t *val) return amp->caps->get_level(amp, level, val); } -//! @endcond -//! @cond Doxygen_Suppress + +/** + * \brief Query the value of a requested extra level token. + * \param amp The #AMP handle. + * \param level The requested extra level token. + * \param val The variable to store the extra \a level token value. + * + * Query the \a val corresponding to the extra \a level token. + * + * \return RIG_OK if the operation was successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK The query was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#get_ext_level() capability is not available. + * + * \sa amp_get_level() + */ int HAMLIB_API amp_get_ext_level(AMP *amp, token_t level, value_t *val) { amp_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -672,24 +750,26 @@ int HAMLIB_API amp_get_ext_level(AMP *amp, token_t level, value_t *val) return amp->caps->get_ext_level(amp, level, val); } -//! @endcond + /** - * \brief turn on/off the amplifier or standby/operate toggle - * \param amp The amp handle - * \param status The status to set to + * \brief Turn the amplifier On or Off or toggle the Standby or Operate status. + * \param amp The #AMP handle + * \param status The #powerstat_t setting. * - * turns on/off the amplifier. - * See #RIG_POWER_ON, #RIG_POWER_OFF and #RIG_POWER_STANDBY #RIG_POWER_OPERATE defines - * for the \a status. + * Turns the amplifier On or Off or toggles the Standby or Operate status. + * See #RIG_POWER_ON, #RIG_POWER_OFF and #RIG_POWER_OPERATE, + * #RIG_POWER_STANDBY for the value of \a status. * - * \return RIG_OK if the operation has been successful, ortherwise - * a negative value if an error occurred (in which case, cause is - * set appropriately). + * \return RIG_OK if the operation was successful, otherwise a **negative + * value** if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK The requested power/standby state was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#set_powerstat() capability is not available. * * \sa amp_get_powerstat() */ - int HAMLIB_API amp_set_powerstat(AMP *amp, powerstat_t status) { amp_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -707,7 +787,25 @@ int HAMLIB_API amp_set_powerstat(AMP *amp, powerstat_t status) return amp->caps->set_powerstat(amp, status); } -//! @cond Doxygen_Suppress + +/** + * \brief Query the power or standby status of the amplifier. + * \param amp The #AMP handle. + * \param status The variable to store the amplifier \a status. + * + * Query the amplifier's power or standby condition. The value stored in + * \a status will be one of #RIG_POWER_ON, #RIG_POWER_OFF and + * #RIG_POWER_OPERATE, #RIG_POWER_STANDBY, or #RIG_POWER_UNKNOWN. + * + *\return RIG_OK if the query was successful, otherwise a **negative value** + * if an error occurred (in which case, cause is set appropriately). + * + * \retval RIG_OK Querying the power/standby state was successful. + * \retval RIG_EINVAL \a amp is NULL or inconsistent. + * \retval RIG_ENAVAIL amp_caps#get_powerstat() capability is not available. + * + * \sa amp_set_powerstat() + */ int HAMLIB_API amp_get_powerstat(AMP *amp, powerstat_t *status) { amp_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -724,7 +822,6 @@ int HAMLIB_API amp_get_powerstat(AMP *amp, powerstat_t *status) return amp->caps->get_powerstat(amp, status); } -//! @endcond /*! @} */ ----------------------------------------------------------------------- Summary of changes: src/amplifier.c | 227 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 162 insertions(+), 65 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-07 21:04:17
|
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 b05a1638a858ea94228f8017750537573845ee7f (commit) via e0e743ee9043ba8f11a6a953e15aa84d7204118e (commit) via 418e963c863cc009d0459ab345005f41a4327d02 (commit) via 3a25f54f744341c58cdf8a85f9f9e63cacad84ec (commit) via ed25ac943dab61e4a83e74354cbf8d79233e92f4 (commit) from 1caa4ca328d98ff3071a508ff25ae9084d291869 (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 b05a1638a858ea94228f8017750537573845ee7f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 15:03:43 2021 -0600 Add caching of MEM and MAINC vfos diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index af26c134..508fd2c3 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -2080,6 +2080,7 @@ struct rig_cache { freq_t freqMainC; // VFO_C, VFO_MAINC freq_t freqSubA; // VFO_SUBA -- only for rigs with dual Sub VFOs freq_t freqSubB; // VFO_SUBB -- only for rigs with dual Sub VFOs + freq_t freqMem; // VFO_MEM -- last MEM channel #if 0 // future freq_t freqSubC; // VFO_SUBC -- only for rigs with 3 Sub VFOs #endif @@ -2095,6 +2096,7 @@ struct rig_cache { struct timespec time_freqMainC; struct timespec time_freqSubA; struct timespec time_freqSubB; + struct timespec time_freqMem; struct timespec time_vfo; struct timespec time_mode; struct timespec time_ptt; diff --git a/src/rig.c b/src/rig.c index c11f6437..4629f781 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1394,13 +1394,10 @@ static int set_cache_freq(RIG *rig, vfo_t vfo, freq_t freq) elapsed_ms(&rig->state.cache.time_freqMainB, HAMLIB_ELAPSED_SET); break; -#if 0 - case RIG_VFO_C: // is there a MainC/SubC we need to cover? rig->state.cache.freqMainC = freq; elapsed_ms(&rig->state.cache.time_freqMainC, HAMLIB_ELAPSED_SET); break; -#endif case RIG_VFO_SUB_A: rig->state.cache.freqSubA = freq; @@ -1412,6 +1409,11 @@ static int set_cache_freq(RIG *rig, vfo_t vfo, freq_t freq) elapsed_ms(&rig->state.cache.time_freqSubB, HAMLIB_ELAPSED_SET); break; + case RIG_VFO_MEM: + rig->state.cache.freqMem = freq; + elapsed_ms(&rig->state.cache.time_freqMem, HAMLIB_ELAPSED_SET); + break; + default: rig_debug(RIG_DEBUG_ERR, "%s: unknown vfo?, vfo=%s\n", __func__, rig_strvfo(vfo)); @@ -1460,20 +1462,24 @@ static int get_cache_freq(RIG *rig, vfo_t vfo, freq_t *freq, int *cache_ms) *cache_ms = elapsed_ms(&rig->state.cache.time_freqSubB, HAMLIB_ELAPSED_GET); break; -#if 0 // future - case RIG_VFO_C: - case RIG_VFO_MAINC: + //case RIG_VFO_MAINC: // not used by any rig yet *freq = rig->state.cache.freqMainC; - *cache_ms = rig->state.cache.time_freqMainC; + *cache_ms = elapsed_ms(&rig->state.cache.time_freqMainC, HAMLIB_ELAPSED_GET); break; +#if 0 // no known rigs use this yet case RIG_VFO_SUBC: *freq = rig->state.cache.freqSubC; *cache_ms = rig->state.cache.time_freqSubC; break; #endif + case RIG_VFO_MEM: + *freq = rig->state.cache.freqMem; + *cache_ms = elapsed_ms(&rig->state.cache.time_freqMem, HAMLIB_ELAPSED_GET); + break; + default: rig_debug(RIG_DEBUG_ERR, "%s: unknown vfo?, vfo=%s\n", __func__, rig_strvfo(vfo)); commit e0e743ee9043ba8f11a6a953e15aa84d7204118e Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 14:58:33 2021 -0600 Update rig.c docs diff --git a/src/rig.c b/src/rig.c index c85ac212..c11f6437 100644 --- a/src/rig.c +++ b/src/rig.c @@ -5554,6 +5554,9 @@ const char *HAMLIB_API rig_get_info(RIG *rig) * \brief get freq/mode/width for requested VFO * \param rig The rig handle * \param vfo The VFO to get + * \param *freq frequency answer + * \param *mode mode answer + * \param *width bandwidth answer * * Gets the current VFO information. The VFO can be RIG_VFO_A, RIG_VFO_B, RIG_VFO_C * for VFOA, VFOB, VFOC respectively or RIG_VFO_MEM for Memory mode. commit 418e963c863cc009d0459ab345005f41a4327d02 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 12:45:59 2021 -0600 Add \get_vfo_info to rigctl and rigctld to allow geting freq/mode/width by vfo in one call Overcomes limitation of f command where vfo swapping is needed if not in --vfo mode rig_get_vfo_info function added Log4OM should be able to get VFOB frequency on most rigs https://github.com/Hamlib/Hamlib/issues/530 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 276a872e..af26c134 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1966,7 +1966,7 @@ enum rig_caps_cptr_e { * */ //! @cond Doxygen_Suppress -extern int rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps); +extern long rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps); /** * \brief Function to return char pointer value from rig->caps @@ -2308,6 +2308,10 @@ extern HAMLIB_EXPORT(int) rig_get_vfo HAMLIB_PARAMS((RIG *rig, vfo_t *vfo)); +extern HAMLIB_EXPORT(int) +rig_get_vfo_info HAMLIB_PARAMS((RIG *rig, + vfo_t vfo, freq_t *freq, rmode_t *mode, pbwidth_t *width)); + extern HAMLIB_EXPORT(int) netrigctl_get_vfo_mode HAMLIB_PARAMS((RIG *rig)); @@ -2783,6 +2787,11 @@ rig_set_vfo_callback HAMLIB_PARAMS((RIG *, vfo_cb_t, rig_ptr_t)); +extern HAMLIB_EXPORT(int) +rig_get_vfo_info_callback HAMLIB_PARAMS((RIG *, + vfo_cb_t, + rig_ptr_t)); + extern HAMLIB_EXPORT(int) rig_set_ptt_callback HAMLIB_PARAMS((RIG *, ptt_cb_t, @@ -2944,6 +2953,7 @@ extern HAMLIB_EXPORT(int) rig_get_cache_timeout_ms(RIG *rig, hamlib_cache_t sele extern HAMLIB_EXPORT(int) rig_set_cache_timeout_ms(RIG *rig, hamlib_cache_t selection, int ms); extern HAMLIB_EXPORT(int) rig_set_vfo_opt(RIG *rig, int status); +extern HAMLIB_EXPORT(int) rig_get_vfo_info(RIG *rig, vfo_t vfo, freq_t *freq, rmode_t *mode, pbwidth_t *width); typedef unsigned long rig_useconds_t; diff --git a/src/misc.c b/src/misc.c index b8c2a66e..45619c6f 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2140,8 +2140,13 @@ void *rig_get_function_ptr(rig_model_t rig_model, } // negative return indicates error -// watch out for integer values that may be negative -int rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps) +/** + * \brief Get integer/long instead of using rig->caps + * watch out for integer values that may be negative -- if needed must change hamlib + * \param RIG* and rig_caps_int_e + * \return the corresponding long value -- -RIG_EINVAL is the only error possible + */ +long rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps) { const struct rig_caps *caps = rig_get_caps(rig_model); diff --git a/src/rig.c b/src/rig.c index 65b594b4..c85ac212 100644 --- a/src/rig.c +++ b/src/rig.c @@ -5550,6 +5550,37 @@ const char *HAMLIB_API rig_get_info(RIG *rig) RETURNFUNC(rig->caps->get_info(rig)); } +/** + * \brief get freq/mode/width for requested VFO + * \param rig The rig handle + * \param vfo The VFO to get + * + * Gets the current VFO information. The VFO can be RIG_VFO_A, RIG_VFO_B, RIG_VFO_C + * for VFOA, VFOB, VFOC respectively or RIG_VFO_MEM for Memory mode. + * Supported VFOs depends on rig capabilities. + * + * \RETURNFUNC(RIG_OK) if the operation has been successful, otherwise + * a negative value if an error occurred (in which case use rigerror(return) + * for error message). + * + */ +int HAMLIB_API rig_get_vfo_info(RIG *rig, vfo_t vfo, freq_t *freq, rmode_t *mode, pbwidth_t *width) +{ + int retcode; + + ENTERFUNC; + rig_debug(RIG_DEBUG_VERBOSE, "%s called vfo=%s\n", __func__, rig_strvfo(vfo)); + + if (CHECK_RIG_ARG(rig)) + { + RETURNFUNC(-RIG_EINVAL); + } + + retcode = rig_get_freq(rig,vfo,freq); + if (retcode != RIG_OK) RETURNFUNC(retcode); + retcode = rig_get_mode(rig,vfo,mode,width); + RETURNFUNC(retcode); +} /** * \brief get the Hamlib license diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 2b39527b..363500e4 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -166,6 +166,7 @@ declare_proto_rig(set_mode); declare_proto_rig(get_mode); declare_proto_rig(set_vfo); declare_proto_rig(get_vfo); +declare_proto_rig(get_vfo_info); declare_proto_rig(set_ptt); declare_proto_rig(get_ptt); declare_proto_rig(get_ptt); @@ -330,6 +331,7 @@ static struct test_table test_list[] = { 0x8f, "dump_state", ACTION(dump_state), ARG_OUT | ARG_NOVFO }, { 0xf0, "chk_vfo", ACTION(chk_vfo), ARG_NOVFO, "ChkVFO" }, /* rigctld only--check for VFO mode */ { 0xf2, "set_vfo_opt", ACTION(set_vfo_opt), ARG_NOVFO | ARG_IN, "Status" }, /* turn vfo option on/off */ + { 0xf3, "get_vfo_info", ACTION(get_vfo_info), ARG_NOVFO | ARG_IN1 | ARG_OUT3, "VFO", "Freq", "Mode", "Width" }, /* turn vfo option on/off */ { 0xf1, "halt", ACTION(halt), ARG_NOVFO }, /* rigctld only--halt the daemon */ { 0x8c, "pause", ACTION(pause), ARG_IN, "Seconds" }, { 0x00, "", NULL }, @@ -2180,6 +2182,40 @@ declare_proto_rig(get_vfo) return status; } +/* '\get_vfo_info' */ +declare_proto_rig(get_vfo_info) +{ + int retval; + + ENTERFUNC; + if (!strcmp(arg1, "?")) + { + char s[SPRINTF_MAX_SIZE]; + rig_sprintf_vfo(s, rig->state.vfo_list); + fprintf(fout, "%s\n", s); + return RIG_OK; + } + + vfo = rig_parse_vfo(arg1); + freq_t freq=0; + rmode_t mode=RIG_MODE_NONE; + pbwidth_t width = 0; + retval = rig_get_vfo_info(rig, vfo, &freq, &mode, &width); + + rig_debug(RIG_DEBUG_ERR,"%s: vfo=%s\n", __func__, rig_strvfo(vfo)); + if ((interactive && prompt) || (interactive && !prompt && ext_resp)) + { + fprintf(fout,"%s: %.0f\n", cmd->arg1, freq); + fprintf(fout,"%s: %s\n", cmd->arg2, rig_strrmode(mode)); + fprintf(fout,"%s: %d\n", cmd->arg3, (int)width); + } + else + { + fprintf(fout,"%.0f\n%s\n%d\n", freq, rig_strrmode(mode), (int)width); + } + RETURNFUNC(retval); +} + /* 'T' */ declare_proto_rig(set_ptt) commit 3a25f54f744341c58cdf8a85f9f9e63cacad84ec Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 12:19:52 2021 -0600 Fix rot_dummy.c -- now behaves with gpredict tracking https://github.com/Hamlib/Hamlib/issues/531 diff --git a/rigs/dummy/rot_dummy.c b/rigs/dummy/rot_dummy.c index f4bea07a..c9af6ff8 100644 --- a/rigs/dummy/rot_dummy.c +++ b/rigs/dummy/rot_dummy.c @@ -260,8 +260,8 @@ static int dummy_rot_set_position(ROT *rot, azimuth_t az, elevation_t el) gettimeofday(&priv->tv, NULL); } else { - priv->az = az; - priv->el = el; + priv->az = priv->target_az = az; + priv->el = priv->target_az = el; } @@ -898,7 +898,10 @@ static int dummy_rot_get_status(ROT *rot, rot_status_t *status) struct dummy_rot_priv_data *priv = (struct dummy_rot_priv_data *) rot->state.priv; - //dummy_rot_simulate_rotation(rot); + if (simulating) + { + dummy_rot_simulate_rotation(rot); + } *status = priv->status; commit ed25ac943dab61e4a83e74354cbf8d79233e92f4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 12:05:52 2021 -0600 Disable rotctl emulation -- override by setting simulating=1 in rot_dummy.c https://github.com/Hamlib/Hamlib/issues/531 diff --git a/rigs/dummy/rot_dummy.c b/rigs/dummy/rot_dummy.c index 974f9caf..f4bea07a 100644 --- a/rigs/dummy/rot_dummy.c +++ b/rigs/dummy/rot_dummy.c @@ -43,6 +43,8 @@ ROT_STATUS_MOVING_EL | ROT_STATUS_MOVING_UP | ROT_STATUS_MOVING_DOWN | \ ROT_STATUS_LIMIT_UP | ROT_STATUS_LIMIT_DOWN | ROT_STATUS_LIMIT_LEFT | ROT_STATUS_LIMIT_RIGHT) +static int simulating = 0; // do we need rotator emulation for debug? + struct dummy_rot_priv_data { azimuth_t az; @@ -251,10 +253,17 @@ static int dummy_rot_set_position(ROT *rot, azimuth_t az, elevation_t el) rig_debug(RIG_DEBUG_VERBOSE, "%s called: %.2f %.2f\n", __func__, az, el); - priv->target_az = az; - priv->target_el = el; + if (simulating) + { + priv->target_az = az; + priv->target_el = el; + gettimeofday(&priv->tv, NULL); + } + else { + priv->az = az; + priv->el = el; + } - gettimeofday(&priv->tv, NULL); return RIG_OK; } @@ -341,7 +350,7 @@ static int dummy_rot_get_position(ROT *rot, azimuth_t *az, elevation_t *el) rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - if (priv->az == priv->target_az && + if (simulating && priv->az == priv->target_az && priv->el == priv->target_el) { *az = priv->az; @@ -349,7 +358,10 @@ static int dummy_rot_get_position(ROT *rot, azimuth_t *az, elevation_t *el) return RIG_OK; } - dummy_rot_simulate_rotation(rot); + if (simulating) + { + dummy_rot_simulate_rotation(rot); + } *az = priv->az; *el = priv->el; @@ -886,7 +898,7 @@ static int dummy_rot_get_status(ROT *rot, rot_status_t *status) struct dummy_rot_priv_data *priv = (struct dummy_rot_priv_data *) rot->state.priv; - dummy_rot_simulate_rotation(rot); + //dummy_rot_simulate_rotation(rot); *status = priv->status; @@ -902,7 +914,7 @@ const struct rot_caps dummy_rot_caps = ROT_MODEL(ROT_MODEL_DUMMY), .model_name = "Dummy", .mfg_name = "Hamlib", - .version = "20201203.0", + .version = "20210207.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rot_type = ROT_TYPE_AZEL, ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 14 ++++++++++++- rigs/dummy/rot_dummy.c | 29 ++++++++++++++++++++------- src/misc.c | 9 +++++++-- src/rig.c | 54 +++++++++++++++++++++++++++++++++++++++++++------- tests/rigctl_parse.c | 36 +++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 17 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-07 12:59:22
|
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 1caa4ca328d98ff3071a508ff25ae9084d291869 (commit) via 6052bb798e2e770df7b75742416f730e6de3119b (commit) from 8e313ecc3d4421a7c7eddca1ff2443702700ff55 (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 1caa4ca328d98ff3071a508ff25ae9084d291869 Merge: 6052bb79 8e313ecc Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 06:57:38 2021 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 6052bb798e2e770df7b75742416f730e6de3119b Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 7 06:54:19 2021 -0600 Add ft980.h to Makefile.am The use of 'make distcheck' would have caught this error. diff --git a/rigs/yaesu/Makefile.am b/rigs/yaesu/Makefile.am index d6857ab4..e175f82c 100644 --- a/rigs/yaesu/Makefile.am +++ b/rigs/yaesu/Makefile.am @@ -4,8 +4,9 @@ YAESUSRC = ft100.c ft100.h ft747.c ft747.h ft817.c ft817.h ft847.c ft847.h \ ft890.c ft890.h ft900.c ft900.h ft920.c ft920.h ft1000mp.c ft1000mp.h \ ft857.c ft857.h ft897.c ft897.h ft990.c ft990.h frg8800.c ft757gx.c \ - ft757gx.h ft600.h ft600.c ft736.c frg100.c frg100.h frg9600.c ft1000d.c ft1000d.h \ - vr5000.c ft767gx.c ft767gx.h ft840.c ft840.h ft980.c vx1700.c vx1700.h ftdx10.h + ft757gx.h ft600.h ft600.c ft736.c frg100.c frg100.h frg9600.c ft1000d.c \ + ft1000d.h vr5000.c ft767gx.c ft767gx.h ft840.c ft840.h ft980.c ft980.h \ + vx1700.c vx1700.h ftdx10.h ## Yaesu radios that use the new Kenwood style CAT commands NEWCATSRC = newcat.c newcat.h ft450.c ft450.h ft950.c ft950.h ft991.c ft991.h \ ----------------------------------------------------------------------- Summary of changes: rigs/yaesu/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-07 12:57:10
|
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 8e313ecc3d4421a7c7eddca1ff2443702700ff55 (commit) from 66b3e368d621488dc3081d16a29f5d06ea5a8121 (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 8e313ecc3d4421a7c7eddca1ff2443702700ff55 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 7 06:56:48 2021 -0600 Add RIG_CAPS_HAS_GET_LEVEL diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 489d4683..276a872e 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1950,7 +1950,8 @@ enum rig_caps_int_e { RIG_CAPS_TARGETABLE_VFO, RIG_CAPS_RIG_MODEL, RIG_CAPS_PORT_TYPE, - RIG_CAPS_PTT_TYPE + RIG_CAPS_PTT_TYPE, + RIG_CAPS_HAS_GET_LEVEL }; enum rig_caps_cptr_e { diff --git a/src/misc.c b/src/misc.c index eccb7ba1..b8c2a66e 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2159,6 +2159,9 @@ int rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps) case RIG_CAPS_PORT_TYPE: return caps->port_type; + case RIG_CAPS_HAS_GET_LEVEL: + return caps->has_get_level; + default: rig_debug(RIG_DEBUG_ERR, "%s: Unknown rig_caps value=%d\n", __func__, rig_caps); return -RIG_EINVAL; ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 3 ++- src/misc.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-06 22:46:15
|
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 66b3e368d621488dc3081d16a29f5d06ea5a8121 (commit) via 4f3c4219a1966ca0d5fe74b62aa7034c65f0061c (commit) via 14cc93e3524ee3f23d246abc28665f66c8bf064d (commit) from bc5cad06b78789f2d377c311ac1ba15c48fe5a0b (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 66b3e368d621488dc3081d16a29f5d06ea5a8121 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 6 16:45:54 2021 -0600 Bump FT980 to beta diff --git a/rigs/yaesu/ft980.h b/rigs/yaesu/ft980.h index 3cc93197..181f9e43 100644 --- a/rigs/yaesu/ft980.h +++ b/rigs/yaesu/ft980.h @@ -148,7 +148,7 @@ const struct rig_caps ft980_caps = .mfg_name = "Yaesu", .version = "20200114.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_BETA, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_SERIAL_RTS, .dcd_type = RIG_DCD_NONE, commit 4f3c4219a1966ca0d5fe74b62aa7034c65f0061c Merge: bc5cad06 14cc93e3 Author: Michael Black <mdb...@ya...> Date: Sat Feb 6 16:44:58 2021 -0600 Merge pull request #529 from N8TW/ft980_backend FT-980 Backend Added Feature: Targetable VFO commit 14cc93e3524ee3f23d246abc28665f66c8bf064d Author: N8TW <i.m...@ou...> Date: Sat Feb 6 16:55:05 2021 -0500 Added Features: targetable VFO Other: added debug statements, foundation-work for new featues, "modernized" a bit (but still needs additional effort). diff --git a/rigs/yaesu/ft980.c b/rigs/yaesu/ft980.c index 072e58e2..1d3a741d 100644 --- a/rigs/yaesu/ft980.c +++ b/rigs/yaesu/ft980.c @@ -2,6 +2,8 @@ * ft980.c - (C) Stephane Fillod 2004-2010 * (C) Wolfgang Buesser 2010 * + * (C) Mathew Breton 2021 + * * This shared library provides an API for communicating * via serial interface to an FT-980 using the "CAT" interface * @@ -22,6 +24,66 @@ * */ + +/* +* FT-980 Hamlib API functions considered to be Stable: +* sadly, none yet +* +* Functions considered to be Beta: +* init * cleanup +* set_freq * get_freq +* set_mode * get_mode +* set_mem * get_mem +* open * close +* +* Functions considered to be Alpha: +* set_vfo * get_vfo +* +* Functions not yet implemented +* get_xit * set_xit +* set_func * get_func +* get_ptt * set_ptt +* get_dcd +* set_rptr_shift * get_rptr_shift +* set_rptr_offs * get_rptr_offs +* set_split_freq * get_split_freq +* set_split_mode * get_split_mode +* set_split_freq_mode * get_split_freq_mode +* set_split_vfo * get_split_vfo +* set_ts * get_ts +* vfo_op +* +* Functions the radio does not support: see readme.ft980 for more details +* power2mW * mW2power +* newcat_get_ant * newcat_set_ant +* set_dcs_code * get_dcs_code +* set_tone * get_tone +* set_ctcss_tone * get_ctcss_tone +* set_dcs_sql * get_dcs_sql +* set_tone_sql * get_tone_sql +* set_ctcss_sql * get_ctcss_sql +* set_powerstat * get_powerstat +* set_ant * get_ant +* send_dtmf * recv_dtmf +* send_morse * stop_morse +* wait_morse * send_voice_mem +* set_trn * get_trn +* set_channel * get_channel +* set_bank * scan +* set_parm * get_parm +* get_info +* reset +* set_vfo_opt +* decode_event +* +* No idea yet what these do +* set_chan_all_cb +* get_chan_all_cb +* set_conf +* get_conf +*/ + + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -29,68 +91,14 @@ #include <stdlib.h> #include <string.h> /* String function definitions */ #include <unistd.h> /* UNIX standard function definitions */ +#include <sys/time.h> /* for timeofday call */ #include "hamlib/rig.h" #include "serial.h" #include "misc.h" #include "bandplan.h" #include "yaesu.h" - -#define FT980_MODES (RIG_MODE_LSB|RIG_MODE_USB|RIG_MODE_CW|RIG_MODE_AM|RIG_MODE_RTTY|RIG_MODE_FM) - -#define FT980_ANTS (RIG_ANT_1) - -/* TODO: RIG_VFO_HAM|RIG_VFO_GEN ? */ -#define FT980_VFOS (RIG_VFO_MAIN) - -/* TODO: RIG_OP_TO_VFO|RIG_OP_FROM_VFO|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN */ -#define FT980_VFO_OPS (RIG_OP_NONE) - -typedef struct _ft980_memory_t -{ - unsigned char mem_16[4]; unsigned char vfo_16; unsigned char mode_16; - unsigned char mem_15[4]; unsigned char vfo_15; unsigned char mode_15; - unsigned char mem_14[4]; unsigned char vfo_14; unsigned char mode_14; - unsigned char mem_13[4]; unsigned char vfo_13; unsigned char mode_13; - unsigned char mem_12[4]; unsigned char vfo_12; unsigned char mode_12; - unsigned char mem_11[4]; unsigned char vfo_11; unsigned char mode_11; - unsigned char mem_10[4]; unsigned char vfo_10; unsigned char mode_10; - unsigned char mem_9[4]; unsigned char vfo_9; unsigned char mode_9; - unsigned char mem_8[4]; unsigned char vfo_8; unsigned char mode_8; - unsigned char mem_7[4]; unsigned char vfo_7; unsigned char mode_7; - unsigned char mem_6[4]; unsigned char vfo_6; unsigned char mode_6; - unsigned char mem_5[4]; unsigned char vfo_5; unsigned char mode_5; - unsigned char mem_4[4]; unsigned char vfo_4; unsigned char mode_4; - unsigned char mem_3[4]; unsigned char vfo_3; unsigned char mode_3; - unsigned char mem_2[4]; unsigned char vfo_2; unsigned char mode_2; - unsigned char mem_1[4]; unsigned char vfo_1; unsigned char mode_1; - unsigned char CLAR[4]; - unsigned char GEN[4]; unsigned char HAM[4]; unsigned char vfo; - unsigned char mode; - unsigned char ff_1[4]; - unsigned char ff_2[4]; - unsigned char vfo_mem; - unsigned char mode_mem; - unsigned char LDB; - unsigned char EXT_CTL; - unsigned char IF_SHIFT; - unsigned char SPLIT_CODE; - unsigned char FSK_SHIFT; - unsigned char IF_WIDTH; - unsigned char MEM_SHIFT; - unsigned char CLAR_FLAG; - unsigned char TAB_FLAG; - unsigned char SELECT_SW; - unsigned char OFFSET_SW; - unsigned char MODE_SW; - unsigned char MEM_CH_SW; - unsigned char LOW_TAB[4]; - unsigned char UP_TAB[4]; - unsigned char VFO_STATUS; - unsigned char OP_MODE; - unsigned char OP_FREQ[4]; - unsigned char STATUS_FLAG; -} _ft980_memory_t; +#include "ft980.h" /* * Private data @@ -98,176 +106,38 @@ typedef struct _ft980_memory_t struct ft980_priv_data { _ft980_memory_t update_data; /* returned data */ + vfo_t current_vfo; /* active VFO from last cmd */ struct timeval status_tv; /* update_data caching */ }; -#define UPDATE_DATA_OFS(p, o) (((unsigned char*)((p)+1))-(o)) - -static const char cmd_OK[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x0B}; -static const char cmd_ON_OFF[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x00}; - -/* Private helper function prototypes */ - - +/************************************************************************************* + * Private Prototype Declarations + */ static int ft980_transaction(RIG *rig, const unsigned char *cmd, unsigned char *data, int expected_len); static int ft980_get_status_data(RIG *rig); -static int ft980_open(RIG *rig); -static int ft980_close(RIG *rig); - -static int ft980_set_freq(RIG *rig, vfo_t vfo, freq_t freq); -static int ft980_get_freq(RIG *rig, vfo_t vfo, freq_t *freq); -static int ft980_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width); -static int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width); - -static int ft980_set_mem(RIG *rig, vfo_t vfo, int ch); -static int ft980_get_mem(RIG *rig, vfo_t vfo, int *ch); - -#if 0 -static int ft980_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, - vfo_t tx_vfo); -static int ft980_set_split_freq(RIG *rig, vfo_t vfo, freq_t freq); -static int ft980_set_split_mode(RIG *rig, vfo_t vfo, rmode_t mode, - pbwidth_t width); - -static int ft980_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); -static int ft980_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t shift); -static int ft980_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs); -#endif - -/* - * ft980 rigs capabilities. - */ -#define FT980_MEM_CAP { \ - .freq = 1, \ - .mode = 1, \ - .width = 1, \ -} - -#define FT980_CACHE_TIMEOUT 500 /* ms */ - -/* - * ft980 rigs capabilities. - * - * Protocol is documented in FT 980 Technical Supplement, page 13. - * - * TODO: - */ - -const struct rig_caps ft980_caps = -{ - RIG_MODEL(RIG_MODEL_FT980), - .model_name = "FT-980", - .mfg_name = "Yaesu", - .version = "20200114.0", - .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, - .rig_type = RIG_TYPE_TRANSCEIVER, - .ptt_type = RIG_PTT_SERIAL_RTS, - .dcd_type = RIG_DCD_NONE, - .port_type = RIG_PORT_SERIAL, - .serial_rate_min = 4800, - .serial_rate_max = 4800, - .serial_data_bits = 8, - .serial_stop_bits = 2, - .serial_parity = RIG_PARITY_NONE, - .serial_handshake = RIG_HANDSHAKE_NONE, - .write_delay = 80, - .post_write_delay = 0, - .timeout = 2000, - .retry = 3, - .has_get_func = RIG_FUNC_NONE, - .has_set_func = RIG_FUNC_NONE, - .has_get_level = RIG_LEVEL_NONE, - .has_set_level = RIG_LEVEL_NONE, - .has_get_parm = RIG_PARM_NONE, - .has_set_parm = RIG_PARM_NONE, - .vfo_ops = FT980_VFO_OPS, - .preamp = { RIG_DBLST_END, }, - .attenuator = { RIG_DBLST_END, }, - .max_rit = Hz(10000), - .max_xit = Hz(10000), - .max_ifshift = Hz(1500), - .targetable_vfo = RIG_TARGETABLE_NONE, - .transceive = RIG_TRN_OFF, - .bank_qty = 0, - .chan_desc_sz = 0, - - .chan_list = { - {1, 16, RIG_MTYPE_MEM, FT980_MEM_CAP}, - }, - - .rx_range_list1 = { - {kHz(150), MHz(30) - 100, FT980_MODES, -1, -1, FT980_VFOS, FT980_ANTS}, - RIG_FRNG_END, - }, - - .tx_range_list1 = { - FRQ_RNG_HF(1, RIG_MODE_SSB | RIG_MODE_CW, W(5), W(100), FT980_VFOS, FT980_ANTS), - FRQ_RNG_HF(1, RIG_MODE_FM | RIG_MODE_RTTY, W(2), W(50), FT980_VFOS, FT980_ANTS), - FRQ_RNG_HF(1, RIG_MODE_AM, W(2), W(25), FT980_VFOS, FT980_ANTS), - RIG_FRNG_END, - }, - - .rx_range_list2 = { - {kHz(150), MHz(30) - 100, FT980_MODES, -1, -1, FT980_VFOS, FT980_ANTS}, - RIG_FRNG_END, - }, - - .tx_range_list2 = { - FRQ_RNG_HF(2, RIG_MODE_SSB | RIG_MODE_CW, W(5), W(100), FT980_VFOS, FT980_ANTS), - FRQ_RNG_HF(2, RIG_MODE_FM | RIG_MODE_RTTY, W(2), W(50), FT980_VFOS, FT980_ANTS), - FRQ_RNG_HF(2, RIG_MODE_AM, W(2), W(25), FT980_VFOS, FT980_ANTS), - RIG_FRNG_END, - }, - - .tuning_steps = { - {FT980_MODES, Hz(10)}, - {FT980_MODES, kHz(5)}, - {FT980_MODES, kHz(500)}, - RIG_TS_END, - }, - - /* mode/filter list, remember: order matters! */ - .filters = { - {RIG_MODE_SSB | RIG_MODE_CW | RIG_MODE_RTTY, kHz(2.5)}, - {RIG_MODE_CW, Hz(300)}, - {RIG_MODE_FM, kHz(12)}, - {RIG_MODE_AM, kHz(5)}, - {RIG_MODE_AM, kHz(3)}, - - RIG_FLT_END, - }, - - .rig_open = ft980_open, - .rig_close = ft980_close, - - .set_freq = ft980_set_freq, - .get_freq = ft980_get_freq, - .set_mode = ft980_set_mode, - .get_mode = ft980_get_mode, - - .set_mem = ft980_set_mem, - .get_mem = ft980_get_mem, - -#ifdef XXREMOVEDXX - .get_level = ft980_get_level, - .set_level = ft980_set_level, - - .set_split_vfo = ft980_set_split_vfo, - .set_split_freq = ft980_set_split_freq, - .set_split_mode = ft980_set_split_mode, - - .set_rptr_shift = ft980_set_rptr_shift, - .set_rptr_offs = ft980_set_rptr_offs, -#endif -}; - +/* Dump routines are for debug purposes */ +static void dump_freq(unsigned char *data); +static void dump_vfo(unsigned char data); +static void dump_mode(unsigned char data); +static void dump_switch(unsigned char data); +static void dump_if_shift(unsigned char data); +static void dump_rptr_split_code(unsigned char data); +static void dump_fsk_shift(unsigned char data); +static void dump_if_width(unsigned char data); +static void dump_mem_shift_flag(unsigned char data); +static void dump_clar_flag(unsigned char data); +static void dump_tab_flag(unsigned char data); +static void dump_freq_select_sws(unsigned char data); +static void dump_mode_sw(unsigned char data); +static void dump_mem_ch_sw(unsigned char data); +static void dump_status_flag_bits(unsigned char data); +static void dump_memory(_ft980_memory_t *memory); static void dump_freq(unsigned char *data) { - rig_debug(RIG_DEBUG_VERBOSE, "%02x%02x%02x%02x ", data[3], data[2], data[1], + rig_debug(RIG_DEBUG_TRACE, "%02x%02x%02x%02x ", data[3], data[2], data[1], data[0]); } @@ -275,32 +145,51 @@ static void dump_vfo(unsigned char data) { switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "GEN"); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "GEN"); + break; - case 128: rig_debug(RIG_DEBUG_VERBOSE, "%s", "HAM"); break; + case 128: + rig_debug(RIG_DEBUG_TRACE, "%s", "HAM"); + break; } } - static void dump_mode(unsigned char data) { switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", " LSB\n"); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", " LSB\n"); + break; - case 1: rig_debug(RIG_DEBUG_VERBOSE, "%s", " USB\n"); break; + case 1: + rig_debug(RIG_DEBUG_TRACE, "%s", " USB\n"); + break; - case 2: rig_debug(RIG_DEBUG_VERBOSE, "%s", " CW-W\n"); break; + case 2: + rig_debug(RIG_DEBUG_TRACE, "%s", " CW-W\n"); + break; - case 3: rig_debug(RIG_DEBUG_VERBOSE, "%s", " CW-N\n"); break; + case 3: + rig_debug(RIG_DEBUG_TRACE, "%s", " CW-N\n"); + break; - case 4: rig_debug(RIG_DEBUG_VERBOSE, "%s", " AM-W\n"); break; + case 4: + rig_debug(RIG_DEBUG_TRACE, "%s", " AM-W\n"); + break; - case 5: rig_debug(RIG_DEBUG_VERBOSE, "%s", " AM-N\n"); break; + case 5: + rig_debug(RIG_DEBUG_TRACE, "%s", " AM-N\n"); + break; - case 6: rig_debug(RIG_DEBUG_VERBOSE, "%s", " FSK\n"); break; + case 6: + rig_debug(RIG_DEBUG_TRACE, "%s", " FSK\n"); + break; - case 7: rig_debug(RIG_DEBUG_VERBOSE, "%s", " FM\n"); break; + case 7: + rig_debug(RIG_DEBUG_TRACE, "%s", " FM\n"); + break; } } @@ -308,324 +197,369 @@ static void dump_switch(unsigned char data) { switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "OFF"); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "OFF"); + break; - case 1: rig_debug(RIG_DEBUG_VERBOSE, "%s", "ON "); break; + case 1: + rig_debug(RIG_DEBUG_TRACE, "%s", "ON "); + break; } } -static void dump_IF_SHIFT(unsigned char data) +static void dump_if_shift(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "IF_SHIFT :\%d\n", data - 15); + rig_debug(RIG_DEBUG_TRACE, "if_shift :\%d\n", data - 15); } -static void dump_SPLIT_CODE(unsigned char data) +static void dump_rptr_split_code(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "SPLIT_CODE :\%02x\n", data); + rig_debug(RIG_DEBUG_TRACE, "rptr_split_code :\%02x\n", data); } -static void dump_FSK_SHIFT(unsigned char data) +static void dump_fsk_shift(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "FSK_SHIFT :\%02x\n", data); + rig_debug(RIG_DEBUG_TRACE, "fsk_shift :\%02x\n", data); } -static void dump_IF_WIDTH(unsigned char data) +static void dump_if_width(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "IF_WIDTH :\%d\n", data); + rig_debug(RIG_DEBUG_TRACE, "if_width :\%d\n", data); } -static void dump_MEM_SHIFT(unsigned char data) +static void dump_mem_shift_flag(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "MEM_SHIFT :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_shift_flag :"); switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "OFF\n"); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "OFF\n"); + break; - case 16: rig_debug(RIG_DEBUG_VERBOSE, "%s", "ON\n"); break; + case 16: + rig_debug(RIG_DEBUG_TRACE, "%s", "ON\n"); + break; } } -static void dump_CLAR_FLAG(unsigned char data) + +static void dump_clar_flag(unsigned char data) { unsigned char RX_CLAR = data & 0x20; unsigned char TX_CLAR = data & 0x40; - rig_debug(RIG_DEBUG_VERBOSE, "%s", "CLAR_SHIFT RX/TX:"); + rig_debug(RIG_DEBUG_TRACE, "%s", "CLAR_SHIFT RX/TX:"); switch ((unsigned int)RX_CLAR) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "OFF "); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "OFF "); + break; - case 0x20: rig_debug(RIG_DEBUG_VERBOSE, "%s", "ON "); break; + case 0x20: + rig_debug(RIG_DEBUG_TRACE, "%s", "ON "); + break; } switch ((unsigned int)TX_CLAR) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", " OFF "); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", " OFF "); + break; - case 0x40: rig_debug(RIG_DEBUG_VERBOSE, "%s", " ON "); break; + case 0x40: + rig_debug(RIG_DEBUG_TRACE, "%s", " ON "); + break; } - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); } -static void dump_TAB_FLAG(unsigned char data) +static void dump_tab_flag(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "TAB FLAG :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "TAB FLAG :"); switch (data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "OFF\n"); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "OFF\n"); + break; - case 0x80: rig_debug(RIG_DEBUG_VERBOSE, "%s", "ON\n"); break; + case 0x80: + rig_debug(RIG_DEBUG_TRACE, "%s", "ON\n"); + break; } } -static void dump_SELECT_SW(unsigned char data) +static void dump_freq_select_sws(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "SELECT_SW :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "freq_select_sws :"); switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "VFO "); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "VFO "); + break; - case 1: rig_debug(RIG_DEBUG_VERBOSE, "%s", "MR "); break; + case 1: + rig_debug(RIG_DEBUG_TRACE, "%s", "MR "); + break; - case 2: rig_debug(RIG_DEBUG_VERBOSE, "%s", "RX_M"); break; + case 2: + rig_debug(RIG_DEBUG_TRACE, "%s", "RX_M"); + break; - case 3: rig_debug(RIG_DEBUG_VERBOSE, "%s", "RX_V"); break; + case 3: + rig_debug(RIG_DEBUG_TRACE, "%s", "RX_V"); + break; } - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); } -static void dump_MODE_SW(unsigned char data) +static void dump_mode_sw(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "MODE_SW :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mode_sw :"); switch ((unsigned int)data) { - case 0: rig_debug(RIG_DEBUG_VERBOSE, "%s", "LSB "); break; + case 0: + rig_debug(RIG_DEBUG_TRACE, "%s", "LSB "); + break; - case 1: rig_debug(RIG_DEBUG_VERBOSE, "%s", "USB "); break; + case 1: + rig_debug(RIG_DEBUG_TRACE, "%s", "USB "); + break; - case 2: rig_debug(RIG_DEBUG_VERBOSE, "%s", "CW-W"); break; + case 2: + rig_debug(RIG_DEBUG_TRACE, "%s", "CW-W"); + break; - case 3: rig_debug(RIG_DEBUG_VERBOSE, "%s", "CW-N"); break; + case 3: + rig_debug(RIG_DEBUG_TRACE, "%s", "CW-N"); + break; - case 4: rig_debug(RIG_DEBUG_VERBOSE, "%s", "AM-W"); break; + case 4: + rig_debug(RIG_DEBUG_TRACE, "%s", "AM-W"); + break; - case 5: rig_debug(RIG_DEBUG_VERBOSE, "%s", "AM-N"); break; + case 5: + rig_debug(RIG_DEBUG_TRACE, "%s", "AM-N"); + break; - case 6: rig_debug(RIG_DEBUG_VERBOSE, "%s", "FSK"); break; + case 6: + rig_debug(RIG_DEBUG_TRACE, "%s", "FSK"); + break; - case 7: rig_debug(RIG_DEBUG_VERBOSE, "%s", "FM"); break; + case 7: + rig_debug(RIG_DEBUG_TRACE, "%s", "FM"); + break; } - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); } -static void dump_MEM_CH_SW(unsigned char data) +static void dump_mem_ch_sw(unsigned char data) { - rig_debug(RIG_DEBUG_VERBOSE, "MEM_CH_SW :%d\n", data + 1); + rig_debug(RIG_DEBUG_TRACE, "mem_ch_sw :%d\n", data + 1); } -static void dump_STATUS_FLAG(unsigned char data) +static void dump_status_flag_bits(unsigned char data) { unsigned char TX = data & 0x01; unsigned char SPLIT = data & 0x08; unsigned char VFO = data & 0x20; unsigned char CLAR = data & 0x40; - rig_debug(RIG_DEBUG_VERBOSE, "%s", "STATUS_FLAG :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "status_flag_bits :"); if (TX) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "TX "); + rig_debug(RIG_DEBUG_TRACE, "%s", "TX "); } else { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "RX "); + rig_debug(RIG_DEBUG_TRACE, "%s", "RX "); } if (SPLIT) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "SPLIT "); + rig_debug(RIG_DEBUG_TRACE, "%s", "SPLIT "); } else { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "SIMPLEX "); + rig_debug(RIG_DEBUG_TRACE, "%s", "SIMPLEX "); } if (VFO) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "VFO "); + rig_debug(RIG_DEBUG_TRACE, "%s", "VFO "); } else { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "MEMORY "); + rig_debug(RIG_DEBUG_TRACE, "%s", "MEMORY "); } if (CLAR) { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "CLAR_ON "); + rig_debug(RIG_DEBUG_TRACE, "%s", "CLAR_ON "); } else { - rig_debug(RIG_DEBUG_VERBOSE, "%s", "CLAR_OFF"); + rig_debug(RIG_DEBUG_TRACE, "%s", "CLAR_OFF"); } - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); } static void dump_memory(_ft980_memory_t *memory) { - if (!rig_need_debug(RIG_DEBUG_VERBOSE)) + if (!rig_need_debug(RIG_DEBUG_TRACE)) { return; } - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_1 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_1 :"); dump_freq(memory->mem_1); dump_vfo(memory->vfo_1); dump_mode(memory->mode_1); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_2 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_2 :"); dump_freq(memory->mem_2); dump_vfo(memory->vfo_2); dump_mode(memory->mode_2); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_3 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_3 :"); dump_freq(memory->mem_3); dump_vfo(memory->vfo_3); dump_mode(memory->mode_3); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_4 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_4 :"); dump_freq(memory->mem_4); dump_vfo(memory->vfo_4); dump_mode(memory->mode_4); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_5 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_5 :"); dump_freq(memory->mem_5); dump_vfo(memory->vfo_5); dump_mode(memory->mode_5); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_6 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_6 :"); dump_freq(memory->mem_6); dump_vfo(memory->vfo_6); dump_mode(memory->mode_6); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_7 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_7 :"); dump_freq(memory->mem_7); dump_vfo(memory->vfo_7); dump_mode(memory->mode_7); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_8 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_8 :"); dump_freq(memory->mem_8); dump_vfo(memory->vfo_8); dump_mode(memory->mode_8); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_9 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_9 :"); dump_freq(memory->mem_9); dump_vfo(memory->vfo_9); dump_mode(memory->mode_9); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_10 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_10 :"); dump_freq(memory->mem_10); dump_vfo(memory->vfo_10); dump_mode(memory->mode_10); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_11 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_11 :"); dump_freq(memory->mem_11); dump_vfo(memory->vfo_11); dump_mode(memory->mode_11); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_12 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_12 :"); dump_freq(memory->mem_12); dump_vfo(memory->vfo_12); dump_mode(memory->mode_12); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_13 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_13 :"); dump_freq(memory->mem_13); dump_vfo(memory->vfo_13); dump_mode(memory->mode_13); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_14 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_14 :"); dump_freq(memory->mem_14); dump_vfo(memory->vfo_14); dump_mode(memory->mode_14); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_15 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_15 :"); dump_freq(memory->mem_15); dump_vfo(memory->vfo_15); dump_mode(memory->mode_15); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "mem_16 :"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_16 :"); dump_freq(memory->mem_16); dump_vfo(memory->vfo_16); dump_mode(memory->mode_16); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "GEN :"); - dump_freq(memory->GEN); + rig_debug(RIG_DEBUG_TRACE, "%s", "gen_vfo_freq :"); + dump_freq(memory->gen_vfo_freq); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\nHAM :"); - dump_freq(memory->HAM); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n "); + rig_debug(RIG_DEBUG_TRACE, "%s", "\nHAM :"); + dump_freq(memory->ham_vfo_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n "); dump_vfo(memory->vfo); dump_mode(memory->mode); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "CLAR :"); - dump_freq(memory->CLAR); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "clar_freq :"); + dump_freq(memory->clar_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "f_1 :"); - dump_freq(memory->ff_1); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_shift_freq :"); + dump_freq(memory->mem_shift_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "f_2 :"); - dump_freq(memory->ff_2); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "mem_clar_freq :"); + dump_freq(memory->mem_clar_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", " "); + rig_debug(RIG_DEBUG_TRACE, "%s", " "); dump_vfo(memory->vfo); dump_mode(memory->mode); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "LDB :"); - dump_switch(memory->LDB); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "ldb_flag :"); + dump_switch(memory->ldb_flag); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "EXT_CTL :"); - dump_switch(memory->EXT_CTL); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "ext_ctl_flag :"); + dump_switch(memory->ext_ctl_flag); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - dump_IF_SHIFT(memory->IF_SHIFT); - dump_SPLIT_CODE(memory->SPLIT_CODE); - dump_FSK_SHIFT(memory->FSK_SHIFT); - dump_IF_WIDTH(memory->IF_WIDTH); - dump_MEM_SHIFT(memory->MEM_SHIFT); - dump_CLAR_FLAG(memory->CLAR_FLAG); - dump_TAB_FLAG(memory->TAB_FLAG); - dump_SELECT_SW(memory->SELECT_SW); + dump_if_shift(memory->if_shift); + dump_rptr_split_code(memory->rptr_split_code); + dump_fsk_shift(memory->fsk_shift); + dump_if_width(memory->if_width); + dump_mem_shift_flag(memory->mem_shift_flag); + dump_clar_flag(memory->clar_flag); + dump_tab_flag(memory->tab_flag); + dump_freq_select_sws(memory->freq_select_sws); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "OFFSET_SW :"); - dump_switch(memory->OFFSET_SW); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "offset_sw :"); + dump_switch(memory->offset_sw); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - dump_MODE_SW(memory->MODE_SW); - dump_MEM_CH_SW(memory->MEM_CH_SW); + dump_mode_sw(memory->mode_sw); + dump_mem_ch_sw(memory->mem_ch_sw); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "LOW_TAB :"); - dump_freq(memory->LOW_TAB); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "lower_tab_freq :"); + dump_freq(memory->lower_tab_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "UP_TAB :"); - dump_freq(memory->UP_TAB); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "upper_tab_freq :"); + dump_freq(memory->upper_tab_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - rig_debug(RIG_DEBUG_VERBOSE, "%s", " "); - dump_vfo(memory->VFO_STATUS); - dump_mode(memory->OP_MODE); + rig_debug(RIG_DEBUG_TRACE, "%s", " "); + dump_vfo(memory->op_vfo); + dump_mode(memory->op_mode); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "OP_FREQ :"); - dump_freq(memory->OP_FREQ); - rig_debug(RIG_DEBUG_VERBOSE, "%s", "\n"); + rig_debug(RIG_DEBUG_TRACE, "%s", "op_freq :"); + dump_freq(memory->op_freq); + rig_debug(RIG_DEBUG_TRACE, "%s", "\n"); - dump_STATUS_FLAG(memory->STATUS_FLAG); + dump_status_flag_bits(memory->status_flag_bits); } @@ -635,6 +569,8 @@ int ft980_transaction(RIG *rig, const unsigned char *cmd, unsigned char *data, int retval; char echo_back[YAESU_CMD_LENGTH]; + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + rig_flush(&rig->state.rigport); retval = write_block(&rig->state.rigport, (const char *)cmd, YAESU_CMD_LENGTH); @@ -684,12 +620,14 @@ int ft980_get_status_data(RIG *rig) struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; int retval; + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + if (!rig_check_cache_timeout(&priv->status_tv, FT980_CACHE_TIMEOUT)) { return RIG_OK; } - retval = ft980_transaction(rig, cmd, (unsigned char *)&priv->update_data, 148); + retval = ft980_transaction(rig, cmd, (unsigned char *)&priv->update_data, FT980_ALL_STATUS_LENGTH); if (retval != RIG_OK) { @@ -704,20 +642,33 @@ int ft980_get_status_data(RIG *rig) return retval; } - -/* - * ft980_open routine +/**************************************************************************** + * rig_init* + * + * Initialize memory & rig private data structure + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Nothing special here * */ -int ft980_open(RIG *rig) +int ft980_init(RIG *rig) { - unsigned char echo_back[YAESU_CMD_LENGTH]; struct ft980_priv_data *priv; - int retry_count1 = 0; - rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__); + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + if (!rig) + { + return -RIG_EINVAL; + } - rig->state.priv = calloc(1, sizeof(struct ft980_priv_data)); + rig->state.priv = (struct ft980_priv_data *) calloc(1, + sizeof(struct ft980_priv_data)); if (!rig->state.priv) { @@ -728,6 +679,71 @@ int ft980_open(RIG *rig) memset(priv, 0, sizeof(struct ft980_priv_data)); + // Initialize operating vfo mode to current VFO + priv->current_vfo = RIG_VFO_MAIN; + + return RIG_OK; +} + +/**************************************************************************** + * rig_cleanup* + * + * Release memory in rig private data structure for a clean exit + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Nothing special here + * + */ +int ft980_cleanup(RIG *rig) +{ + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + if (!rig) + { + return -RIG_EINVAL; + } + + if (rig->state.priv) + { + free(rig->state.priv); + } + + rig->state.priv = NULL; + + return RIG_OK; +} + +/**************************************************************************** + * rig_open* + * + * Initialize memory & rig private data structure + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Should be able to optimize + * ToDo: add check so we don't get stuck in EXT CTRL toggle trap/loop + * + */ +int ft980_open(RIG *rig) +{ + unsigned char echo_back[YAESU_CMD_LENGTH]; + struct ft980_priv_data *priv; + int retry_count1 = 0; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + priv = (struct ft980_priv_data *)rig->state.priv; + /* send Ext Cntl ON: Activate CAT */ do { @@ -743,20 +759,35 @@ int ft980_open(RIG *rig) while (retval != 5 && retry_count2++ < rig->state.rigport.retry); write_block(&rig->state.rigport, (char *) cmd_OK, YAESU_CMD_LENGTH); - retval = read_block(&rig->state.rigport, (char *) &priv->update_data, 148); + retval = read_block(&rig->state.rigport, (char *) &priv->update_data, FT980_ALL_STATUS_LENGTH); } - while (!priv->update_data.EXT_CTL && retry_count1++ < rig->state.rigport.retry); + while (!priv->update_data.ext_ctl_flag && retry_count1++ < rig->state.rigport.retry); return RIG_OK; } +/**************************************************************************** + * rig_close* + * + * Send command to toggle out of EXT CTRL mode + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Nothing special here + * Could be optimized. + * + */ int ft980_close(RIG *rig) { unsigned char echo_back[YAESU_CMD_LENGTH]; struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; int retry_count1 = 0; - rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__); + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); do { @@ -772,35 +803,113 @@ int ft980_close(RIG *rig) while (retval != 5 && retry_count2++ < rig->state.rigport.retry); write_block(&rig->state.rigport, (char *) cmd_OK, YAESU_CMD_LENGTH); - retval = read_block(&rig->state.rigport, (char *) &priv->update_data, 148); + retval = read_block(&rig->state.rigport, (char *) &priv->update_data, FT980_ALL_STATUS_LENGTH); } - while (priv->update_data.EXT_CTL && retry_count1++ < rig->state.rigport.retry); + while (priv->update_data.ext_ctl_flag && retry_count1++ < rig->state.rigport.retry); - free(priv); return RIG_OK; } - +/* + * Only the current VFO frequency can be set + * Other Hamlib backends (ex FT-990) switch VFO, change freq, then exit + * They do not return to the original VFO. + * We will stick with this convention for now. + * + * ToDo: Check return data to verify frequency was set correctly + */ +/* + * rig_set_freq* + * + * Set frequency for a given VFO + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | currVFO, VFOA, VFOB, MEM + * freq | input | 100000 - 30000000 + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Passing currVFO to vfo will use the currently selected VFO + * obtained from the priv->current_vfo data structure. + * In all other cases the passed vfo is selected if it differs + * from the currently selected VFO. + * + * Issues: an error will occur with the 4.0 rig.c set_cache_freq routine when + * targeting VFO_MEM. + */ int ft980_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x08}; struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; + int err; + + rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + rig_debug(RIG_DEBUG_TRACE, " %s: passed vfo = 0x%02x\n", __func__, vfo); + rig_debug(RIG_DEBUG_TRACE, " %s: passed freq = %lf Hz\n", __func__, freq); + + // Set to selected VFO + if (vfo == RIG_VFO_CURR) + { + vfo = priv->current_vfo; + rig_debug(RIG_DEBUG_TRACE, " %s: priv->current.vfo = 0x%02x\n", + __func__, vfo); + } + else + { + if (vfo != priv->current_vfo) + { + err = ft980_set_vfo(rig, vfo); + + if (err != RIG_OK) + { + return err; + } + } + } /* store bcd format in cmd (MSB) */ to_bcd(cmd, freq / 10, 8); + /* why is this done ? */ rig_force_cache_timeout(&priv->status_tv); /* Frequency set */ return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, 5), 5); } +/* + * We can get HAM, GEN, Memory Shift (?), "Operating" + * What is memory "Shift"? + */ +/* + * rig_get_freq* + * + * Get frequency for a given VFO + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | currVFO, Main, VFO, VFOA, VFOB, MEM + * freq * | output | 100000 - 30000000 + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Passing currVFO to vfo will use the currently selected VFO + * obtained from the priv->current_vfo data structure. + * In all other cases the passed vfo is selected if it differs + * from the currently selected VFO. + */ int ft980_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; int retval; freq_t f; + rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + rig_debug(RIG_DEBUG_TRACE, " %s: passed vfo = 0x%02x\n", __func__, vfo); + /* Frequency get */ retval = ft980_get_status_data(rig); @@ -809,45 +918,122 @@ int ft980_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) return retval; } - f = from_bcd(priv->update_data.OP_FREQ, 8); + switch (vfo) + { + case RIG_VFO_CURR: + f = from_bcd(priv->update_data.op_freq, 8); + break; + + case RIG_VFO_MAIN: + f = from_bcd(priv->update_data.ham_vfo_freq, 8); + break; + + case RIG_VFO_SUB: + f = from_bcd(priv->update_data.gen_vfo_freq, 8); + break; + + case RIG_VFO_MEM: + f = from_bcd(priv->update_data.mem_shift_freq, 8); + break; + + default: + return -RIG_EINVAL; + } + + rig_debug(RIG_DEBUG_TRACE, + "%s: Selected Memory Freq = %lf\n", __func__, f*10); *freq = f * 10; /* return displayed frequency */ return RIG_OK; } - -#define MD_LSB 0x10 -#define MD_USB 0x11 -#define MD_CW 0x12 -#define MD_CWN 0x13 -#define MD_AM 0x14 -#define MD_AMN 0x15 -#define MD_RTTY 0x16 -#define MD_FM 0x17 - +/* + * Only the current VFO mode can be set + * Other Hamlib backends (ex FT-990) switch VFO, change mode, then exit + * They do not return to the original VFO. + * We will stick with this convention for now. + * + * ToDo: Check return data to verify mode was set correctly + */ +/* + * rig_set_mode* + * + * Set mode for a given VFO + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | currVFO, Main, Sub, MEM + * mode | input | byte + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Passing currVFO to vfo will use the currently selected VFO + * obtained from the priv->current_vfo data structure. + * In all other cases the passed vfo is selected if it differs + * from the currently selected VFO. + */ int ft980_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x0A}; struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; unsigned char md; + int err; + + rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + rig_debug(RIG_DEBUG_TRACE, " %s: passed vfo = 0x%02x\n", __func__, vfo); + rig_debug(RIG_DEBUG_TRACE, " %s: passed mode = %s\n", __func__, rig_strrmode(mode)); + rig_debug(RIG_DEBUG_TRACE, " %s: passed width = %ld Hz\n", __func__, width); + + // Set to selected VFO + if (vfo == RIG_VFO_CURR) + { + vfo = priv->current_vfo; + rig_debug(RIG_DEBUG_TRACE, "%s: priv->current.vfo = 0x%02x\n", + __func__, vfo); + } + else + { + if (vfo != priv->current_vfo) + { + err = ft980_set_vfo(rig, vfo); + + if (err != RIG_OK) + { + return err; + } + } + } /* * translate mode from generic to ft980 specific */ switch (mode) { - case RIG_MODE_CW : md = MD_CW; break; + case RIG_MODE_CW : + md = FT980_CMD0A_MD_CW; + break; - case RIG_MODE_USB: md = MD_USB; break; + case RIG_MODE_USB: + md = FT980_CMD0A_MD_USB; + break; - case RIG_MODE_LSB: md = MD_LSB; break; + case RIG_MODE_LSB: + md = FT980_CMD0A_MD_LSB; + break; - case RIG_MODE_FM: md = MD_FM; break; + case RIG_MODE_FM: + md = FT980_CMD0A_MD_FM; + break; - case RIG_MODE_AM: md = MD_AM; break; + case RIG_MODE_AM: + md = FT980_CMD0A_MD_AM; + break; - case RIG_MODE_RTTY: md = MD_RTTY; break; + case RIG_MODE_RTTY: + md = FT980_CMD0A_MD_RTTY; + break; default: return -RIG_EINVAL; /* sorry, wrong MODE */ @@ -859,25 +1045,49 @@ int ft980_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { switch (md) { - case MD_CW: md = MD_CWN; break; + case FT980_CMD0A_MD_CW: + md = FT980_CMD0A_MD_CWN; + break; - case MD_AM: md = MD_AMN; break; + case FT980_CMD0A_MD_AM: + md = FT980_CMD0A_MD_AMN; + break; } } cmd[3] = md; + /* Might be deprecated in Hamlib 4.1 */ rig_force_cache_timeout(&priv->status_tv); /* Mode set */ - return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, 22), 22); + return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, FT980_OTHER_STATUS_LENGTH), FT980_OTHER_STATUS_LENGTH); } /* * rig_get_mode * * get mode eg AM, CW etc + * ??? What is the difference between byte 6 (operating mode vfo_op + * and byte 30 (selected VFO mode) ??? + */ +/* + * rig_get_mode* + * + * Get frequency for a given VFO * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | currVFO, Main, VFO, VFOA, VFOB, MEM + * mode * | output | byte + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Passing currVFO to vfo will use the currently selected VFO + * obtained from the priv->current_vfo data structure. + * In all other cases the passed vfo is selected if it differs + * from the currently selected VFO. */ int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) { @@ -885,6 +1095,9 @@ int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; int retval, norm; + rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + rig_debug(RIG_DEBUG_TRACE, " %s: passed vfo = 0x%02x\n", __func__, vfo); + retval = ft980_get_status_data(rig); if (retval != RIG_OK) @@ -892,9 +1105,36 @@ int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) return retval; } - my_mode = priv->update_data.OP_MODE; + switch (vfo) + { + case RIG_VFO_CURR: + my_mode = priv->update_data.op_mode; - rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__); + rig_debug(RIG_DEBUG_TRACE, + " %s: Current VFO Mode = 0x%02x\n", __func__, my_mode); + + break; + + case RIG_VFO_MAIN: + case RIG_VFO_SUB: + + /* This is a point of confusion: what exactly is byte 30? */ + + my_mode = priv->update_data.mode; + rig_debug(RIG_DEBUG_TRACE, + " %s: HAM/GEN VFO Mode = 0x%02x\n", __func__, my_mode); + break; + + case RIG_VFO_MEM: + my_mode = priv->update_data.mem_mode; + + rig_debug(RIG_DEBUG_TRACE, + " %s: MEM VFO Mode = 0x%02x\n", __func__, my_mode); + break; + + default: + return -RIG_EVFO; + } /* * translate mode from ft980 to generic. @@ -944,6 +1184,8 @@ int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) default: return -RIG_EPROTO; /* Oops! file bug report */ } + rig_debug(RIG_DEBUG_TRACE, " %s: Hamlib mode = %s\n", __func__, + rig_strrmode(*mode)); if (norm) { @@ -953,10 +1195,7 @@ int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) { *width = rig_passband_narrow(rig, *mode); } - - rig_debug(RIG_DEBUG_TRACE, "%s: set mode = %s\n", __func__, - rig_strrmode(*mode)); - rig_debug(RIG_DEBUG_TRACE, "%s: set width = %d Hz\n", __func__, (int)*width); + rig_debug(RIG_DEBUG_TRACE, " %s: Filter width = %d Hz\n", __func__, (int)*width); return RIG_OK; } @@ -968,7 +1207,6 @@ int ft980_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo) #if 0 // deprecated as was ignored before now unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x8e}; - /* * this can be misleading as Yaesu call it "Full duplex" * or "sat mode", and split Yaesu terms is repeater shift. @@ -995,6 +1233,8 @@ int ft980_set_mem(RIG *rig, vfo_t vfo, int ch) unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x0A }; struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + if (ch > 16 || ch < 1) { return -RIG_EINVAL; @@ -1002,14 +1242,32 @@ int ft980_set_mem(RIG *rig, vfo_t vfo, int ch) cmd[3] = ch - 1; - return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, 22), 22); + return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, FT980_OTHER_STATUS_LENGTH), FT980_OTHER_STATUS_LENGTH); } +/**************************************************************************** + * rig_get_mem + * + * Get the number of the currently selected memory + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | Not applicable for FT-980 + * ch | output | pointer to channel integer to be returned + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: returns currently selected memory channel regardlessof front + * panel knob selection (can be different when CAT is enabled). + */ int ft980_get_mem(RIG *rig, vfo_t vfo, int *ch) { struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; int retval; + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + retval = ft980_get_status_data(rig); if (retval != RIG_OK) @@ -1017,7 +1275,160 @@ int ft980_get_mem(RIG *rig, vfo_t vfo, int *ch) return retval; } - *ch = priv->update_data.MEM_CH_SW + 1; + *ch = priv->update_data.mem_ch_sw + 1; + + return RIG_OK; +} + +/**************************************************************************** + * rig_set_vfo* + * + * Set operational VFO + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo | input | currVFO, VFO_MAIN, VFOB/GEN, MEM + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: Passing currVFO to vfo will essentially "no op" + * In all other cases the passed vfo is selected if it differs + * from the currently selected VFO. + */ +/* VFO_CURR: Whatever is shown in op_freq/op_mode */ +/* VFO_MAIN: Mode = VFO, VFO = MAIN */ +/* VFO_SUB: Mode = VFO, VFO = GEN */ +/* VFO_MEM: Mode = Memory, VFO = don't care */ +int ft980_set_vfo(RIG *rig, vfo_t vfo) +{ + unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x0A }; + struct ft980_priv_data *priv; + int err; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + if (!rig) + { + return -RIG_EARG; + } + + rig_debug(RIG_DEBUG_TRACE, "%s: passed vfo = %s\n", __func__, rig_strvfo(vfo)); + + priv = (struct ft980_priv_data *)rig->state.priv; + + switch (vfo) + { + case RIG_VFO_CURR: + rig_debug(RIG_DEBUG_TRACE, + "%s: priv->current_vfo = 0x%02x\n", __func__, priv->current_vfo); + return RIG_OK; + break; + + case RIG_VFO_MAIN: + cmd[3] = FT980_CMD0A_VFO_SEL_HAM; + rig_debug(RIG_DEBUG_TRACE, "%s: set VFO GEN/HAM = 0x%02x\n", + __func__, cmd[3]); + err = ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, FT980_OTHER_STATUS_LENGTH), FT980_OTHER_STATUS_LENGTH); + if (err != RIG_OK) + { + return err; + } + cmd[3] = FT980_CMD0A_FREQ_SEL_VFO; + break; + + case RIG_VFO_SUB: + cmd[3] = FT980_CMD0A_VFO_SEL_GEN; + rig_debug(RIG_DEBUG_TRACE, "%s: set VFO GEN/HAM = 0x%02x\n", + __func__, cmd[3]); + err = ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, FT980_OTHER_STATUS_LENGTH), FT980_OTHER_STATUS_LENGTH); + if (err != RIG_OK) + { + return err; + } + cmd[3] = FT980_CMD0A_FREQ_SEL_VFO; + break; + + case RIG_VFO_MEM: + cmd[3] = FT980_CMD0A_FREQ_SEL_MR; + break; + + default: + return -RIG_EVFO; + } + + rig_debug(RIG_DEBUG_TRACE, "%s: set VFO Status = %s\n", + __func__, rig_strvfo(vfo)); + + return ft980_transaction(rig, cmd, UPDATE_DATA_OFS(&priv->update_data, FT980_OTHER_STATUS_LENGTH), FT980_OTHER_STATUS_LENGTH); +} + +/**************************************************************************** + * rig_get_vfo* + * + * Get operational VFO + * + * Parameter | Type | Accepted/Expected Values + * ------------------------------------------------------------------------- + * RIG * | input | pointer to private data + * vfo * | output | currVFO, VFO_MAIN, VFOB/GEN, MEM + * ------------------------------------------------------------------------- + * Returns RIG_OK on success or an error code on failure + * + * Comments: + * VFO_MAIN: If (Status = VFO && VFO = MAIN) || (Status = RXV && VFO = MAIN) + * VFO_SUB: If (Status = VFO && VFO = GEN) || (Status = RXV && VFO = GEN) + * VFO_MEM: If *Status = Memory) || (Status = RXM) + * + * If operating in split (RXM, RXV) then get_vfo returns the receive vfo + */ +int ft980_get_vfo(RIG *rig, vfo_t *vfo) +{ + int err; + struct ft980_priv_data *priv = (struct ft980_priv_data *)rig->state.priv; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + if (!rig) + { + return -RIG_EARG; + } + + /* Get flags for VFO status */ + err = ft980_get_status_data(rig); + if (err != RIG_OK) + { + return err; + } + + rig_debug(RIG_DEBUG_TRACE, + "%s: status_flag_bits = 0x%02x\n", __func__, + priv->update_data.status_flag_bits); + rig_debug(RIG_DEBUG_TRACE, + "%s: op_vfo = %s\n", __func__, + rig_strvfo(priv->update_data.op_vfo)); + + /* Decode the VFO Setting and VFO States */ + if (!(priv->update_data.status_flag_bits & FT_980_STATUSFLAG_VFO_MASK)) + { + priv->current_vfo = RIG_VFO_MEM; + } + else if (priv->update_data.op_vfo == FT980_VFO_HAM_SEL) + { + priv->current_vfo = RIG_VFO_MAIN; + } + else if (priv->update_data.op_vfo == FT980_VFO_GEN_SEL) + { + priv->current_vfo = RIG_VFO_SUB; + } + else + { + return -RIG_EVFO; + } + + rig_debug(RIG_DEBUG_TRACE, + "%s: stat_vfo = %s\n", __func__, rig_strvfo(priv->current_vfo)); + + *vfo = priv->current_vfo; return RIG_OK; } diff --git a/rigs/yaesu/ft980.h b/rigs/yaesu/ft980.h new file mode 100644 index 00000000..3cc93197 --- /dev/null +++ b/rigs/yaesu/ft980.h @@ -0,0 +1,460 @@ +/* + * hamlib - (C) Stephane Fillod 2002, 2003 (fillods at users.sourceforge.net) + * + * ft980.h - (C) Mat Breton, 2020 + * + * This shared library provides an API for communicating + * via serial interface to an FT-990 using the "CAT" interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +/* This file is a bit of a hack at the moment, containing both public and private declarations + * ToDo: Fix this point later, but temporarily necessary to sort stuff out right now + */ + +#ifndef _FT980_H +#define _FT980_H 1 + +/* Lets make the Linters Happy - remove later*/ +#ifndef _RIG_H +#include "hamlib/rig.h" +#endif + +#ifndef _YAESU_H +#include "yaesu.h" +#endif + +#ifndef _BANDPLAN_H +#include "bandplan.h" +#endif +/* End of Happy Linter Section */ + +/************************************************************************************* + * Semi-Public prototypes: need to be placed before the caps construct + * HAMLIB API implementation + */ +static int ft980_init(RIG *rig); +static int ft980_cleanup(RIG *rig); +static int ft980_open(RIG *rig); +static int ft980_close(RIG *rig); + +static int ft980_set_freq(RIG *rig, vfo_t vfo, freq_t freq); +static int ft980_get_freq(RIG *rig, vfo_t vfo, freq_t *freq); +static int ft980_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width); +static int ft980_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width); + +static int ft980_set_mem(RIG *rig, vfo_t vfo, int ch); +static int ft980_get_mem(RIG *rig, vfo_t vfo, int *ch); + +static int ft980_set_vfo(RIG *rig, vfo_t vfo); +static int ft980_get_vfo(RIG *rig, vfo_t *vfo); + +#if 0 +static int ft980_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit); +static int ft980_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit); + +static int ft980_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit); +static int ft980_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit); + +static int ft980_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, + vfo_t tx_vfo); +static int ft980_set_split_freq(RIG *rig, vfo_t vfo, freq_t freq); +static int ft980_set_split_mode(RIG *rig, vfo_t vfo, rmode_t mode, + pbwidth_t width); + +static int ft980_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t shift); +static int ft980_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs); +#endif + + +/************************************************************************************* + * Constants (enums and defines, w/ a couple typedefs thrown in) + */ + +/* Handy constants */ +#ifndef TRUE +#define TRUE 1 +#endif +#define ON TRUE +#ifndef FALSE +#define FALSE 0 +#endif +#define OFF FALSE + +/* FT-980 Status Return Message Lengths */ +#define FT980_ALL_STATUS_LENGTH 148 +#define FT980_OTHER_STATUS_LENGTH 22 +#define FT980_RPTRSPLT_STATUS_LENGTH 6 +#define FT980_UPDN_STATUS_LENGTH 5 +#define FT980_ONEBYTE_ST... [truncated message content] |
From: Michael B. <mdb...@us...> - 2021-02-06 14:24:08
|
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 bc5cad06b78789f2d377c311ac1ba15c48fe5a0b (commit) via 47179606c66832a08d3092e8b520e3381409a004 (commit) via a7058ff76c849163b37509d91ac99af313dc5bd1 (commit) via 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 (commit) via 20ce18f47744809b1e7d7f7e58fe77ede53bbf0b (commit) via 865c28c4ca212d5bb316c1fc4d7bc6831e88b3a8 (commit) via d4bc60be0bc6e6b3288d8ebe5f245bc9e71ee846 (commit) via b5c96e0cde45f72789326f661b1acc587afb7929 (commit) from 1d8a010493528168e1ac2d033892ed547782e08f (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 bc5cad06b78789f2d377c311ac1ba15c48fe5a0b Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 6 08:23:23 2021 -0600 Bump version in pihpsdr.c diff --git a/rigs/kenwood/pihpsdr.c b/rigs/kenwood/pihpsdr.c index 46dcf7f5..c711ea44 100644 --- a/rigs/kenwood/pihpsdr.c +++ b/rigs/kenwood/pihpsdr.c @@ -103,7 +103,7 @@ const struct rig_caps pihpsdr_caps = RIG_MODEL(RIG_MODEL_HPSDR), .model_name = "PiHPSDR", .mfg_name = "OpenHPSDR", - .version = BACKEND_VER ".0", + .version = BACKEND_VER ".1", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, commit 47179606c66832a08d3092e8b520e3381409a004 Merge: a7058ff7 865c28c4 Author: Michael Black <mdb...@ya...> Date: Sat Feb 6 08:22:42 2021 -0600 Merge pull request #527 from dl1ycf/master Fixed pihpsdr power reading commit a7058ff76c849163b37509d91ac99af313dc5bd1 Merge: 1d8a0104 3fa25cb5 Author: Nate Bargmann <n0...@n0...> Date: Sat Feb 6 07:25:06 2021 -0600 Merge pull request #528 from N0NB/doxygen_work Doxygen work commit 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 Merge: 20ce18f4 1d8a0104 Author: Nate Bargmann <n0...@n0...> Date: Sat Feb 6 07:17:12 2021 -0600 Merge branch 'master' into doxygen_work commit 20ce18f47744809b1e7d7f7e58fe77ede53bbf0b Author: Nate Bargmann <n0...@n0...> Date: Sat Feb 6 07:16:09 2021 -0600 Update Doxygen comments in amplifier.h diff --git a/include/hamlib/amplifier.h b/include/hamlib/amplifier.h index b7af885d..2222ea16 100644 --- a/include/hamlib/amplifier.h +++ b/include/hamlib/amplifier.h @@ -35,7 +35,9 @@ * \brief Hamlib amplifier data structures. * * This file contains the data structures and declarations for the Hamlib - * amplifier API. see the amplifier.c file for more details on the amplifier API. + * amplifier Application Programming Interface (API). + * + * See the `amplifier.c` file for details on the amplifier API functions. */ @@ -50,35 +52,52 @@ struct amp_state; /** * \typedef typedef struct amp AMP - * \brief Amplifier structure definition (see amp for details). + * \brief Main amplifier handle type definition. + * + * The AMP handle is returned by amp_init() and is passed as a parameter to + * every amplifier specific API call. + * + * amp_cleanup() must be called when this handle is no longer needed. */ typedef struct amp AMP; /** * \typedef typedef float swr_t - * \brief Type definition for SWR. + * \brief Type definition for + * <a href="https://en.wikipedia.org/wiki/Standing_wave_ratio" >SWR (Standing Wave Ratio)</a>. * - * The swr_t type is used as a parameter for the amp_get_swr() function. + * The \c swr_t type is used as a parameter for the amp_get_swr() function. * - * Unless specified otherwise, the unit of swr_t is 1.0 to max reported by tuner + * The unit of \c swr_t is 1.0 to the maximum value reported by the amplifier's + * internal antenna system tuner, i.e. + * <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a>, + * representing the ratio of 1.0:1 to Maximum:1. */ typedef float swr_t; /** * \typedef typedef float tune_value_t - * \brief Type definition for tuning values capacitance and resistance. + * \brief Type definition for the + * <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a> + * tuning values of + * <a href="https://en.wikipedia.org/wiki/Capacitance" >capacitance</a> + * and + * <a href="https://en.wikipedia.org/wiki/Inductance" >inductance</a>. * - * The tune_value_t type is used as a parameter for the amp_get_level() + * The \c tune_value_t type is used as a parameter for amp_get_level(). * - * Unless specified otherwise, the units of tune_value_t is pF and nH + * The unit of \c tune_value_t is + * <a href="https://en.wikipedia.org/wiki/Farad" >picoFarads (pF)</a> + * or + * <a href="https://en.wikipedia.org/wiki/Henry_(unit)" >nanoHenrys (nH)</a>. */ typedef int tune_value_t; /** - * \brief Token in the netampctl protocol for returning error code + * \brief The token in the netampctl protocol for returning an error condition code. */ #define NETAMPCTL_RET "RPRT " @@ -86,9 +105,9 @@ typedef int tune_value_t; //! @cond Doxygen_Suppress typedef enum { - AMP_RESET_MEM, // erase tuner memory - AMP_RESET_FAULT, // reset any fault - AMP_RESET_AMP // for kpa1500 + AMP_RESET_MEM, // erase tuner memory + AMP_RESET_FAULT, // reset any fault + AMP_RESET_AMP // for kpa1500 } amp_reset_t; //! @endcond @@ -103,27 +122,27 @@ typedef enum //! @cond Doxygen_Suppress // TBD AMP_TYPE -#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2) +#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2) #define AMP_TYPE_OTHER 0 #define AMP_TYPE_1 AMP_FLAG_1 #define AMP_TYPE_2 AMP_FLAG_2 -#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2) +#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2) //! @endcond //! @cond Doxygen_Suppress enum amp_level_e { - AMP_LEVEL_NONE = 0, /*!< '' -- No Level */ - AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater */ - AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting nanohenries */ - AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting picofarads */ - AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amp */ - AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward */ - AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse */ - AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak */ - AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code */ + AMP_LEVEL_NONE = 0, /*!< '' -- No Level. */ + AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater. */ + AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting in nanohenries. */ + AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting in picofarads. */ + AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amplifier. */ + AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward. */ + AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse. */ + AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak. */ + AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code. */ }; //! @endcond @@ -139,36 +158,38 @@ enum amp_level_e * enquiries about capabilities. */ +//! @cond Doxygen_Suppress +#define AMP_MODEL(arg) .amp_model=arg,.macro_name=#arg +//! @endcond + /** - * Amplifier Caps * \struct amp_caps - * \brief Amplifier data structure. + * \brief Amplifier capabilities * * The main idea of this struct is that it will be defined by the backend - * amplifier driver, and will remain readonly for the application. Fields that - * need to be modifiable by the application are copied into the struct - * amp_state, which is a kind of private of the AMP instance. + * amplifier driver and will remain read-only for the application. Fields + * that need to be modifiable by the application are copied into the struct + * \c amp_state, which is the private memory area of the AMP instance. * - * This way, you can have several rigs running within the same application, - * sharing the struct amp_caps of the backend, while keeping their own - * customized data. + * This way you can have several amplifiers running within the same + * application, sharing the struct \c amp_caps of the backend, while keeping + * their own customized data. * - * mdblack98: Don't move fields around and add new fields at end of caps - * Shared libraries depend on constant structure to maintain compatibility + * \b Note: Don't move fields around and only add new fields at the end of the + * caps structure. Shared libraries depend on a constant structure to maintain + * compatibility. */ -//! @cond Doxygen_Suppress -#define AMP_MODEL(arg) .amp_model=arg,.macro_name=#arg struct amp_caps { - amp_model_t amp_model; /*!< Amplifier model. */ - const char *model_name; /*!< Model name. */ - const char *mfg_name; /*!< Manufacturer. */ + amp_model_t amp_model; /*!< Amplifier model as defined in `amplist.h`. */ + const char *model_name; /*!< Model name, e.g. MM-5k. */ + const char *mfg_name; /*!< Manufacturer, e.g. Moonbeam. */ const char *version; /*!< Driver version. */ - const char *copyright; /*!< Copyright info. */ + const char *copyright; /*!< Copyright info (should be LGPL). */ enum rig_status_e status; /*!< Driver status. */ int amp_type; /*!< Amplifier type. */ - enum rig_port_e port_type; /*!< Type of communication port. */ + enum rig_port_e port_type; /*!< Type of communication port (serial, ethernet, etc.). */ int serial_rate_min; /*!< Minimal serial speed. */ int serial_rate_max; /*!< Maximal serial speed. */ @@ -180,65 +201,65 @@ struct amp_caps int write_delay; /*!< Write delay. */ int post_write_delay; /*!< Post-write delay. */ int timeout; /*!< Timeout. */ - int retry; /*!< Number of retry if command fails. */ + int retry; /*!< Number of retries if a command fails. */ - const struct confparams *cfgparams; /*!< Configuration parametres. */ + const struct confparams *cfgparams; /*!< Configuration parameters. */ const rig_ptr_t priv; /*!< Private data. */ - const char *amp_model_macro_name; /*!< Model macro name */ + const char *amp_model_macro_name; /*!< Model macro name. */ - setting_t has_get_level; - setting_t has_set_level; + setting_t has_get_level; /*!< Has get_level capability. */ + setting_t has_set_level; /*!< Has set_level capability. */ - gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ - gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ /* * Amp Admin API * */ - int (*amp_init)(AMP *amp); - int (*amp_cleanup)(AMP *amp); - int (*amp_open)(AMP *amp); - int (*amp_close)(AMP *amp); + int (*amp_init)(AMP *amp); /*!< Initializes data structures and returns an #AMP handle--call before amp_open(). */ + int (*amp_cleanup)(AMP *amp); /*!< Frees the data structures associated with the #AMP handle--call after amp_close(). */ + int (*amp_open)(AMP *amp); /*!< Opens the communication channel to the amplifier. */ + int (*amp_close)(AMP *amp); /*!< Closes the communication channel to the amplifier. */ - int (*set_freq)(AMP *amp, freq_t val); - int (*get_freq)(AMP *amp, freq_t *val); + int (*set_freq)(AMP *amp, freq_t val); /*!< Set the frequency of the amplifier. */ + int (*get_freq)(AMP *amp, freq_t *val); /*!< Query the frequency of the amplifier. */ - int (*set_conf)(AMP *amp, token_t token, const char *val); - int (*get_conf)(AMP *amp, token_t token, char *val); + int (*set_conf)(AMP *amp, token_t token, const char *val); /*!< Set the configuration parameter \a val corresponding to the \a token. */ + int (*get_conf)(AMP *amp, token_t token, char *val); /*!< Query the configuration parameter \a val corresponding to the \a token. */ /* * General API commands, from most primitive to least.. :() * List Set/Get functions pairs */ - int (*reset)(AMP *amp, amp_reset_t reset); - int (*get_level)(AMP *amp, setting_t level, value_t *val); - int (*get_ext_level)(AMP *amp, token_t level, value_t *val); - int (*set_powerstat)(AMP *amp, powerstat_t status); - int (*get_powerstat)(AMP *amp, powerstat_t *status); + int (*reset)(AMP *amp, amp_reset_t reset); /*!< Reset the amplifier (careful!). */ + int (*get_level)(AMP *amp, setting_t level, value_t *val); /*!< Query the \a val corresponding to the \a level. */ + int (*get_ext_level)(AMP *amp, token_t level, value_t *val); /*!< Query the \a val corresponding to the extra \a level. */ + int (*set_powerstat)(AMP *amp, powerstat_t status); /*!< Turn the amplifier On or Off or toggle the Standby or Operate status. */ + int (*get_powerstat)(AMP *amp, powerstat_t *status); /*!< Query the power or standby status of the amplifier. */ /* get firmware info, etc. */ - const char *(*get_info)(AMP *amp); + const char *(*get_info)(AMP *amp); /*!< Query available internal information of the amplifier (firmware version, etc.). */ +//! @cond Doxygen_Suppress setting_t levels; unsigned ext_levels; - const struct confparams *extlevels; - const struct confparams *extparms; +//! @endcond + const struct confparams *extlevels; /*!< Extra levels structure. */ + const struct confparams *extparms; /*!< Extra parameters structure. */ const char *macro_name; /*!< Macro name. */ }; -//! @endcond /** - * Amplifier state * \struct amp_state - * \brief Live data and customized fields. + * \brief Amplifier state * - * This struct contains live data, as well as a copy of capability fields + * This structure contains live data, as well as a copy of capability fields * that may be updated (ie. customized) * * It is fine to move fields around, as this kind of struct should @@ -264,21 +285,21 @@ struct amp_state //! @endcond gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ - gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ }; /** - * Amplifier structure * \struct amp - * \brief This is the master data structure, - * acting as a handle for the controlled amplifier. + * \brief Amplifier structure * - * This is the master data structure, acting as a handle for the controlled - * amplifier. A pointer to this structure is returned by the amp_init() API - * function and is passed as a parameter to every amplifier specific API call. + * Master amplifier data structure acting as a handle for the + * controlled amplifier. * - * \sa amp_init(), amp_caps(), amp_state() + * A pointer to this structure is returned by the amp_init() API function and + * is passed as a parameter to every amplifier specific API call. + * + * \sa amp_caps(), amp_state() */ struct amp { @@ -406,12 +427,10 @@ extern HAMLIB_EXPORT(const char *) amp_strlevel(setting_t); /** * \def amp_debug - * \brief Convenience definition for debug level. - * - * This is just as convenience definition of the amplifier debug level, - * and is the same as for the rig debug level. + * \brief Convenience macro for generating debugging messages. * - * \sa rig_debug() + * This is an alias of the rig_debug() function call and is used in the same + * manner. */ #define amp_debug rig_debug commit 865c28c4ca212d5bb316c1fc4d7bc6831e88b3a8 Merge: b5c96e0c 1d8a0104 Author: DL1YCF <dl...@da...> Date: Sat Feb 6 10:42:14 2021 +0100 Merge branch 'master' of https://github.com/Hamlib/Hamlib commit d4bc60be0bc6e6b3288d8ebe5f245bc9e71ee846 Author: Nate Bargmann <n0...@n0...> Date: Fri Feb 5 20:36:49 2021 -0600 Update Doxygen files The latest Doxygen has changed the footer.html substantially from the much older version we were using. Add some Hamlib project specific information to it. Align hamlib.cfg.in to the latest Doxygen. Reduce hamlib.css to only those elements needed for Hamlib customization. Add hamlib.png as a project logo. diff --git a/doc/footer.html b/doc/footer.html index 38c4e29a..41c5ce94 100644 --- a/doc/footer.html +++ b/doc/footer.html @@ -1,8 +1,30 @@ -<!-- Footer for Doxygen HTML files --> -<hr> -<div class="doxy">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion</small></address></div> -<p style="font-size: 75%">Hamlib documentation for version $projectnumber -- $datetime<br /> -Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br /> -</p> +<!-- HTML footer for doxygen 1.9.1--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath + <li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li> + </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> +<hr class="footer"/> +<address class="footer"> + <small> + $generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion + </small> +</address> +<!--END !GENERATE_TREEVIEW--> +<div id="hamlib" class="footer" > + <p class="alignleft"> + Hamlib documentation for version $projectnumber—$datetime<br /> + Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br /> + </p> + <p class="alignright"> + <a href="https://sourceforge.net/p/hamlib/"><img alt="Download Ham Radio Control Libraries" src="https://sourceforge.net/sflogo.php?type=13&group_id=8305" ></a> + </p> +</div> +<div style="clear: both;"></div> </body> </html> diff --git a/doc/hamlib.cfg.in b/doc/hamlib.cfg.in index 07d1eed0..e2225d8c 100644 --- a/doc/hamlib.cfg.in +++ b/doc/hamlib.cfg.in @@ -1,7 +1,8 @@ -## hamlib.cfg.in--converted into hamlib.cfg by configure +## hamlib.cfg.in--converted into hamlib.cfg by config.status -PROJECT_NAME = "Hamlib" +PROJECT_NAME = Hamlib PROJECT_NUMBER = @VERSION@ +PROJECT_LOGO = @top_srcdir@/doc/hamlib.png # Output OUTPUT_DIRECTORY= . @@ -14,31 +15,31 @@ GENERATE_MAN = NO # User can set to YES for local man pages MAN_EXTENSION = .3 # Input -CASE_SENSE_NAMES = NO -FULL_PATH_NAMES = NO -INPUT = @top_srcdir@/doc/index.doxygen \ - @top_srcdir@/src/ @top_srcdir@/include/hamlib/ - -INCLUDE_PATH = @top_srcdir@/include - -EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \ - @top_srcdir@ - -QUIET = YES - -HTML_STYLESHEET = @top_srcdir@/doc/hamlib.css -HTML_FOOTER = @top_srcdir@/doc/footer.html - -EXTRACT_ALL = NO -EXTRACT_STATIC = NO -HIDE_UNDOC_MEMBERS = NO -SHOW_INCLUDE_FILES = YES -INHERIT_DOCS = YES -ENABLED_SECTIONS = "" -PREDEFINED = DOXYGEN "DOC_HIDDEN" -JAVADOC_AUTOBRIEF = NO -OPTIMIZE_OUTPUT_FOR_C = YES # doxygen 1.2.6 option - -MAN_LINKS = NO -MACRO_EXPANSION = YES - +CASE_SENSE_NAMES = YES +FULL_PATH_NAMES = NO +INPUT = @top_srcdir@/doc/index.doxygen \ + @top_srcdir@/include/hamlib/ \ + @top_srcdir@/src/ + +INCLUDE_PATH = @top_srcdir@/include + +EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \ + @top_srcdir@ + +QUIET = YES + +HTML_FOOTER = @top_srcdir@/doc/footer.html +HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/hamlib.css + +EXTRACT_ALL = NO +EXTRACT_STATIC = NO +HIDE_UNDOC_MEMBERS = NO +SHOW_INCLUDE_FILES = YES +INHERIT_DOCS = YES +ENABLED_SECTIONS = "" +PREDEFINED = DOXYGEN "DOC_HIDDEN" +JAVADOC_AUTOBRIEF = NO +OPTIMIZE_OUTPUT_FOR_C = YES + +MAN_LINKS = NO +MACRO_EXPANSION = YES diff --git a/doc/hamlib.css b/doc/hamlib.css index 554d6261..d6edeb7a 100644 --- a/doc/hamlib.css +++ b/doc/hamlib.css @@ -1,662 +1,29 @@ -/* The standard CSS for doxygen */ +/* Custom CSS for Hamlib used by the Doxygen generated HTML pages. */ -body, table, div, p, dl { - font-family: sans-serif; - font-size: 100%; -} - -/* @group Heading Levels */ - -h1 { - font-size: 2.5em; -} - -h2 { - font-size: 1.875em; -} - -h3 { - font-size: 1.20em; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - padding: 2px; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: none; - background-color: #f0f0fd; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code { - color: #4665A2; -} - -a.codeRef { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 90%; - line-height: 125%; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 10px; - margin-right: 10px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ +/* Add padding around the Hamlib logo in the page header. */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 3px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.memitem { - padding: 0; - margin-bottom: 10px; -} - -.memname { - white-space: nowrap; - font-weight: bold; - margin-left: 6px; -} - -.memproto { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - -} - -.memdoc { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 2px 5px; - background-color: #FBFCFD; - border-top-width: 0; - /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; -} - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul +#projectlogo { - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right: 15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} + padding-right: 0.85em; + padding-left: 0.8em; + padding-top: 0.5em; + padding-bottom: 0.5em; -.navpath a:hover -{ - color:#6884BD; } -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} -div.summary a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} +/* Align the Hamlib footer elements to the left and right and pad + * from the screen edge to align with other page padding. */ -div.headertitle +.footer p.alignleft { - padding: 5px 5px 5px 10px; + float: left; + font-size: 75%; + padding-left: 1.5em; } -div.doxy +.footer p.alignright { - float: right; - font-size: 75%; + float: right; + padding-right: 0.85em; } diff --git a/doc/hamlib.png b/doc/hamlib.png new file mode 100644 index 00000000..70992fef Binary files /dev/null and b/doc/hamlib.png differ commit b5c96e0cde45f72789326f661b1acc587afb7929 Author: c vw <dl...@da...> Date: Fri Feb 5 21:57:06 2021 +0100 fixed analysis of "PC" command output. diff --git a/rigs/kenwood/pihpsdr.c b/rigs/kenwood/pihpsdr.c index 1c00de3d..46dcf7f5 100644 --- a/rigs/kenwood/pihpsdr.c +++ b/rigs/kenwood/pihpsdr.c @@ -1117,7 +1117,7 @@ int pihpsdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return -RIG_ERJCTED; } - sscanf(lvlbuf + 3, "%d", &lvl); + sscanf(lvlbuf + 2, "%d", &lvl); val->f = lvl / 100.0; /* FIXME: for 1.2GHZ need to divide by 10 */ break; ----------------------------------------------------------------------- Summary of changes: doc/footer.html | 34 ++- doc/hamlib.cfg.in | 61 +++-- doc/hamlib.css | 665 ++------------------------------------------- doc/hamlib.png | Bin 0 -> 2296 bytes include/hamlib/amplifier.h | 179 ++++++------ rigs/kenwood/pihpsdr.c | 4 +- 6 files changed, 176 insertions(+), 767 deletions(-) create mode 100644 doc/hamlib.png hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-06 13:21:45
|
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, doxygen_work has been deleted was 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 - Log ----------------------------------------------------------------- 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 Merge branch 'master' into doxygen_work ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-06 13:18:18
|
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, doxygen_work has been created at 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 (commit) - Log ----------------------------------------------------------------- commit 3fa25cb5f3088f27cf43d1caf48ed478b5af5d60 Merge: 20ce18f4 1d8a0104 Author: Nate Bargmann <n0...@n0...> Date: Sat Feb 6 07:17:12 2021 -0600 Merge branch 'master' into doxygen_work commit 20ce18f47744809b1e7d7f7e58fe77ede53bbf0b Author: Nate Bargmann <n0...@n0...> Date: Sat Feb 6 07:16:09 2021 -0600 Update Doxygen comments in amplifier.h diff --git a/include/hamlib/amplifier.h b/include/hamlib/amplifier.h index b7af885d..2222ea16 100644 --- a/include/hamlib/amplifier.h +++ b/include/hamlib/amplifier.h @@ -35,7 +35,9 @@ * \brief Hamlib amplifier data structures. * * This file contains the data structures and declarations for the Hamlib - * amplifier API. see the amplifier.c file for more details on the amplifier API. + * amplifier Application Programming Interface (API). + * + * See the `amplifier.c` file for details on the amplifier API functions. */ @@ -50,35 +52,52 @@ struct amp_state; /** * \typedef typedef struct amp AMP - * \brief Amplifier structure definition (see amp for details). + * \brief Main amplifier handle type definition. + * + * The AMP handle is returned by amp_init() and is passed as a parameter to + * every amplifier specific API call. + * + * amp_cleanup() must be called when this handle is no longer needed. */ typedef struct amp AMP; /** * \typedef typedef float swr_t - * \brief Type definition for SWR. + * \brief Type definition for + * <a href="https://en.wikipedia.org/wiki/Standing_wave_ratio" >SWR (Standing Wave Ratio)</a>. * - * The swr_t type is used as a parameter for the amp_get_swr() function. + * The \c swr_t type is used as a parameter for the amp_get_swr() function. * - * Unless specified otherwise, the unit of swr_t is 1.0 to max reported by tuner + * The unit of \c swr_t is 1.0 to the maximum value reported by the amplifier's + * internal antenna system tuner, i.e. + * <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a>, + * representing the ratio of 1.0:1 to Maximum:1. */ typedef float swr_t; /** * \typedef typedef float tune_value_t - * \brief Type definition for tuning values capacitance and resistance. + * \brief Type definition for the + * <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a> + * tuning values of + * <a href="https://en.wikipedia.org/wiki/Capacitance" >capacitance</a> + * and + * <a href="https://en.wikipedia.org/wiki/Inductance" >inductance</a>. * - * The tune_value_t type is used as a parameter for the amp_get_level() + * The \c tune_value_t type is used as a parameter for amp_get_level(). * - * Unless specified otherwise, the units of tune_value_t is pF and nH + * The unit of \c tune_value_t is + * <a href="https://en.wikipedia.org/wiki/Farad" >picoFarads (pF)</a> + * or + * <a href="https://en.wikipedia.org/wiki/Henry_(unit)" >nanoHenrys (nH)</a>. */ typedef int tune_value_t; /** - * \brief Token in the netampctl protocol for returning error code + * \brief The token in the netampctl protocol for returning an error condition code. */ #define NETAMPCTL_RET "RPRT " @@ -86,9 +105,9 @@ typedef int tune_value_t; //! @cond Doxygen_Suppress typedef enum { - AMP_RESET_MEM, // erase tuner memory - AMP_RESET_FAULT, // reset any fault - AMP_RESET_AMP // for kpa1500 + AMP_RESET_MEM, // erase tuner memory + AMP_RESET_FAULT, // reset any fault + AMP_RESET_AMP // for kpa1500 } amp_reset_t; //! @endcond @@ -103,27 +122,27 @@ typedef enum //! @cond Doxygen_Suppress // TBD AMP_TYPE -#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2) +#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2) #define AMP_TYPE_OTHER 0 #define AMP_TYPE_1 AMP_FLAG_1 #define AMP_TYPE_2 AMP_FLAG_2 -#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2) +#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2) //! @endcond //! @cond Doxygen_Suppress enum amp_level_e { - AMP_LEVEL_NONE = 0, /*!< '' -- No Level */ - AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater */ - AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting nanohenries */ - AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting picofarads */ - AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amp */ - AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward */ - AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse */ - AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak */ - AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code */ + AMP_LEVEL_NONE = 0, /*!< '' -- No Level. */ + AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater. */ + AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting in nanohenries. */ + AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting in picofarads. */ + AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amplifier. */ + AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward. */ + AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse. */ + AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak. */ + AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code. */ }; //! @endcond @@ -139,36 +158,38 @@ enum amp_level_e * enquiries about capabilities. */ +//! @cond Doxygen_Suppress +#define AMP_MODEL(arg) .amp_model=arg,.macro_name=#arg +//! @endcond + /** - * Amplifier Caps * \struct amp_caps - * \brief Amplifier data structure. + * \brief Amplifier capabilities * * The main idea of this struct is that it will be defined by the backend - * amplifier driver, and will remain readonly for the application. Fields that - * need to be modifiable by the application are copied into the struct - * amp_state, which is a kind of private of the AMP instance. + * amplifier driver and will remain read-only for the application. Fields + * that need to be modifiable by the application are copied into the struct + * \c amp_state, which is the private memory area of the AMP instance. * - * This way, you can have several rigs running within the same application, - * sharing the struct amp_caps of the backend, while keeping their own - * customized data. + * This way you can have several amplifiers running within the same + * application, sharing the struct \c amp_caps of the backend, while keeping + * their own customized data. * - * mdblack98: Don't move fields around and add new fields at end of caps - * Shared libraries depend on constant structure to maintain compatibility + * \b Note: Don't move fields around and only add new fields at the end of the + * caps structure. Shared libraries depend on a constant structure to maintain + * compatibility. */ -//! @cond Doxygen_Suppress -#define AMP_MODEL(arg) .amp_model=arg,.macro_name=#arg struct amp_caps { - amp_model_t amp_model; /*!< Amplifier model. */ - const char *model_name; /*!< Model name. */ - const char *mfg_name; /*!< Manufacturer. */ + amp_model_t amp_model; /*!< Amplifier model as defined in `amplist.h`. */ + const char *model_name; /*!< Model name, e.g. MM-5k. */ + const char *mfg_name; /*!< Manufacturer, e.g. Moonbeam. */ const char *version; /*!< Driver version. */ - const char *copyright; /*!< Copyright info. */ + const char *copyright; /*!< Copyright info (should be LGPL). */ enum rig_status_e status; /*!< Driver status. */ int amp_type; /*!< Amplifier type. */ - enum rig_port_e port_type; /*!< Type of communication port. */ + enum rig_port_e port_type; /*!< Type of communication port (serial, ethernet, etc.). */ int serial_rate_min; /*!< Minimal serial speed. */ int serial_rate_max; /*!< Maximal serial speed. */ @@ -180,65 +201,65 @@ struct amp_caps int write_delay; /*!< Write delay. */ int post_write_delay; /*!< Post-write delay. */ int timeout; /*!< Timeout. */ - int retry; /*!< Number of retry if command fails. */ + int retry; /*!< Number of retries if a command fails. */ - const struct confparams *cfgparams; /*!< Configuration parametres. */ + const struct confparams *cfgparams; /*!< Configuration parameters. */ const rig_ptr_t priv; /*!< Private data. */ - const char *amp_model_macro_name; /*!< Model macro name */ + const char *amp_model_macro_name; /*!< Model macro name. */ - setting_t has_get_level; - setting_t has_set_level; + setting_t has_get_level; /*!< Has get_level capability. */ + setting_t has_set_level; /*!< Has set_level capability. */ - gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ - gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ /* * Amp Admin API * */ - int (*amp_init)(AMP *amp); - int (*amp_cleanup)(AMP *amp); - int (*amp_open)(AMP *amp); - int (*amp_close)(AMP *amp); + int (*amp_init)(AMP *amp); /*!< Initializes data structures and returns an #AMP handle--call before amp_open(). */ + int (*amp_cleanup)(AMP *amp); /*!< Frees the data structures associated with the #AMP handle--call after amp_close(). */ + int (*amp_open)(AMP *amp); /*!< Opens the communication channel to the amplifier. */ + int (*amp_close)(AMP *amp); /*!< Closes the communication channel to the amplifier. */ - int (*set_freq)(AMP *amp, freq_t val); - int (*get_freq)(AMP *amp, freq_t *val); + int (*set_freq)(AMP *amp, freq_t val); /*!< Set the frequency of the amplifier. */ + int (*get_freq)(AMP *amp, freq_t *val); /*!< Query the frequency of the amplifier. */ - int (*set_conf)(AMP *amp, token_t token, const char *val); - int (*get_conf)(AMP *amp, token_t token, char *val); + int (*set_conf)(AMP *amp, token_t token, const char *val); /*!< Set the configuration parameter \a val corresponding to the \a token. */ + int (*get_conf)(AMP *amp, token_t token, char *val); /*!< Query the configuration parameter \a val corresponding to the \a token. */ /* * General API commands, from most primitive to least.. :() * List Set/Get functions pairs */ - int (*reset)(AMP *amp, amp_reset_t reset); - int (*get_level)(AMP *amp, setting_t level, value_t *val); - int (*get_ext_level)(AMP *amp, token_t level, value_t *val); - int (*set_powerstat)(AMP *amp, powerstat_t status); - int (*get_powerstat)(AMP *amp, powerstat_t *status); + int (*reset)(AMP *amp, amp_reset_t reset); /*!< Reset the amplifier (careful!). */ + int (*get_level)(AMP *amp, setting_t level, value_t *val); /*!< Query the \a val corresponding to the \a level. */ + int (*get_ext_level)(AMP *amp, token_t level, value_t *val); /*!< Query the \a val corresponding to the extra \a level. */ + int (*set_powerstat)(AMP *amp, powerstat_t status); /*!< Turn the amplifier On or Off or toggle the Standby or Operate status. */ + int (*get_powerstat)(AMP *amp, powerstat_t *status); /*!< Query the power or standby status of the amplifier. */ /* get firmware info, etc. */ - const char *(*get_info)(AMP *amp); + const char *(*get_info)(AMP *amp); /*!< Query available internal information of the amplifier (firmware version, etc.). */ +//! @cond Doxygen_Suppress setting_t levels; unsigned ext_levels; - const struct confparams *extlevels; - const struct confparams *extparms; +//! @endcond + const struct confparams *extlevels; /*!< Extra levels structure. */ + const struct confparams *extparms; /*!< Extra parameters structure. */ const char *macro_name; /*!< Macro name. */ }; -//! @endcond /** - * Amplifier state * \struct amp_state - * \brief Live data and customized fields. + * \brief Amplifier state * - * This struct contains live data, as well as a copy of capability fields + * This structure contains live data, as well as a copy of capability fields * that may be updated (ie. customized) * * It is fine to move fields around, as this kind of struct should @@ -264,21 +285,21 @@ struct amp_state //! @endcond gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ - gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ + gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */ }; /** - * Amplifier structure * \struct amp - * \brief This is the master data structure, - * acting as a handle for the controlled amplifier. + * \brief Amplifier structure * - * This is the master data structure, acting as a handle for the controlled - * amplifier. A pointer to this structure is returned by the amp_init() API - * function and is passed as a parameter to every amplifier specific API call. + * Master amplifier data structure acting as a handle for the + * controlled amplifier. * - * \sa amp_init(), amp_caps(), amp_state() + * A pointer to this structure is returned by the amp_init() API function and + * is passed as a parameter to every amplifier specific API call. + * + * \sa amp_caps(), amp_state() */ struct amp { @@ -406,12 +427,10 @@ extern HAMLIB_EXPORT(const char *) amp_strlevel(setting_t); /** * \def amp_debug - * \brief Convenience definition for debug level. - * - * This is just as convenience definition of the amplifier debug level, - * and is the same as for the rig debug level. + * \brief Convenience macro for generating debugging messages. * - * \sa rig_debug() + * This is an alias of the rig_debug() function call and is used in the same + * manner. */ #define amp_debug rig_debug commit d4bc60be0bc6e6b3288d8ebe5f245bc9e71ee846 Author: Nate Bargmann <n0...@n0...> Date: Fri Feb 5 20:36:49 2021 -0600 Update Doxygen files The latest Doxygen has changed the footer.html substantially from the much older version we were using. Add some Hamlib project specific information to it. Align hamlib.cfg.in to the latest Doxygen. Reduce hamlib.css to only those elements needed for Hamlib customization. Add hamlib.png as a project logo. diff --git a/doc/footer.html b/doc/footer.html index 38c4e29a..41c5ce94 100644 --- a/doc/footer.html +++ b/doc/footer.html @@ -1,8 +1,30 @@ -<!-- Footer for Doxygen HTML files --> -<hr> -<div class="doxy">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion</small></address></div> -<p style="font-size: 75%">Hamlib documentation for version $projectnumber -- $datetime<br /> -Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br /> -</p> +<!-- HTML footer for doxygen 1.9.1--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath + <li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li> + </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> +<hr class="footer"/> +<address class="footer"> + <small> + $generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion + </small> +</address> +<!--END !GENERATE_TREEVIEW--> +<div id="hamlib" class="footer" > + <p class="alignleft"> + Hamlib documentation for version $projectnumber—$datetime<br /> + Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br /> + </p> + <p class="alignright"> + <a href="https://sourceforge.net/p/hamlib/"><img alt="Download Ham Radio Control Libraries" src="https://sourceforge.net/sflogo.php?type=13&group_id=8305" ></a> + </p> +</div> +<div style="clear: both;"></div> </body> </html> diff --git a/doc/hamlib.cfg.in b/doc/hamlib.cfg.in index 07d1eed0..e2225d8c 100644 --- a/doc/hamlib.cfg.in +++ b/doc/hamlib.cfg.in @@ -1,7 +1,8 @@ -## hamlib.cfg.in--converted into hamlib.cfg by configure +## hamlib.cfg.in--converted into hamlib.cfg by config.status -PROJECT_NAME = "Hamlib" +PROJECT_NAME = Hamlib PROJECT_NUMBER = @VERSION@ +PROJECT_LOGO = @top_srcdir@/doc/hamlib.png # Output OUTPUT_DIRECTORY= . @@ -14,31 +15,31 @@ GENERATE_MAN = NO # User can set to YES for local man pages MAN_EXTENSION = .3 # Input -CASE_SENSE_NAMES = NO -FULL_PATH_NAMES = NO -INPUT = @top_srcdir@/doc/index.doxygen \ - @top_srcdir@/src/ @top_srcdir@/include/hamlib/ - -INCLUDE_PATH = @top_srcdir@/include - -EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \ - @top_srcdir@ - -QUIET = YES - -HTML_STYLESHEET = @top_srcdir@/doc/hamlib.css -HTML_FOOTER = @top_srcdir@/doc/footer.html - -EXTRACT_ALL = NO -EXTRACT_STATIC = NO -HIDE_UNDOC_MEMBERS = NO -SHOW_INCLUDE_FILES = YES -INHERIT_DOCS = YES -ENABLED_SECTIONS = "" -PREDEFINED = DOXYGEN "DOC_HIDDEN" -JAVADOC_AUTOBRIEF = NO -OPTIMIZE_OUTPUT_FOR_C = YES # doxygen 1.2.6 option - -MAN_LINKS = NO -MACRO_EXPANSION = YES - +CASE_SENSE_NAMES = YES +FULL_PATH_NAMES = NO +INPUT = @top_srcdir@/doc/index.doxygen \ + @top_srcdir@/include/hamlib/ \ + @top_srcdir@/src/ + +INCLUDE_PATH = @top_srcdir@/include + +EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \ + @top_srcdir@ + +QUIET = YES + +HTML_FOOTER = @top_srcdir@/doc/footer.html +HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/hamlib.css + +EXTRACT_ALL = NO +EXTRACT_STATIC = NO +HIDE_UNDOC_MEMBERS = NO +SHOW_INCLUDE_FILES = YES +INHERIT_DOCS = YES +ENABLED_SECTIONS = "" +PREDEFINED = DOXYGEN "DOC_HIDDEN" +JAVADOC_AUTOBRIEF = NO +OPTIMIZE_OUTPUT_FOR_C = YES + +MAN_LINKS = NO +MACRO_EXPANSION = YES diff --git a/doc/hamlib.css b/doc/hamlib.css index 554d6261..d6edeb7a 100644 --- a/doc/hamlib.css +++ b/doc/hamlib.css @@ -1,662 +1,29 @@ -/* The standard CSS for doxygen */ +/* Custom CSS for Hamlib used by the Doxygen generated HTML pages. */ -body, table, div, p, dl { - font-family: sans-serif; - font-size: 100%; -} - -/* @group Heading Levels */ - -h1 { - font-size: 2.5em; -} - -h2 { - font-size: 1.875em; -} - -h3 { - font-size: 1.20em; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - padding: 2px; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: none; - background-color: #f0f0fd; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code { - color: #4665A2; -} - -a.codeRef { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 90%; - line-height: 125%; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 10px; - margin-right: 10px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ +/* Add padding around the Hamlib logo in the page header. */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 3px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.memitem { - padding: 0; - margin-bottom: 10px; -} - -.memname { - white-space: nowrap; - font-weight: bold; - margin-left: 6px; -} - -.memproto { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - -} - -.memdoc { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 2px 5px; - background-color: #FBFCFD; - border-top-width: 0; - /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; -} - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul +#projectlogo { - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right: 15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} + padding-right: 0.85em; + padding-left: 0.8em; + padding-top: 0.5em; + padding-bottom: 0.5em; -.navpath a:hover -{ - color:#6884BD; } -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} -div.summary a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} +/* Align the Hamlib footer elements to the left and right and pad + * from the screen edge to align with other page padding. */ -div.headertitle +.footer p.alignleft { - padding: 5px 5px 5px 10px; + float: left; + font-size: 75%; + padding-left: 1.5em; } -div.doxy +.footer p.alignright { - float: right; - font-size: 75%; + float: right; + padding-right: 0.85em; } diff --git a/doc/hamlib.png b/doc/hamlib.png new file mode 100644 index 00000000..70992fef Binary files /dev/null and b/doc/hamlib.png differ ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-05 23:41:59
|
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 1d8a010493528168e1ac2d033892ed547782e08f (commit) via 9c3a12c6f05f6673446533e4b6b0821173176c9c (commit) via d8bd6a5d4ed5c8542cecb117653290ad30c32ffe (commit) from 92492c46275c8030b754b6253a3db2c124c967f1 (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 1d8a010493528168e1ac2d033892ed547782e08f Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Feb 5 17:40:10 2021 -0600 Fix 2nd arg prompt for rigctl https://github.com/Hamlib/Hamlib/issues/447 https://github.com/Hamlib/Hamlib/issues/339 diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 4e00f968..2b39527b 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -995,16 +995,12 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, { rig_debug(RIG_DEBUG_TRACE, "%s: debug7\n", __func__); -#if 0 // was printing Reply: twice - if (prompt) { rig_debug(RIG_DEBUG_TRACE, "%s: debug8\n", __func__); fprintf_flush(fout, "%s: ", cmd_entry->arg2); } -#endif - if (scanfc(fin, "%s", arg2) < 1) { rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#9?\n", __func__); commit 9c3a12c6f05f6673446533e4b6b0821173176c9c Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Feb 5 17:33:59 2021 -0600 Fix netrigctl.c parsing of CHKVFO response diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index 4b507415..cd03aedd 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -215,7 +215,11 @@ static int netrigctl_open(RIG *rig) len = sprintf(cmd, "\\chk_vfo\n"); ret = netrigctl_transaction(rig, cmd, len, buf); - if (ret == 2) + if (sscanf(buf,"CHKVFO %d", &priv->rigctld_vfo_mode)==1) + { + rig_debug(RIG_DEBUG_TRACE, "%s: chkvfo=%d\n", __func__, priv->rigctld_vfo_mode); + } + else if (ret == 2) { if (buf[0]) { sscanf(buf, "%d", &priv->rigctld_vfo_mode); } } @@ -2284,7 +2288,7 @@ struct rig_caps netrigctl_caps = RIG_MODEL(RIG_MODEL_NETRIGCTL), .model_name = "NET rigctl", .mfg_name = "Hamlib", - .version = "20210108.0", + .version = "20210204.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_OTHER, commit d8bd6a5d4ed5c8542cecb117653290ad30c32ffe Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Feb 4 23:47:59 2021 -0600 Reduce debug level in network.c diff --git a/src/network.c b/src/network.c index 07741a5b..b5a81000 100644 --- a/src/network.c +++ b/src/network.c @@ -216,7 +216,7 @@ int network_open(hamlib_port_t *rp, int default_port) if (status == 0 && res->ai_family == AF_INET6) { - rig_debug(RIG_DEBUG_ERR, "%s: Using IPV6\n", __func__); + rig_debug(RIG_DEBUG_TRACE, "%s: Using IPV6\n", __func__); //inet_pton(AF_INET6, hoststr, &h_addr.sin6_addr); } ----------------------------------------------------------------------- Summary of changes: rigs/dummy/netrigctl.c | 8 ++++++-- src/network.c | 2 +- tests/rigctl_parse.c | 4 ---- 3 files changed, 7 insertions(+), 7 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-04 13:24:49
|
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 92492c46275c8030b754b6253a3db2c124c967f1 (commit) from e589e078a11a38b76e1f84bfbc1ec0f74b32f3b5 (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 92492c46275c8030b754b6253a3db2c124c967f1 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Feb 4 07:23:53 2021 -0600 Modify perltest.pl for multi-line rig_error return https://github.com/Hamlib/Hamlib/issues/526 diff --git a/bindings/perltest.pl b/bindings/perltest.pl index 91652ad2..509560ad 100755 --- a/bindings/perltest.pl +++ b/bindings/perltest.pl @@ -57,7 +57,8 @@ print "strength:\t\t$lvl\n"; $chan = new Hamlib::channel($Hamlib::RIG_VFO_A); $rig->get_channel($chan,1); -print "get_channel status:\t$rig->{error_status} = ".Hamlib::rigerror($rig->{error_status})."\n"; +@tokens = split("\n",Hamlib::rigerror($rig->{error_status})); +print "get_channel status:\t$rig->{error_status} = ".$tokens[0]."\n"; print "VFO:\t\t\t".Hamlib::rig_strvfo($chan->{vfo}).", $chan->{freq}\n"; ----------------------------------------------------------------------- Summary of changes: bindings/perltest.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-03 18:55:28
|
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 e589e078a11a38b76e1f84bfbc1ec0f74b32f3b5 (commit) via 76f3099aef7db03dd8ff5403c63ce39050140223 (commit) from 96e2cc7829bb7d640be6620ea0c56d3d0c4fbec2 (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 e589e078a11a38b76e1f84bfbc1ec0f74b32f3b5 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Feb 3 12:54:30 2021 -0600 Add 3 second sleep in icom powerstat to allow the rig to wake up https://github.com/Hamlib/Hamlib/issues/525 diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 307302fe..9c60086a 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -6231,6 +6231,7 @@ int icom_set_powerstat(RIG *rig, powerstat_t status) retval = icom_transaction(rig, C_SET_PWR, pwr_sc, NULL, 0, ackbuf, &ack_len); rs->rigport.retry = retry; + hl_usleep(3000*1000); // give it 3 seconds to wake up break; diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 4d87d12d..8e7923e3 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include <sys/time.h> #endif -#define BACKEND_VER "20210129" +#define BACKEND_VER "20210203" /* * defines used by comp_cal_str in rig.c commit 76f3099aef7db03dd8ff5403c63ce39050140223 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Feb 3 11:45:57 2021 -0600 Remove 500ms from icom/frame.c -- should not be needed Reduce icom echo check to just 2 tries Improves power up sequencing by about 7 seconds https://github.com/Hamlib/Hamlib/issues/525 diff --git a/rigs/icom/frame.c b/rigs/icom/frame.c index c6d657aa..fab4a21e 100644 --- a/rigs/icom/frame.c +++ b/rigs/icom/frame.c @@ -320,8 +320,9 @@ int icom_transaction(RIG *rig, int cmd, int subcmd, { break; } + rig_debug(RIG_DEBUG_WARN, "%s: timeout retry=%d\n", __func__, retry); - hl_usleep(500 * 1000); // pause a half second + //hl_usleep(500 * 1000); // pause a half second -- don't think we need this } while (retry-- > 0); @@ -330,7 +331,7 @@ int icom_transaction(RIG *rig, int cmd, int subcmd, rig_debug(RIG_DEBUG_VERBOSE, "%s: failed: %s\n", __func__, rigerror(retval)); } - return retval; + RETURNFUNC(retval); } /* used in read_icom_frame as end of block */ diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 455b7a7a..307302fe 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -704,7 +704,7 @@ int icom_get_usb_echo_off(RIG *rig) rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); // reduce the retry here so it's quicker - rs->rigport.retry = 1; + rs->rigport.retry = 0; // Check for echo on first priv->serial_USB_echo_off = 0; ----------------------------------------------------------------------- Summary of changes: rigs/icom/frame.c | 5 +++-- rigs/icom/icom.c | 3 ++- rigs/icom/icom.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-03 15:59:55
|
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 96e2cc7829bb7d640be6620ea0c56d3d0c4fbec2 (commit) from 228cc10aeb3e24c244066f518629bd5b2e0ac0fe (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 96e2cc7829bb7d640be6620ea0c56d3d0c4fbec2 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Feb 3 09:59:14 2021 -0600 Fix extra LF in debug messages diff --git a/src/rig.c b/src/rig.c index 27cd7640..65b594b4 100644 --- a/src/rig.c +++ b/src/rig.c @@ -303,6 +303,9 @@ const char *HAMLIB_API rigerror(int errnum) } static char msg[25000]; + // we have to remove LF from debugmsgsave since calling function controls LF + char *p = &debugmsgsave[strlen(debugmsgsave)-1]; + if (*p=='\n') *p=0; snprintf(msg, sizeof(msg), "%.80s\n%.15000s", rigerror_table[errnum], debugmsgsave); return msg; } ----------------------------------------------------------------------- Summary of changes: src/rig.c | 3 +++ 1 file changed, 3 insertions(+) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-02-03 06:00:28
|
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 228cc10aeb3e24c244066f518629bd5b2e0ac0fe (commit) via bd4c8c2e04d866230cb8b8fc977c8af171bd07ae (commit) from b53eed7cd34ca5a2457fa5ae1029e54e913826a9 (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 228cc10aeb3e24c244066f518629bd5b2e0ac0fe Author: root <root@localhost.localdomain> Date: Wed Feb 3 06:13:12 2021 +0100 Fix compile warnings with -O2 flag diff --git a/src/rig.c b/src/rig.c index 868bbcc7..27cd7640 100644 --- a/src/rig.c +++ b/src/rig.c @@ -303,7 +303,7 @@ const char *HAMLIB_API rigerror(int errnum) } static char msg[25000]; - snprintf(msg, sizeof(msg), "%80s\n%15000s", rigerror_table[errnum], debugmsgsave); + snprintf(msg, sizeof(msg), "%.80s\n%.15000s", rigerror_table[errnum], debugmsgsave); return msg; } @@ -1573,7 +1573,7 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) if (retcode != RIG_OK) { - rig_debug(RIG_DEBUG_ERR, "%s: set_vfo err %s\n", __func__, rigerror(retcode)); + rig_debug(RIG_DEBUG_ERR, "%s: set_vfo err %.10000s\n", __func__, rigerror(retcode)); RETURNFUNC(retcode); } @@ -2257,7 +2257,7 @@ int HAMLIB_API rig_set_vfo(RIG *rig, vfo_t vfo) } else { - rig_debug(RIG_DEBUG_ERR, "%s: set_vfo %s failed with '%s'\n", __func__, + rig_debug(RIG_DEBUG_ERR, "%s: set_vfo %s failed with '%.10000s'\n", __func__, rig_strvfo(vfo), rigerror(retcode)); } @@ -2266,7 +2266,7 @@ int HAMLIB_API rig_set_vfo(RIG *rig, vfo_t vfo) if (retcode == RIG_OK && caps->get_freq) { retcode = caps->get_freq(rig, vfo, &curr_freq); - rig_debug(RIG_DEBUG_TRACE, "%s: retcode from rig_get_freq = %s\n", __func__, + rig_debug(RIG_DEBUG_TRACE, "%s: retcode from rig_get_freq = %.10000s\n", __func__, rigerror(retcode)); } else // don't expire cache if we just read it @@ -2351,7 +2351,7 @@ int HAMLIB_API rig_get_vfo(RIG *rig, vfo_t *vfo) if (retcode != RIG_OK) { - rig_debug(RIG_DEBUG_ERR, "%s: returning %d(%s)\n", __func__, retcode, + rig_debug(RIG_DEBUG_ERR, "%s: returning %d(%.10000s)\n", __func__, retcode, rigerror(retcode)); } commit bd4c8c2e04d866230cb8b8fc977c8af171bd07ae Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Feb 1 17:45:42 2021 -0600 Add 0W reference for FTDX101D power meter https://github.com/Hamlib/Hamlib/issues/524 diff --git a/rigs/yaesu/ftdx101.c b/rigs/yaesu/ftdx101.c index 3871e810..3bb1eeaf 100644 --- a/rigs/yaesu/ftdx101.c +++ b/rigs/yaesu/ftdx101.c @@ -76,7 +76,7 @@ const struct rig_caps ftdx101d_caps = RIG_MODEL(RIG_MODEL_FTDX101D), .model_name = "FTDX-101D", .mfg_name = "Yaesu", - .version = NEWCAT_VER ".8z", + .version = NEWCAT_VER ".9", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff --git a/rigs/yaesu/ftdx101.h b/rigs/yaesu/ftdx101.h index 24713352..c13d2d03 100644 --- a/rigs/yaesu/ftdx101.h +++ b/rigs/yaesu/ftdx101.h @@ -74,8 +74,9 @@ // Borrowed from FLRig -- Thanks to Dave W1HKJ #define FTDX101D_RFPOWER_METER_CAL \ { \ - 5, \ + 6, \ { \ + {0, 0.0f}, \ {35, 5.0f}, \ {94, 25.0f}, \ {147, 50.0f}, \ ----------------------------------------------------------------------- Summary of changes: rigs/yaesu/ftdx101.c | 2 +- rigs/yaesu/ftdx101.h | 3 ++- src/rig.c | 10 +++++----- 3 files changed, 8 insertions(+), 7 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-01 02:04:13
|
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 annotated tag, 4.1 has been created at 907645e2a62d0ebd19244adb4ea4d6a7a7e9f996 (tag) tagging 645717241f4a952d05eab50e1bfb990a3d3d8b53 (commit) tagged by Nate Bargmann on Sun Jan 31 19:59:07 2021 -0600 - Log ----------------------------------------------------------------- Hamlib 4.1 release -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEG5vcSeqIHtMzWHg79yYl4u2+1ZgFAmAXYH4ACgkQ9yYl4u2+ 1ZgGmwwA1Jn2nM2vDg3JJXDrMZmW81tZyWOLU1kVcFd/g/DpFgR4UtrohgJNQeP3 z7wGyt/mlscc6siLKLEp4cGcqDIBIHn+X00hJVgKiTxOwBT1nXeZfBPeQLJyS73W F8Rc6XIvM67ArJyuAJT9S5Vl5YPtvRzpVrQ0JqrXbi60Qycb7qRXSjwEipt3sCxr W+vrkm/BoiYW2T61K+sTwYiKph8mIh2KyAlMvr2ZSLnTDQEeuzJrbn/S+Ia9ndCn baggOUXcED60scXJeLbnB8i+F0Up0KbSz/3CYN8Bd27r26/AMY4m4P1ptxBEmbvc RwEymWL8oQoRwxSZU5TzY0u8eEiZ0sBkZ1pwHHCDE96FasG8XFWpcwAj8nT+ZKJd jV2pnwnBVdvOLSmcH95yAwWloxhkyfvrBxE3kohqng/08WQVbs7u9bGq9FXYFdP5 2hzf8DL40+MrEor0DRY2lwXiUj98bSDoUZkxVceOTyy7q7ir8drNJ4MCMeHJ9v/0 2uyBfQjx =TI40 -----END PGP SIGNATURE----- (no author) (1): New repository initialized by cvs2svn. Adrian Chadd (1): Upgrade TS-711 and TS-811 to work. Agis Zisimatos (1): easycomm: Return the correct value of pointer val Alessandro Zummo, IZ1PRB (36): Remove const from priv_caps to allow kenwood_init to initialize default values if they're missing Call kenwood_init in each and every driver Use an appropriate debug level Support get/set_powerstat on pcr100 Add kenwood_simple_cmd Make set_ptt behave as before, fix set_ant for ts570.c ts450: remove RIG_FUNC_TONE from has_xx_func if tone unit is not detected ts450,ts690,ts850: use FL command to get/set filters in get/set_mode. (code from ts850.c) ts450: indentation fixes remove fixed command terminator (;) from generic code ts140,ts2000,ts480,ts570,ts680,ts850,ts870s: remove usage of fixed ; and EOM fix tabs thg71,tmv7,ts450s,ts690: verify rig id at rig_open ts450: implement set_channel remove unused parameter from get_kenwood_func ts570,ts850,ts870s,ts140,ts480,ts680: use kenwood_simple_cmd where possible Replace __FUNCTION__, which is gcc specific and was deprecated a long time ago, with __func__, which is at least defined in C99. generic, ts850: implemented CTCSS TN command (reported not working for ts850, should now be fixed) Add description for the kenwood mode n. 8 implemented set/get_ext_param (voice, fine, xit, rit). enabled on ts450 and ts850 Added my call sign removed comment about switch optimizatons. the compiler will generate the assembly code in a different order which is usually based on the case value. other compiler optimizations might also affect it, so it's useless to optimize the order. check ptt status before set_ptt. enabled on ts850. style fixes band up/down was inverted Try to compensate for leftover characters Try to cope withe the PCR100 and PCR1000 at the same time Bumped out to beta, solved a few bugs. Tested with PCR100/1000/1500. kenwood: send the whole buffer at once, added kenwood_cmd - removed EOM, it's handled by kenwood_transaction - fixed tabs and spaces - added generic routine for vfo errors - set_mem: do not switch vfo if already in mem mode - simplified invocation of some commands - buffer optimizations - added PARM_BEEP and PARM_APO - fixed getting of LEVEL_RFPOWER - fixed get_ant tmv7: removed EOM thg71: removed EOM thf7: - wrong rfpower level granularity - added .reset - call kenwood_open - use generic th_set_vfo th: fixed formatting issue th: fixed stack corruption th: fixed a missing newline Alex V Flinsch, KC2IVL (8): Initial changes for ft100 Initial release initial release fixed various command options new file, list of tones/codes and sequence used by various yaesu rigs added get frequency to ft100 code added getinfo func hdr *** empty log message *** Alexander Sack (1): Get firmware revision level from K3/KX3. Alexander Schultze (3): easycomm: include a new EasyComm3 to support move speed and infostring update EasyComm3 to include setting and getting of config and status easycomm: implement get/set config, easycom include status and error bytes, fix get_info Alexandru Csete OZ9AEC (34): Added new stylesheet to make API docs look better. Modified to use new stylesheet. Added doxygen comments. Added rotator.h and rotlist.h to the input list. Applied Tommi's improvements from the FT-857 backend with the following changes and additions: Full RF power scale corresponds to 10 bars, not 15. Added RIT, XIT and IF shift ranges to dummy backend. Cast constant caps to variable caps in order to avoid compiler warnings. Cast from const to variable in order to avoid compiler warnings. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (ft920). - Disable unused functions and variables (frg100). - Incremented backend version numbers. Use tone_t for pcr1_ctcss_list. Changed arg 4 of pcr_transaction to unsigned. Cast the other mismatches to (char *). Cast unsigned char to char in order to avoid compiler warnings. Incremented backend version number. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (tentec.c). - Cast unsigned char to char in order to avoid compiler warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast unsigned char to char in order to avoid compiler warnings. - Handle all enum values in switch statements. Fixed type mismatches that caused compile warnings. Fixed type mismatches that caused compile warnings. Initialise icom_val to avoid compiler warning. Fixed type mismatches between signed and unsigned char. There are a few very suspicious 'if' statements in icom.c and frame.c - Fixed type mismatches and unhandled switch cases. - Incremented backend version numbers. Cast constant caps to variable caps in order to avoid compiler warnings. Updated. Added infor about w (send_cmd). Max serial rate is 9600. Changed backend status to stable. Escape the backslash character. The 765 can do RIG_SCAN_PROG and RIG_SCAN_MEM. Fixed S-meter reading to use calibration table since frontend always uses RAWSTR. Fixed RF power reading and added power2mw and mw2power. Fixed RIG_LEVEL_STRENGTH reading. Andrew Errington (1): Initial support for CM108 GPIO contorl of PTT Ben Coleman, NJ8J (6): Fixed bug in rpcrig_set_parm (using RIG_LEVEL_IS_FLOAT instead of RIG_PARM_FLOAT) Fixed same bug in rigctl_get_parm. Added checking of return string from rig on set (non-retrieval) commands. Added code for COMP function. Added alinco_set_parm & tweaked dx77 capabilities. Handle setting Keyer speed and CW Pitch Added NJ8J's email address. Change email address for NJ8J Berndt Josef Wulf, VK5ABN (11): Implemented rig_set_channel() Implemented set_parm() for BACKLIGHT operation Commented out RIG_MODE_PKTFM overlooked at the submission of previous code Implemented RIG_MODE_PKTFM and RIG_MODE_PKTLSB modes Changed debug message format for freq_t from long long to double ft990_get_ptt() now uses the FT990_SF_XMIT instead of FT990_SF_PTT. FT990_SF_PTT only returns status of PTT activated by CAT commands, whereas FT990_SF_XMIT reports the actual status of the ptt line. ft990_get_mem(): Fixed bug that prevented the reporting of current channel number when vfo != RIG_VFO_MEM Fixed erroneous return value Fixed mispelled name for VK5ABN Added missing modes to RX/TX caps Fixed bug in ft990_set_mode that caused RTTY interchanged modes USB/LSB Fixed bugs in ft990_get_channel Bill Barker (1): Add test for Flex 6300 ID Bill Somerville (210): Patch submission for IC-756 Patch to allow same serial port for PTT and CAT. Patch to fix broken Yaesu backend with FT-2000(D) Fix rig_open not failing when PTT/DCD port is unavailable. Fix Icom IC-756 filter handling. Fix Yaesu newcat backend set_tx_vfo issue. Add support for Data Modes on Icom "Pro" models. Fix Icom IC-726 mode handling. Fix Kenwood TS-2000 split operation. Fix Kenwood Split Operation for TS50 & TS480. Fix Kenwood TS-870s split and bandwidth set/get. Correct receive buffer length for IS; comamnd. Fix Kenwood CAT transaction busy retry mechanism. Fix Kenwood get split VFO function. Add data sub-mode support for TS590s. Correct order of MD and DA commands for TS590s. Get firmware revision for TS590s in rig_open. Fix TS590s firmware defect. Fix Kenwood get_vfo function returning wrong VFO in split TX. Make Kenwood TS590s firmware defect fixup revision specific. Extend TS590s firmware defect fixup to both VFOs. Fix Icom IC-756 Pro III get data mode. Add spilt mode get and set for Elecraft K3. Fix data sub-modes on Elecraft K3. Fix Elecraft Data Mode Translation. Fix Elecraft K3 Data Sub-Mode Setting. Fix Yaesu FT1000MP and FT1000MP Mk V modes. Fix configure.ac Fix a warning message. Added option to not use VFO XCHG command when setting split parameters. Fix a buffer overflow in the Windows termios emulation. Fix pkg-config generation. Fix Icom IC-756Pro mode get/set. Facility for rigctl to read commands from standard input. Add a pause command to the rigctl command set. Prefix action function names so as not to clash with system names. Prefix action function names so as not to clash with system names. Corrected typos in rigctl.1 manpage. Add read commands from stdin and pause command features to rotctl. Merge branch 'rigctl-stdin' of ssh://git.code.sf.net/u/bsomervi/hamlib into rigctl-stdin Fix manpage errors. Remove redundant RIG_PTT_SERIAL_CAT enum from ptt_t Only check for serial control line conflicts if PTT shares CAT port Fix Ten-Tec Orion get/set split functions Icom IC-7410 has VFO A/B not MAIN/SUB Added IC-7410 data modes Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Merge branch 'yaesu-retries' of ssh://git.code.sf.net/u/bsomervi/hamlib into yaesu-retries RIG_OK is zero and need not be negated and this will not change Fix response length expected error in K3 back end Data mode support for the Icom IC-7700 Data mode support for the Icom IC-9100 Data mode support for the Icom IC-7200 Add support for the Kenwood TS-590SG Kenwood TS-590SG Always clear serial control lines when used for PTT Disable AI mode on open for Kenwood/Elecraft rigs Add more diagnostics and error checks to serial line control Move serial line control error checks to lower level routines Merge branch 'master' into kenwood-ai-off-at-start Merge branch 'master' into ptt-control-on-cat-port Fix serial i/o on Windows. Yaesu newcat style command response reading improvements Increase communications timeout for Icom rigs Kenwood AIn; command has no reply Revert read_string() to partial results are a success status Remove gratuitous sleeps before function exits Error checks on simulated direct VFO addressing Elecraft K2 RTTY modes are not FSK Kenwood and Elecraft rigs sometimes ignore commands Removed kenwood_cmd function and replaced uses of it Allow for failed test command on the K2 Elecraft K3 has 1 stop bit Kenwood TS-570 series IF returns current frequency Switch to "ID;" command for verification as no "AI;" on TS-840s Increase Elecraft K2 comms timeout and retries Switch Kenwood TS940 to generic kenwood CAT functions Improve command verification for Kenwood & Elecraft Use local buffer in kenwood transaction funciton Clarify the handling of Kenwood CAT message terminators Further clarification in the implementation of kenwood_transaction() Removed redundant precondition test Remove kenwood_simple_cmd as kenwood_transaction has that functionality Call kenwood_open() for TS-2000 to ensure AI mode is disabled Allow for bad ID from DDUtil in TS-2000 mode Allow one extra byte in read_string() length to accomodate terminator Enable data modes for the Icom IC-7100 Allow for PowerSDR ID in Kenwood TS2000 emulation mode Fix TenTec Argonaut message lengths and timeout Fix TenTec set split command Implement get PTT status for the TenTec Argonaut Fix error with width in set mode for the TT argonaut Yaesu FT540 can only change the frequency of the current VFO Fix defect in Kenwood TS-940 IF command response parsing Fix response lengths for the TT Jupiter 538 Do not attempt CAT PTT commands on the Icom IC-706mkIIG Use correct argument type for serial control line functions Initial back end implementation for the Kenwood TS-990s Mode set is not VFO targetable on the Kenwood TS990s The Kenwood TS990s only does split Tx on SUB VFO The doesn't appear to be a way of getting PTT/SEND on the TS990s Lower both RTS and DTR on alternate PTT serial port Honour any error status from serial port calls Dummy get_ptt function needs to read RTS/DTR/PARALLEL Make autogen.sh agnostic to whitespace in paths Increase the number or retries for most Kenwood rigs Command validation for Yaesu set commands Remove unecessary delays from TS-940S backend Proper IPv6 and dual stack networking Fix compiler warnings Proper IPv6 and dual stack networking for rotator net daemon Attempt to restore AI status on exit Allow for poor emulations of Kenwood rigs that have no ID command Use correct function to execute set type commands with no response Add a new command line option '--no-restore-ai' ('-n') to rigctl Fix FT-817/857/897 issues and add some missing functionality Fix missing PKTUSB mode setting code for FT-817 & FT-897 Fix a logic error in band detection during IC-910 set frequency Add missing configuration getters Detect C-IV NAK returns as rejected commands Elecraft rigs do not switch VFO in IF command responses during split Tx. Redundant split mode directives on Elecraft rigs cause Tx failures Only use IPv6 features on Windows versions that support it (>=XP) Improve IPv6 portability and consistency Add 23cms to IC-910(H) backend Implement combined split VFO frequency and mode setting. Initial implementation of rig_{set,get}_split_freq_mode() for FT-857. Implement rig_{set,get}_split_freq_mode() for IC-756 series. Add {get,set}_splitfrequency_mode for the IC-910(H) Elide unnecessary CAT commands when setting split frequency and mode Do not swap VFO unnecessarily Better set frequency semantics for the IC-910(h) VFO targetable get frequency operation for the Icom IC-910(h) Make sure right band is used when setting frequency on IC-910(H) Use rig state rig port retry option rather than from capabilities Use a sensible port timeout value for the Kenwood TS-850 Further attempts to simplify and improve Icom CAT for split operating Add RIG_PASSBAND_NOCHANGE as possible set_{split_,split_freq_,}mode argument Switch to POSIXLY_CORRECT mode for getopt_long() Fix a regression introduced in 222ad74 Do not crash if expected CTCSS tones not sepcified Do not attempt to query AI state on the TS-450s as it is not supported Some more Kenwood rigs with no AI query Adjust rig_list_foreach to allow use for unregistering Fix an issue presenting on the Yaesu FT-450(D) Release the serial port used for PTT when possible Change the IC7600 & IC7800 set/get mode to versions that support DATA modes Add rig_{open,close} functions to TS-790 backend Revised kenwood rig busy response handling Add get and set split functions for the TS450S Simplify and fix defects in the FT991 back end Fix some endian issues in the si570/AVR SDR back ends Fix a state machine defect with repeated PTT reset calls Do not pass --no-cpp_precomp to compilers on Mac OS X Allow RIG_LEVEL_STRENGTH queries over the network link Stop rigctld and rotctld crashing when service threads cannot write to clients Use snprintf throughout kenwood/kenwood.c for buffer safety Fix off-by-one issue in reading memory mode from IF command response Fix some issues with commands not supported by TS-2000 CAT emulations Add best guess transmit status to rig state structure Take out unecessary delays in K(X)3(S) back end. FT-817 status queries honour retries and timeout Make rig_open() call in rigctld lazy and add graceful termination Simplify SWIG interface definition and hide 64-bit values from Lua binding Remove unnecessary delays from TS-990 and TS-2000 back ends Change frequency setting for the FT-747GX to something more basic Fix an incorrect error return value from win32_serial_select() Fix timeout issues with the Ten-Tec Orion/Eagle Ensure compilation works with a pre C11 compiler Make code C90 compliant again Move unnecessary global and file static variables to the stack Simplify unnecessary persistence of extended response state Fix misunderstanding of netrigctl_transaction() return value Made PTT and DCD options consistent between rigctl and rigctld Report unrecognised PTT and DCD types in rigctl and rigctld Update i/o functions to support GPIO(N) port closure Fixed erroneous messages in rig_close with GPIO(N) PTT or DCD types Remove duplication across GPIO and GPION handling of PTT and DCD Improved get PTT state handling in dummy backend Simplify closing of device files Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Fix regression with slow responses from SmartSDR causing errors Deal with remote PTT type at the client end Avoid 'echo -n' as macOS sh doesn't support it Fixing an operator precedence defect Updates to the TH-D7A/E back end Less ambiguous variable name and repair merge issue in prior commit Add missing config parameters for rig power on/off and screen-saver New power on option rather than power on/off Make version recording safe for parallel builds without breaking make dist Make version recording safe for parallel builds Ensure old hamlibdatetime.h headers in the source dir are ignored Merge branch 'safe-scs-versioning' of ssh://git.code.sf.net/u/bsomervi/hamlib into safe-scs-versioning Fix make dist versioning Use BUILT_SOURCES make mechanism as intended Fix rebuild dependency Build hamlibdatetime.h every time Force copy over existing Minimize rebuilding Correct use of sh if Another attempt at a reliable SCS version header generation Remove temporary file Blaine Kubesh (8): added Icom803 to icmarine added Icom803 to icmarine added Icom803 to icmarine Update ic-m803 remote-id to 20 Update icm803.c Update AUTHORS undo author changes Update icm803.c Bob Freeman (1): New CNCTRK rotor backend Brian G. Lucas (10): Pretty much a complete re-write of thd72.c, since the old one didn't work at all. Many commands have been tested with real hardware. But more work remains to be done. WIP: thd72 driver. More level, func, and parm stuff works. WIP: thd72 driver. Try to simplify the menu based interface. WIP: thd72 driver. First cut at get_channel(). Other cleanup. WIP: thd72 driver. More interfaces implemented. Other cleanup. Implement some more interfaces. Comment out get_chan_all_cb because the block read routine doesn't work. Fix a format so that it works with Windows. Can't test it because I have no Windows machines. Fix RFPOWER level for FT-450D. It uses 5-100, rather than 0-255 that the FT-450 does. In newcat_open(), initialize rig_id in case any subsequent commands need it. Some calls to thd72_get_menu_item where passing wrong values for range check. C-Elegans (1): Add ability to have rigctld display transverter frequency Charles Suprin (7): Add file for TM-D710 support. Merge branch 'master' of ssh://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib Add D710 to riglist. Add D710 code to kenwood library. Register D710 interface. Initial D710 Implementation. Register D710 interface. Charles Suprin, AA1VS (3): extend th_get_vfo_char to support D700 Changed th_set_freq to round and select step size to use. Allows 6.25kHz and 5kHz channelization. Use new th_set_freq for TM-D700 Chris Karpinsky, AA1VL (7): add serial_flush() method to clean rx buffer initial stab at this for the Yaesu FT-817 add ft817.* add ft817 bump the backend status to ALPHA Initial entry of cgirig giving ability to use hamlib from a web browser. increased post write delay to 300 Chris Ruvolo (4): TS-690: deal with optional tone board using TS-450 logic TS-690 does not implement the PC command to get/set output power level TS-690 does not implement the GT command to get/set AGC rate TS-690: bump version Chuck Hemker, N2POR (1): Use RIG_TARGETABLE_MODE in rig_set_mode and rig_get_mode DL1YCF (5): Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Dale E. Edmons, KD7ENI (19): Added comments to commandline in rigctl (second time) --Dale Started TS-2000 update/overhaul --Dale Copied too much stuff, backed out what I broke. Bring ts2k.c more in line with current CVS. Changed ts2000.c to ts2000.h. Start of rig menuing functions. New file. Renamed ts2000.c.new ts2000.h Bring code more in line with CVS code. Changes often, so added status. Will delete when things stabilize. Corrected status to CVS branch. Renamed new ts2000.c to ts2000.h Wouldn't compile. Removed ts2k.c. Haven't got all new rig.h stuff removed. Temp kludge to make ts2k.c compile (keeps Hamlib from compiling!). Updated status. Added working TS-2000 files. There are some changes left out but this is the minimum I could commit and have a functional rig. The cost is that I've broken kylix and others that duplicate rig.h. I'm in the process of repairing the damage. Please be patient. I hope a day or so, but am asking for up to a week. E-mail me about *anything* you find broken. Kylix (and similar) is (are) known to not work. Changed name back to original. Had to re-run automake kenwood/Makefile. 1) Updated branch_ts2k with respect to HEAD. 2) Working ts2k_menu. (only in RIG_MODEL_TS2K) 3) Split TS-2000 into experimental and standard versions: RIG_MODEL_TS2000 = standard, RIG_MODEL_TS2K = experimental. 4) Basic command parser in tests/rc. Will open/close rig or copy a freq from one rig/vfo to another rig/vfo. Very cool. Very basic. Very experimental. 5) Added test programs. a) testcmd - calls parser (no command prompt yet!) b) testts2k - replacement for testrig (with trivial modification) c) testptt - testts2k/testrig should not transmit. TX stuff in testptt. 6) Used crowbar to merge HEAD into branch_ts2k. Working on clean-up. 7) I'm sure I've forgotten or neglected to mention some other stuff. Daniel Estévez (2): Fix DIG MODE for FT817-ND Fix DIG MODE for FT817-ND Daniele Forsi (5): Set the executable bits on py3test.py Fix spelling errors Fix more spelling errors Fix more spelling errors Fix typos Daniele Forsi IU5HKX (1): Fix a [missingInclude] "information" when running cppcheck --check-config Dario Ventura (3): New Prosistel rotor backend from IZ7CRX Add elevation code to Prosistel backend TS2000 Satellite mode and Gpredict Dariusz Bismor, SQ9KEJ (1): rigmem: implement CSV file loading David Fannin (1): Submission for new backend model (134) for Yaesu FT-DX1200 Davide Gerhard (3): tests/{memcsv.c,memsave.c}: partially revert commit 4072f9f4 ic746.c: correct chanbuf length, fix channel structure and support split ic746.c: add ic746pro_set_channel() to load memory from csv Dawid Szymanski (2): ICOM Voice Keyer implemented. typo fix Diane Bruce, VA3DB (5): - first cut at fixing configure to recognise --without-tcl-binding and --without-python-binding options - gt_HEADER_INTTYPES_H is definitely bogus here, leftover from what? - document debian/FreeBSD needs for AUTOMAKE etc. - add in libtoolize which should be there - These should have been commented out. - Extra comma on RIG_STATUS_BUGGY can cause a compiler error. Dieter Röver (1): Fix bug in vfo_comp calculation in Hamlib Ekki Plicht (DF4OR) (2): New model Icom IC-R8600 Patch for Icom DCS code handling Elliott Liggett (1): Added functionality for the IC-7300 auto antenna tuner Eriks Dobelis (2): ft817: adding delay before next retry after returning from tx to rx ft817: Moving delay value into #define section of the header Ervin Hegedus (9): RIG_PASSBAND_NORMAL wasn't handled correctly when rig_set_mode() was called - fixed Fixed SWIG `Setting a const char * variable may leak memory' error Fixed Kenwood filter cmd when passband is set to 500Hz Merged from upstream Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Added Lua binding and demo script Added new example to Python demo script (set/get float type level) Change variable length argument handling in affected functions Fix two typos Ervin Hegedüs (1): rig.swg: New properly formatted macro Francois Retief (21): Added read_serial function to read strings from a port. Corrected some comments Added code to hexdump to right align ASCII dump column added private caps for rig termination character add private caps and more commands. Changed to a new transaction function and adde quite a few commands. add private caps to store the termination character of Kenwood rigs commands. added a kenwood_init and _cleanup routine for priv caps & priv data. Added a new function: LCD Lamp ON/OFF (for Kenwood TH-7DA) check trn state of rig in rig_open. Initial commit of Kylix binding New backend for rotators New RPC backend for rotators Added rot_move function Fix macro name Added rot_move function Added easycomm and rpcrot backends Fixed circular dependency for rpc.rigd and rpc.rotd regenerated Added IC-910 rig. Added constants for the IC-910 rig. Frank Goenninger (3): Add ADAT ADT-200A backend adat updates from Frank, DG1SBG ADAT fixes on Windows Frank Singleton, VK3FCS (165): Initial revision Initial revision *** empty log message *** *** empty log message *** *** empty log message *** Initial revision Initial revision *** empty log message *** *** empty log message *** added build_all ,cleanall and verify targets *** empty log message *** initial top level makefile add some things initial import initial import initial import fixed some typos use rig_open and rig_close added rig_open and rig_close fixed cmd_sat_on / off added sat-on and sat_off to test changed cmd_get_rx_status, must do tx also updated test() all reads use while (1) and break added ../common as object path added rig_open and rig_close using rig_open and rig_close and serial.h use common dir for serial stuff use ft747 on serial port /dev/ttyS0 read uses while(1) and break use while(1) and break added read_sleep use read_sleep now from serial.h using read_sleep from serial.h had rx and tx status swapped (document error?) removed cmd_get_update using CVS instead of RCS directories use MODE_xx defines cannot use const int in case statements ?? so use #define instead use #defines for MODE_XXX used in case statements working out freq conversion, unfinished playing with test routines long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode); long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode) frq = cmd_get_freq_mode_status_main_vfo(fd, &mode); starting with the cmd_set commands now starting on cmd_set commands now starting on cmd_set_freq commands now add scanning todo now set sat rx and tx freq and mode also fix typo dump raw hex data when writing and reading trying some cms_set_freq_xxx commands added routines for dec <-> packed decimal conversion minor added generic hex dump routine, static void dump_hex(unsigned char *ptr, int size, int width); removed unwanted debug printf's removed dump_hex from here.. calc_freq_from_packed4 is about to be replaced calc_packed_from_char and calc_char_from_packed now here cleanup cleanup void dump_hex(unsigned char *ptr, int size, int width); adding dcs tables and repeater offset in Hz describe faulty yaesu documentation added README.license for GPL added GPL license info included full GPL license Updated docs to point to http://sourceforge.net/projects/hamlib/ and added a C code snippet on how to use the API. added -I$(COMMON_DIR) to find rig.h added -I$(COMMON_DIR) to find rig.h adding capabilities initial capabilities stuff starting to add rig_caps stuff starting to add rig_caps stuff starting to add rig_caps stuff. added GPL stuff and comments adding rig_caps stuff adding rig_cap stuff adding rig_caps stuff add capabilities and preferences adding rig_caps functionality adding rig_caps stuff frontend reduction on backend function namespace - phew !! frontend API clarification removed old open_port2() using old rig_caps fixed some typos, added 3 more candidates for API missing ; in some enums converting to frontend/backend structure compiles ok removed open_port() and write_block() removed open_port() and write_block() fixed typos, added &ft747_caps in rig_caps changing to frontend/backend style converting to frontend/backend style added 3 more cmd_* for API examples Example of setting rig Main VFO to 439.700 Mhz FM cleanup comments added extern const struct rig_caps ft747_caps; still thinking about set/get strategy minor updates added extra rig caps added some set/get examples with return code checking added testrig to Makefile, no linking yet added usleep to read_sleep() updated rig_caps structure *** empty log message *** test making a shared lib (at last) for the frontend - more todo test making a shared lib for the frontend - make hamlib describe frontend/backend structure updated code snippet example started ft747_set_ptt and ft747_set_vfo starting to implement set/get pairs added typedef enum ptt_type_e ptt_type_t; added VFO types to enum starting on libhamlib Makefile, added ./lib and ./include under common make, make install, and make clean work ok, using ./lib and ./include directories also. make, make install, and make clean work ok, using ./lib and ./include directories also. removed "make verify". Added reference to common/Makefile added printf("testrig:main() has been called \n"); for testing linking makefile for testing testrig linking alternative rig_base declaration removes references to rig_caps at compile time. should populate it another way -- FS added printf's to confirm rig.c (hamlib) is being called ok better libhamlib.so version :-) added ft847_open and ft847_close to enable CAT ON/OFF added ft747_open and ft747_close updated lib names for backend to libhamlib-xxxxx.so API updates - added set/get_mode merge with TRN stuff and add some set/get_mode and vfo stuff added post_write_delay cvs mails to hamlib-cvs-digest cvs mail update works ok :-) minor fixes updated ptt/mode/vfo added set/get freq to use generic bcd etc more set_freq() examples 1. Added VFO as target for some set/get cmds. 2. ./testrig still runs ok using RIG_VFO_CURR. minor update to active VFO handling in _set_vfo some new defines for FT747_VFO_A/B minor updates to active vfo handling added ptt handling example, stand back ! trying different approach to storing cmd sequence. _set_ptt is being converted. Needs tidying up though. Some sequences are complete, and can be read from static data. Incomplete sequences will eventually be copied form static declaration, and completed in priv data. Removed static stuff from functions. Also, begin to implement table driven command translation from API to rig native. priv now contains a cmd table that is used for backend commands towards rig. Added some new freq/mode combinations. converting ft847 to table driven, similar to ft747. more table driven stuff for ft847. cat/ptt/freq being converted. Added ft847_send_priv_cmd(), converted some part of API to use this. Added _set_mode to work now. TODO: put _send_priv_cmd into yaesu.[ch] so ft747 can use also. Turned on PTT also (stand back).. rig_cleanup and rig_close not calling backend removed unused calc_ functions. removed old API functions, general cleanup tested rig_close and rig_cleanup Initial release, common yaesu declareations etc. add version tag nseq uses YAESU_CMD_LENGTH Initial yaesu Makefile Moved from ft747 and ft847 dirs common yaesu handling common yaesu dir Begin to use common yaesu code general cleanup, added _send_priv_cmd added targetable_vfo value to caps minor cleanup ChangeLog history started Initial import for ChangeLog handling starting to convert rig struct to readable form more of convert rig struct to readable form Changelog update for HAMLIB-1.1.1 Gerardo Richarte (1): gs232b.c: Improve get_position string parsing Gisle Vanem (1): Enable verbose mode in bindings/pytest.py Greg Troxel (1): Warning about dodgy code in drake.c HB9EIK (4): Initial release ELAD FDM DUO Update ELAD files Update build system for ELAD backend Update copyright for fdm_duo.c Hans Van Ingelgom (1): Added Peaberry V1 and V2 models Hegedüs Ervin (4): Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Check SWIG string functions for some languages Leave off multiply 'typedef const char * const_char_string' definition (in rig.swg and rotator.swg) Fixed int[10] type variable error in bindings Jae Stutzman (5): Added HPSDR backend Clears potential garbage data in read buffer prior to command being sent Updated PiHPSDR backend defaults Use Windows ioctlsocket to avoid buffer overrun Added new AGC control for PiHPSDR James Watson, HZ1JW (2): Added ic7200 to icom Corrected modes in ic7200.c Jaroslav Skarvada (2): Fix hardcoded pcconfig libdir Fix serial_port DCD squelch Jeroen Vreeken (9): Add support for GPIO PTT. Add missing breaks and improve error messages Add Dorji DRA818 modules (VHF and UHF variants) Also works with NiceRF SA818 modules Merge branch 'master' of git://git.code.sf.net/p/hamlib/code Small fixes to DRA818 volume handling Add GPIO and GPION options for DCD. Also bump abi version since the config params struct needed resizing. Merge branch 'master' of github.com:Hamlib/Hamlib GPIO working after debugging Merge branch 'master' of github.com:Hamlib/Hamlib Johan Ström (1): Backup serial options on open, restore on close John Paul Adrian Glaubitz (1): dummy/dummy.c: Fix unaligned access in dummy_get_level() Jonathan Bastien-Filiatrault (3): Correct FT; command that does not exist on the FT-891. Allow setting split mode without smashing the VFOB frequency. Scale power values correctly for Yaesu FT-891. Jonny public (1): ether6: New rotor backend from Jonny, DG9OAA Joop Stakenborg, PG4I (116): update (kenwood is not a WIP anymore) first implementation of kenwood_get_ptt enable get_ptt for this rig add get_ptt for this rig additional protocol checks and cleanups fix signal strength add RIG_LEVEL_RFPOWER fix_compilation add rit capabilities bring comands in sync with other kenwood rigs add rit capabilities send_morse added explain set_rit fix get_ctcss_tone by using IF command typo add xit capabilities add set_level and get_level bring rig in sync with other kenwood rigs bump version numbers nothing returned by the rig for these commands fix get_level_agc fix set_level_agc getting in sync with the debian 1.1.2 package remove template files initial checkin make this NMU for now correct the path for copying files in the apropriate package do not install the old changelog versioning not used move .la, .a, .so files to the correct package include rpc.rigd and rpc.rotd include pkgconfig support don't create shlibs file for drake, jrc and easycomm libraries move hamlib1 to the top so the documentations gets installed correctly make building easier, call autogen.sh INSTALL file not used build the documentation package we don't have to call configure twice cleanup remove some build dependencies and don't call autogen.sh ts450s uses IF command for get_vfo, get_freq and get_mode minor bugfix, bump to beta add CWR and RTTYR this rig does not have a command for reading IF bandwidth retrieve passband with FW command passband should be calculated after mode is set use rig_passband_normal here various lintian fixes one last lintian fix use FW command to set bandpass cw filters for normal, narrow and wide more filters get_mode and set_mode for this rig filters some comments correct rit add get_level cleanups more modes set_level for this rig should use kenwood_get_freq minor bug add rpm support need hamlib.spec for 'make rpm' make rpm will fail with a '-' in the version number a working spec file update debian build for rotorez and fodtrack, minor fixes unofficial fix the debian build script, new maintainer update the debian build tree to the latest correct baudrate for the ts-950, use the information field IF for get_vfo by default (supported by most kenwood rigs), ts870s will use the much shorter FR command for get_vfo correct baudrate for some rigs and add ts-950 to the id_list ts-850 returns ID 009 according to martin, OK1RR fix 'make rpm' build for hamlib-1.1.5 not needed sync with latest debian package and add tcl, c++, python and perl bindings correct spelling s-meter calibration by Matt Dawson basic functionality by Matt Dawson, tested with grig and xlog lifetime e-mail address :-) sync with latest debian release more functionality, mode and frequency get by Matt Dawson only switch tx vfo is split is on set attenuator level export convenience function get_kenwood_level, so they can be use by other backends add RIG_LEVEL_SWR, copied from ts850 add RIG_LEVEL_COMP, RIG_LEVEL_AGC, copied from ts850 bump version, no preamp really add ALC read this time, only change meter if needed, cleanups split has_get_level and has_set_level fix coding, python2.4 compatibility fix compilation warnings more compilation warnings nuked, use tone_t for ctcss_list use size_t fix more compilation warnings, int->size_t, unsigned char->char more unsigned char->char and int->size_t transitions set functions should have ack_len zero, also need to check other rigs make sure we use ack_len=0 for functions that return nothing (set functions) more unsigned char->char and int->size_t transitions extend rig capabilities, patch by Tom, DL1JBE add RIG_LEVEL_STRENGTH to caps, set post write delay to 0 and do some cleanups re-establish post-write delay remove rpath backdoor long long really needed here? updates by matt, GW0VNR long long really needed here? - patch by diane Bruce distribute footer.html correct set/get power try better s-meter readings packages renamed obsolete sync with latest debian release no need to link to python sync with latest, python changes another debian update: use 'make distclean' in the rules file Joshua Lynch (4): initial SatEL rotator support factored io functions out. improve reliability...i hope. fixed state bug. reconnecting would disable motion every other connect. merged upstream/master into master Juergen Rinas, DC3BW (4): added antenna switching... added a few get_level/set_level get_function/set_functions. * fixed set_func (concerns most kenwood rigs) * added 115200 to the list of baudrates in probeallrigs_kenwood() * fixed ptt * expanded frequency range (available after firmware update) according to http://www.kenwood.com/i/products/info/amateur/ts_480/firmware/pop_ts480_e.htm * added tuning steps * added filter list * increased version info Julian Cable (3): WinRadio G313: Updates from Julian Campbell wrg313api.c: Fix Win32 (MinGW) build issue Use Automake conditionals for G313 build Kamal Mostafa (3): Fix mingw32 cross-compilation procedure and config Do not let macros/ac_python_devel.m4 trash CPPFLAGS and LIBS Fix spelling errors Kamal Mostafa, KA6MAL (19): Hard-code length of hamlib_version and hamlib_copyright strings to stay compliant with hamlib 1.2 ABI and avoid spurious "consider relinking" warnings from dynamic loader. Removed stale debian/ dir from the hamlib source (it is maintained in the Debian diff and isn't useful in this tree). Update bundled libltdl (libtool) to version 2.2.6b to address CVE-2009-3736. - autogen.sh: never downgrade our bundled libltdl/ (only run libtoolize if system version is newer than our bundled version). - autofixer.sh: script removed as libtool 1.x is no longer allowed. - configure.ac: (not enabled) optional setting to deprecate embedded libltdl/. Added Kamal Mostafa and Jaime Robles as maintainers for Debian packaging. Fix build --with-python-binding breakage introduced by Python 2.6: Do not reference LOCALMODLIBS, else it will add libraries to our link line (e.g -lssl) which are not necessarily installed. Elektor 507 frequency selection resolution improvements, contributed by John Nogatch AC6SL. Move backend libraries into /usr/lib/hamlib directory. Force automake to invoke the C (not C++) linker in kit/ when no C++ is in use. python: fix --with-python-binding configure macro fix configure.ac paths for FreeBSD Remove bundled libltdl (libtool) README.developer: restore libtool prerequisite text Fix segfault on improper -C syntax configure: add check and advice for missing ltdl.h configure: refine advice for missing ltdl.h source warnings cleanup: rpcgen-generated code source warnings cleanup: #if-0 out a few unused routines source warnings cleanup: #ifdef out unused FT-840 routines source warnings cleanup: rotorez_rot_reset wrapper for stop Kosta Arvanitis (1): Allow IC-7410 to send cw messages Kārlis Millers (1): Merge pull request #1 from Hamlib/master Ladislav Vaiz (3): Add Android build support Android build updates for monolithic build Initial support for FUNcube Dongle Pro Larry Gadallah (1): AR7030+: Error reading signal strength for low signal levels. Larry Gadallah, VE6VQ (20): Added Larry Gadallah as maintainer of AOR AR7030+ Added AOR AR7030 Plus Added caps for AR7030+ Added caps for AR7030+ Added AR7030+ Alpha version of AR7030+ backend Alpha version of AR7030+ backend Rationalized naming convention, ran everything through lint. Rationalized naming convention, ran everything through lint. Fixed SVN tags Fixed SVN tags Added AR7030P utilities in ar7030p_utils.c Initial version of utility functions for AR7030 Plus receiver Removed utility/helper functions, added/updated Rig API functions Added new I/O helper functions, IR code definitions Added private data to support channel information Added init/cleanup functions, started implementation of mem/channel access functions Added prototypes for pbsToHz() and hzToPBS() helper functions. Added comments to denote mey_sq, mey_pb, and mey_id labels Added implementation for pbsToHz() and hzToPBS() helper functions. Added various memory/VFO functions. Magne Mæhre (1): Enable set_powerstat (turning radio on/off) for IC-7100. Malcolm Herring (62): init branch init branch New model: Icom IC-R6 Icom IC-R10 & 20 testing complete. Move to Beta ignore build Complete R6 commands Add IC-R30 daily fix tones Merge remote-tracking branch 'Hamlib/master' update Merge branch 'master' into icr6 ICR6 new functions merge update Merge remote-tracking branch 'Hamlib/master' commands 00-15 Merge branch 'master' into icr30 icr30 updates Automatically detect CI-V echo state Icom R8600 to Alpha Update contributors Merge branch 'master' into origin/master Fix Icom DCS SQL funnctions Merge remote-tracking branch 'Hamlib/master' Merge remote-tracking branch 'Hamlib/master' Prepare for D-STAR implementation Merge remote-tracking branch 'Hamlib/master' Initial implementation of icom extended operations more extended operations Merge remote-tracking branch 'Hamlib/master' more ext functions fix merge conflicts more ext_cmd updates ic7100 ext functions Merge remote-tracking branch 'mdblack/master' Merge branch 'master' of https://github.com/malcolmh/Hamlib add token list for ext operations Merge remote-tracking branch 'mdblack/master' more ext operations Merge remote-tracking branch 'mdblack/master' custom ops using ext ops scheme custom level ops Merge remote-tracking branch 'mdblack/master' Merge remote-tracking branch 'Hamlib/master' add scope functions update IC7100 update rigs for new functions Merge remote-tracking branch 'Hamlib/master' new directory structure Merge remote-tracking branch 'Hamlib/master' correct powerstat caps Merge remote-tracking branch 'Hamlib/master' New custom parm implementations restore get_powerstat correct rig_close cap Merge remote-tracking branch 'Hamlib/master' Merge remote-tracking branch 'Hamlib/master' Merge remote-tracking branch 'Hamlib/master' add g/set_ext_func to API additional error checking for extended operations Add Macports to README.osx Mark J. Fine (25): Fixed post-write-delay timing Added support for ECSS/FAX and meter strength Added support for meter strength Added ECSS support to R8B and reconfigured default filter modes Reconfigured default filter modes Updated to reflect recent changes within v1.2.2cvs-2 Fixed CWPITCH function on IC-R75 to use 'set mode data' command. Added level granularity steps included other rig_ prefixes fixed get_powerstat to read correctly when memory channel is blank Added memory switching function in set_vfo Added set memory channel# in radio in set_mem Added set_vfo command for vfo/mem switching Corrected handling of "vacant" memory channels Correctly detect if in memory mode in get_vfo() Reduced large decision trees with bitwise math Added set/get channel functions Updated set/get channel functions Made get_channel aware of untunable blank memory channel accounted for dual preamp (10 & 20db) Fixed passband width return for IC-756PROII Added FM narrow to passband spec Added a provisional define for a variable bandwidth control Added a provisional variable bandwidth control to the RIG_LEVEL enumeration Added provisions for a variable bandwidth control Added provisions for a tone control Corrected problems with Squelch (SQL) and Notch (NOTCHF) controls Added provisions for a variable bandwidth control (BWC) Fixed low-end of freq range from 100kHz to 10kHz. Fixed several differences in 535/545 commands Added missing manual notch switch for the NRD-545 Martin Cooper (2): Don't expect a response when none is required. Don't send EasyComm I commands to EasyComm II rotators. Martin Ewing (7): Add test for valid set frequency, esp. for VFOA (ham band only) Expand valid range_lists for full hardware ranges Fix tt565_transaction to allow Morse commands. Orion.c: remove spurious debug statement. implement level settting and misc fixes remove debug stmt Increment Jupiter version Trim TS950 commands that are not provided by CAT jupiter.c: Updates from Martin, AA6E Martin Ewing, AA6E (69): specified buffer lengths, added default vfo A setting Fix SWR & S-meter, set ATT, set AGC, add rough STR_CAL func. Fix timeout, add retry, better S-mtr scale various bug fixes Added RIG_LEVEL_CWPITCH, RIG_LEVEL_KEYSPD, send_morse() Added RIG_FUNC_TUNER, RIG_FUNC_LOCK and RIG_FUNC_VOX, fixed MEM_CAP. Added VFO_OPS, promote to Beta Support LEVEL_VOX, VOXGAIN, ANTIVOX Support LEVEL_NR as Orion NB setting (firmware bug), FUNC_NB -> NB=0,4 Add get_, set_ant (ignores rx only ant) Added Orion, Orion 2 info Squashed warnings about signedness Orion S-meter cal minor - add doxygen info for enums minor - doxygen parameters doxygen formatting add comments info on generating docs doc improvements add comment documentation documentation allow atten = 0 dB patch from SM6PPS fix enum documentation documentation page documentation documentation split orion.c and add doc info documentation SM6PPS mods for AOR 5000a further rx-320 mods by Ken Prox use binary mode VFO requests correct CHANNEL_CAPS sytax Dead simple sample Hamlib program Correct float vs int interpolation options Add autodetect version 1 or 2 firmware (using rig_get_info). Correct V1 calibration. Make V2 calibration the default. Signal RIG_LEVEL_STRENGTH supported. Moved firmware detection to new tt565_open routine, where it is done every time the rig is opened. Add more functions to example program. Ensure printable get_info string Fix bug that seg faulted when get_info returned null. (No reward points!) Add S meter operations to sample program. Adjust retry & timeout values to help in case of no response from rig, i.e., if rig power happens to be off. Prettify some code indents. Better error handling, reliability for serial I/O. Misc prettification. TT Omni VI / Plus improvements Fix typo Fix Omni VI PTT function Update Icom info Declutter Omni VI memories, rit/xit Fix serial I/O error checking Add author. (credits info added to web page, also) Switch back to ASCII freq. setting because of hardware(?) bug. Add AF, RF gain and squelch level capability. Add thanks to W1RFI & ARRL minor changes RIG_STATUS_ALPHA reflecting initial tests. fix missing comma use rawstrength.i which matters in PPC compile fix string handling in LEVEL_RAWSTR Orion - implement RIG_LEVEL_STRENGTH Example updates Orion: Allow frontend to handle RIG_LEVEL_STRENGTH Minor comment re rit/xit Downgrade ERR to WARN (i/o retry) Init revision - tnx Stephane Autofixer sets up for libtool v1 or v2 autofixer.sh supportin libtool v1 and v2 minor update repair echo cmd Max Lock (1): Addition of support for CM108B PTT Michael Black (1290): TenTec Omni VII update from W9MDB New XG3 backend Fixes to termios.c on W32 targets xg3 patch Check TS-590S for EU or US firmware New backend for FT-991 Flush the debug stream Omni VII to set VFO_CURR correctly Omni VII patch for WSJT-X FT-991 patch Small FT-991 patch for WSJT support Omni VII patch FT-857 and FT-991 patches Fix possible frequency overflow on Kenwood and Yaesu Add get_freq to FRG-100 Clean up clang warnings on adat.c Clear up a clang compiler warning in kenwood/elecraft.h Clean up clang warnings in tentec Fix port->pathname checks Quell clang warnings in tests directory Various Yaesu updates Simply define TRUE to 1 in omnivii.c Allow the ft757gx to work with WSJT-X. Remove input redirects in autogen.sh Initial support for the IC-7300 Add send_morse to icom rigs tmd710 patch Icom frame patch Exposed constants via function calls Remove define Merge branch 'master' of https://github.com/N0NB/hamlib Changed some modules to LGPL in lieu of GPL Fixed buffer overflow in rigctl_parse and rotctl_parse Merge branch 'master' of https://github.com/N0NB/hamlib Move K3 DT0 before mode switch, add version info to electraft rig open, WSJT-X VOX rig split now works Merge branch 'master' of https://github.com/N0NB/hamlib Added IC-7850/51 -- works with WSJT-X Merge branch 'master' of https://github.com/N0NB/hamlib Add ic7850 ic7851 -- works with wsjtx Add ic7850 ic7851 -- works with wsjtx Merger 7850/51 into 785x Fix ft991_get_mode Added ft891 backend Fix ic785x default addr to 0x8e Fix FT-891 recognition IC-M710 now working with WSJST-X Add icm710.h to icmarine Makefile.am Merge pull request #1 from Hamlib/master Fix FT857 to return the SMeter-based value Reduce debug info in flrig.c Change RIG_MODE and RIG_FUNC to 64-bit values Merge hamlib head Add PRXll macro for 64-bit use Fixup for 64-bit in memcsv.c 64 bit mods to netrigctl.c testrig.c Add TS-890S as derivative of TS-480 plus new modes Add XHCG to ic706.c Change rmode_t to uint64_t and remove unneeded casts Fix RIG_MODE structure in src/msic.c Fix some 64bit items and add RIG_FUNC_NB2 for TS-890S Suppress GCC unused-return warning Fix rig_idx2settings for 64-bit sprintf_list functions Fix flrig when WSJT-X startup causes rig mode change Increase flrig timeout value Add USB mode to flrig Fix flrig memory leak Fix bug where constant value was being trashed Add PKT modes to ts590.c Add BC2 and NB2 functions for newer kenwoods Change RIG_SETTING_MAX for 64-bit compatibility All kenwoods to have 3-char commands for functions and return whatever value the rig returns instead of 0/1 Changes to add more ts890 capabilities, e.g. NB2, BC2 Fix kenwoood BC BC2 returns Fix kenwood BC BC2 return merge master New utility to allow non-hamlib-aware programs to use hamlib rigs via COM ports Virtual com ports providing a TS-2000 Emulator Example connecting N1MM or such to FLRig via COM5/COM6 virtual COM pair rigctlcom -m 4 -R COM5 -S 115200 N1MM connects to COM6 TS-2000 115200 8N1 Add TUNER on/off fnction for Yaesu rigs Fix segfault in rigctlcom with no args and improve usage Add rigctlcom to install scripts Add FT847UNI for early serial number units that are one-way comm Add rigctlcom to gitignore Reduce verbosity in FLRig Ensure buf is zeroed in kenwood_safe_transaction to avoid return random data Reduce verbosity of rig_strrmode and read_string Improve error handling in network_flush when disconnect happens Reduce verbosity of rig_strvfo netrigctl can now do vfo mode -- has automatic detection of rigctld vfo mode rigctl automatically detects vfo mode of rigctld rigctli and rigctld recommend vfo mode if not selected Merge branch 'master' of https://github.com/Hamlib/Hamlib Fix memset in kenwood.c Fix network_flush as it was not actually flushing before This was causing an infinite loop and WSJT-X to lock up using flex6xxx backend network.c astyle applied Add ability for rigctlcom to work with Ham Radio Deluxe astyle format of rigctlcom.c Relax chk_vfo requirement for backward compatibility astyle for netrigctl.c Merge branch 'master' of https://github.com/Hamlib/Hamlib Fix ts590 RIG_LEVEL_AF astyle ts590.c Update TS590 version and make it STABLE Add set/get powerstat for ic785x.c Have kenwood set_powerstat ON wait for get_powerstat Fix set_powerstat wait loop Bump version for kenwood.c Add wait for set_powerstat in icom.c Change powerstat to wait for get_freq as this is generic to all cache timeout when swapping vfos on ft817 and ft897 Add flush to serial open Add set/get vfo to ft857 ... [truncated message content] |
From: Nate B. <n0...@us...> - 2021-02-01 02:03:07
|
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, Hamlib-4.1 has been created at 645717241f4a952d05eab50e1bfb990a3d3d8b53 (commit) - Log ----------------------------------------------------------------- commit 645717241f4a952d05eab50e1bfb990a3d3d8b53 Author: Nate Bargmann <n0...@n0...> Date: Sun Jan 31 19:56:33 2021 -0600 Release Hamlib 4.1 diff --git a/configure.ac b/configure.ac index 3c4a6ee0..b3d9d4f7 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! AC_INIT([Hamlib], - [4.1~git], + [4.1], [ham...@li...], [hamlib], [http://www.hamlib.org]) ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Nate B. <n0...@us...> - 2021-02-01 01:54:39
|
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 b53eed7cd34ca5a2457fa5ae1029e54e913826a9 (commit) via eaa26af74065a35ce89fbe7b5a960ae88ba25a41 (commit) from 9d30205174f567e97665fb08f4014b7badb0257f (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 b53eed7cd34ca5a2457fa5ae1029e54e913826a9 Author: Nate Bargmann <n0...@n0...> Date: Sun Jan 31 19:53:28 2021 -0600 Advance to 4.2~git diff --git a/configure.ac b/configure.ac index 3c4a6ee0..e5800afd 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! AC_INIT([Hamlib], - [4.1~git], + [4.2~git], [ham...@li...], [hamlib], [http://www.hamlib.org]) @@ -60,7 +60,7 @@ dnl See README.release on setting these values # Values given to -version-info when linking. See libtool documentation. # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 -ABI_REVISION=1 +ABI_REVISION=2 ABI_AGE=0 AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version]) commit eaa26af74065a35ce89fbe7b5a960ae88ba25a41 Author: Nate Bargmann <n0...@n0...> Date: Sun Jan 31 19:51:46 2021 -0600 Prepare NEWS for 4.1 release diff --git a/NEWS b/NEWS index a3fe9bcb..938f29fb 100644 --- a/NEWS +++ b/NEWS @@ -7,23 +7,24 @@ Copyright (C) 2000-2020 Michael Black W9MDB, and others Please send Hamlib bug reports to ham...@li... Version 4.1 - * rigctld and rigs should be more robust for disconnect problemsy - * Several fixes for Icom and Yaesu rigs - * 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 - * Fix shared library problem with WSJTX, JTDX, and JS8Call - * New model Barrett 950 + 2021-01-31 + * rigctld and rigs should be more robust for disconnect problems + * Several fixes for Icom and Yaesu rigs + * 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 + * Fix shared library problem with WSJTX, JTDX, and JS8Call + * New model Barrett 950 Version 4.0 2020-11-29 * API/ABI changes, advance ABI to 4 0 0. * Add GPIO and GPION options for DCD. Jeroen Vreeken * New backend: ELAD FDM DUO. Giovanni, HB9EIK. - * New RIG_LEVEL_RFPOWER_METER_WATTS level - * All channel functions now take a vfo argument + * New RIG_LEVEL_RFPOWER_METER_WATTS level + * All channel functions now take a vfo argument * New rotator backend: iOptron. Bob, KD8CGH * New model: Icom IC-R8600. Ekki, DF4OR * New utility: rigctlcom. Mike, W9MDB @@ -43,7 +44,7 @@ Version 4.0 * New rig backend for Elecraft K4. * New rig backend for PowerSDR (Flex and Apache users). * Many fixes and enhancements. Mike, W9MDB and many contributors - * PTT port is no longer shared by default, use --set-conf=ptt_share=1 to enable + * PTT port is no longer shared by default, use --set-conf=ptt_share=1 to enable Version 3.3 2018-08-12 ----------------------------------------------------------------------- Summary of changes: NEWS | 25 +++++++++++++------------ configure.ac | 4 ++-- 2 files changed, 15 insertions(+), 14 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-31 18:21:25
|
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 9d30205174f567e97665fb08f4014b7badb0257f (commit) from 84ce231daf09ecc505c393a05444b2e3b4b9e6c4 (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 9d30205174f567e97665fb08f4014b7badb0257f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 31 12:20:44 2021 -0600 Fix linking error for w32-build.sh script diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 1d806c82..489d4683 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -2857,7 +2857,7 @@ rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level)); // this need to be fairly big to avoid compiler warnings #define DEBUGMSGSAVE_SIZE 24000 -extern char debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg +extern HAMLIB_EXPORT_VAR(char) debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg #ifndef __cplusplus #ifdef __GNUC__ // doing the debug macro with a dummy sprintf allows gcc to check the format string ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-31 13:31:50
|
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 84ce231daf09ecc505c393a05444b2e3b4b9e6c4 (commit) from 9394a6cfe465f1783d62c88a48ccefc2dabf798b (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 84ce231daf09ecc505c393a05444b2e3b4b9e6c4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 31 07:08:08 2021 -0600 Fix link error for debugmsgsave on MacOS and perhaps others diff --git a/src/rig.c b/src/rig.c index 69d25ee7..868bbcc7 100644 --- a/src/rig.c +++ b/src/rig.c @@ -290,7 +290,7 @@ int foreach_opened_rig(int (*cfunc)(RIG *, rig_ptr_t), rig_ptr_t data) * * \todo support gettext/localization */ -char debugmsgsave[DEBUGMSGSAVE_SIZE]; +char debugmsgsave[DEBUGMSGSAVE_SIZE] = "No message"; const char *HAMLIB_API rigerror(int errnum) { @@ -302,8 +302,8 @@ const char *HAMLIB_API rigerror(int errnum) return "ERR_OUT_OF_RANGE"; } - static char msg[20000]; - snprintf(msg, sizeof(msg), "%s\n%s", rigerror_table[errnum], debugmsgsave); + static char msg[25000]; + snprintf(msg, sizeof(msg), "%80s\n%15000s", rigerror_table[errnum], debugmsgsave); return msg; } ----------------------------------------------------------------------- Summary of changes: src/rig.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-31 04:17:09
|
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 9394a6cfe465f1783d62c88a48ccefc2dabf798b (commit) from d20635dfe67e67b5926995594bc5ff7380599bdf (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 9394a6cfe465f1783d62c88a48ccefc2dabf798b Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 30 22:16:14 2021 -0600 Fix link error with testloc.c diff --git a/tests/testloc.c b/tests/testloc.c index 82bd8614..64a15641 100644 --- a/tests/testloc.c +++ b/tests/testloc.c @@ -14,6 +14,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <hamlib/rig.h> #include <hamlib/rotator.h> ----------------------------------------------------------------------- Summary of changes: tests/testloc.c | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-30 17:06:20
|
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 d20635dfe67e67b5926995594bc5ff7380599bdf (commit) via d8492c66024f9aaf1e045d117807c2d72902469c (commit) from cd7811f3edbec08bcfb5bfc93d62053a9cea99d4 (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 d20635dfe67e67b5926995594bc5ff7380599bdf Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 30 11:05:34 2021 -0600 Fix compiler warning in newcat.c diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 973217a8..16e60894 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -7064,7 +7064,7 @@ int newcat_set_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv; int err; - int w; + int w = 0; char main_sub_vfo = '0'; ENTERFUNC; diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index ba2e5096..1cef76dc 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20210124" +#define NEWCAT_VER "20210130" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 commit d8492c66024f9aaf1e045d117807c2d72902469c Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 30 11:03:08 2021 -0600 Increase debugmsgsave size to avoid compiler warning about not big enough diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index e806a8f0..1d806c82 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -2855,7 +2855,8 @@ extern HAMLIB_EXPORT(int) rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level)); -#define DEBUGMSGSAVE_SIZE 16384 +// this need to be fairly big to avoid compiler warnings +#define DEBUGMSGSAVE_SIZE 24000 extern char debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg #ifndef __cplusplus #ifdef __GNUC__ ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 3 ++- rigs/yaesu/newcat.c | 2 +- rigs/yaesu/newcat.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-29 22:46: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 cd7811f3edbec08bcfb5bfc93d62053a9cea99d4 (commit) from 8e707636197345c982c187119c12e49ab8ce3ef4 (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 cd7811f3edbec08bcfb5bfc93d62053a9cea99d4 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 16:32:16 2021 -0600 Fix icom_get_mode for rigs with 1-byte mode_len https://github.com/Hamlib/Hamlib/issues/522 diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index aecf0540..455b7a7a 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -1911,7 +1911,8 @@ int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) /* * modebuf should contain Cn,Data area */ - mode_len--; + // when mode gets here it should be 2 or 1 + // mode_len--; if (mode_len != 2 && mode_len != 1) { diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 34e055a9..4d87d12d 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include <sys/time.h> #endif -#define BACKEND_VER "20210120" +#define BACKEND_VER "20210129" /* * defines used by comp_cal_str in rig.c ----------------------------------------------------------------------- Summary of changes: rigs/icom/icom.c | 3 ++- rigs/icom/icom.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-29 15:39:32
|
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 8e707636197345c982c187119c12e49ab8ce3ef4 (commit) via 431b5dfc37151b5e13f011c6a67c27a27e914b58 (commit) via acbe8da8a1aa513f47f4dd5b31cd7697d47fc76f (commit) via 883574049b04756be80dfafd24badbb8c5f8a096 (commit) via f228bda1a2555afd8f23411af2e12156cc956cbb (commit) from 0575f9defd8d163a57bfeec196d4e9c4e0ab2231 (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 8e707636197345c982c187119c12e49ab8ce3ef4 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 09:35:46 2021 -0600 Add debug msg to rig_error diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 733bf5ac..e806a8f0 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -2855,11 +2855,13 @@ extern HAMLIB_EXPORT(int) rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level)); - +#define DEBUGMSGSAVE_SIZE 16384 +extern char debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg #ifndef __cplusplus #ifdef __GNUC__ // doing the debug macro with a dummy sprintf allows gcc to check the format string -#define rig_debug(debug_level,fmt,...) { char xxxbuf[16384]="";snprintf(xxxbuf,sizeof(xxxbuf),fmt,__VA_ARGS__);rig_debug(debug_level,fmt,##__VA_ARGS__); } +//#define rig_debug(debug_level,fmt,...) { char xxxbuf[16384]="";snprintf(xxxbuf,sizeof(xxxbuf),fmt,__VA_ARGS__);rig_debug(debug_level,fmt,##__VA_ARGS__); } +#define rig_debug(debug_level,fmt,...) { snprintf(debugmsgsave,sizeof(debugmsgsave),fmt,__VA_ARGS__);rig_debug(debug_level,fmt,##__VA_ARGS__); } #endif #endif extern HAMLIB_EXPORT(void) commit 431b5dfc37151b5e13f011c6a67c27a27e914b58 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 08:30:35 2021 -0600 Make lack of tx_range_list non-fatal -- some rigs don't have this diff --git a/src/rig.c b/src/rig.c index e5ae4705..69d25ee7 100644 --- a/src/rig.c +++ b/src/rig.c @@ -290,6 +290,8 @@ int foreach_opened_rig(int (*cfunc)(RIG *, rig_ptr_t), rig_ptr_t data) * * \todo support gettext/localization */ +char debugmsgsave[DEBUGMSGSAVE_SIZE]; + const char *HAMLIB_API rigerror(int errnum) { errnum = abs(errnum); @@ -300,7 +302,9 @@ const char *HAMLIB_API rigerror(int errnum) return "ERR_OUT_OF_RANGE"; } - return rigerror_table[errnum]; + static char msg[20000]; + snprintf(msg, sizeof(msg), "%s\n%s", rigerror_table[errnum], debugmsgsave); + return msg; } // We use a couple of defined pointer to determine if the shared library changes @@ -474,7 +478,7 @@ RIG *HAMLIB_API rig_init(rig_model_t rig_model) if (rs->tx_range_list[0].startf == 0) { rig_debug(RIG_DEBUG_ERR, "%s: rig does not have tx_range!!\n", __func__); - RETURNFUNC(NULL); + //RETURNFUNC(NULL); // this is not fatal } #if 0 // this is no longer applicable -- replace it with something? commit acbe8da8a1aa513f47f4dd5b31cd7697d47fc76f Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 08:23:19 2021 -0600 astyle rc2800.c https://github.com/Hamlib/Hamlib/issues/451 diff --git a/rotators/m2/rc2800.c b/rotators/m2/rc2800.c index 66903c3e..a65b0bdc 100644 --- a/rotators/m2/rc2800.c +++ b/rotators/m2/rc2800.c @@ -207,7 +207,7 @@ transaction_write: retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); // some models seem to echo -- so we'll check and read again if echoed - if (strcmp(data, cmdstr)==0) + if (strcmp(data, cmdstr) == 0) { memset(data, 0, data_len); retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); commit 883574049b04756be80dfafd24badbb8c5f8a096 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 08:22:56 2021 -0600 Fix compile error on rc2800 https://github.com/Hamlib/Hamlib/issues/451 diff --git a/rotators/m2/rc2800.c b/rotators/m2/rc2800.c index ab8c87f4..66903c3e 100644 --- a/rotators/m2/rc2800.c +++ b/rotators/m2/rc2800.c @@ -207,7 +207,7 @@ transaction_write: retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); // some models seem to echo -- so we'll check and read again if echoed - if (strcmp(data_len, cmdstr)==0) + if (strcmp(data, cmdstr)==0) { memset(data, 0, data_len); retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); commit f228bda1a2555afd8f23411af2e12156cc956cbb Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 29 08:20:56 2021 -0600 Add detection of echo for rc2800 -- seems some versions do echo https://github.com/Hamlib/Hamlib/issues/451 diff --git a/rotators/m2/rc2800.c b/rotators/m2/rc2800.c index a839c8df..ab8c87f4 100644 --- a/rotators/m2/rc2800.c +++ b/rotators/m2/rc2800.c @@ -202,27 +202,17 @@ transaction_write: data_len = BUFSZ; } -#if 0 // manual says no echos - /* first reply is an echo */ + /* then comes the answer */ memset(data, 0, data_len); retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); - if (retval < 0) + // some models seem to echo -- so we'll check and read again if echoed + if (strcmp(data_len, cmdstr)==0) { - if (retry_read++ < rot->state.rotport.retry) - { - goto transaction_write; - } - - goto transaction_quit; + memset(data, 0, data_len); + retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); } -#endif - - /* then comes the answer */ - memset(data, 0, data_len); - retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR)); - if (retval < 0) { if (retry_read++ < rot->state.rotport.retry) @@ -413,9 +403,9 @@ const struct rot_caps rc2800_rot_caps = ROT_MODEL(ROT_MODEL_RC2800), .model_name = "RC2800", .mfg_name = "M2", - .version = "20201130", + .version = "20210129", .copyright = "LGPL", - .status = RIG_STATUS_BETA, + .status = RIG_STATUS_STABLE, .rot_type = ROT_TYPE_AZEL, .port_type = RIG_PORT_SERIAL, .serial_rate_min = 9600, ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 6 ++++-- rotators/m2/rc2800.c | 24 +++++++----------------- src/rig.c | 8 ++++++-- 3 files changed, 17 insertions(+), 21 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-29 12:53:12
|
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 0575f9defd8d163a57bfeec196d4e9c4e0ab2231 (commit) via f38f35beeb632ca2142370cbd11ff3ef09b4c6cd (commit) from 620c97fe1249d231cc65086a1a1405a8305f9819 (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 0575f9defd8d163a57bfeec196d4e9c4e0ab2231 Merge: 620c97fe f38f35be Author: Michael Black <mdb...@ya...> Date: Fri Jan 29 06:51:00 2021 -0600 Merge pull request #520 from dl1ycf/master corrected tx_rangelist bug commit f38f35beeb632ca2142370cbd11ff3ef09b4c6cd Author: c vw <dl...@da...> Date: Fri Jan 29 09:50:11 2021 +0100 corrected bug diff --git a/src/rig.c b/src/rig.c index 735ddc8f..e5ae4705 100644 --- a/src/rig.c +++ b/src/rig.c @@ -471,9 +471,9 @@ RIG *HAMLIB_API rig_init(rig_model_t rig_model) sizeof(struct freq_range_list)*FRQRANGESIZ); } - if (rs->tx_range_list == NULL) + if (rs->tx_range_list[0].startf == 0) { - rig_debug(RIG_DEBUG_ERR, "%s: rig does not have rx_range!!\n", __func__); + rig_debug(RIG_DEBUG_ERR, "%s: rig does not have tx_range!!\n", __func__); RETURNFUNC(NULL); } ----------------------------------------------------------------------- Summary of changes: src/rig.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: Michael B. <mdb...@us...> - 2021-01-28 20:36:16
|
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 620c97fe1249d231cc65086a1a1405a8305f9819 (commit) from 0d6958781ded6093395b0e31ea57ecaf3f9d8dd3 (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 620c97fe1249d231cc65086a1a1405a8305f9819 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Jan 28 14:35:53 2021 -0600 Remove debug from rigctl.c diff --git a/tests/rigctl.c b/tests/rigctl.c index 4411a6ea..cb94a4fd 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -615,7 +615,6 @@ int main(int argc, char *argv[]) exitcode = 2; } - rig_debug(RIG_DEBUG_ERR, "%s: XXXXXXXXX#1 retcode=%d\n", __func__, retcode); if (retcode == -RIG_EIO || retcode == 2) { rig_debug(RIG_DEBUG_ERR, "%s: i/o error\n", __func__) ----------------------------------------------------------------------- Summary of changes: tests/rigctl.c | 1 - 1 file changed, 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |