Re-enable Yaesu question mark handling and fix newcat_get_cmd retries in case of question mark response

pull/506/head
Mikael Nousiainen 2021-01-12 11:00:18 +02:00
rodzic 614f08b672
commit dd4076355d
2 zmienionych plików z 22 dodań i 24 usunięć

Wyświetl plik

@ -3304,9 +3304,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
} }
// Some Yaesu rigs reject this command in AM/FM modes // Some Yaesu rigs reject this command in AM/FM modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_LEVEL_CWPITCH: case RIG_LEVEL_CWPITCH:
@ -3373,9 +3371,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MG%03d%c", fpf, cat_term); snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MG%03d%c", fpf, cat_term);
// Some Yaesu rigs reject this command in RTTY modes // Some Yaesu rigs reject this command in RTTY modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_LEVEL_METER: case RIG_LEVEL_METER:
@ -3583,9 +3579,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
} }
// Some Yaesu rigs reject this command in AM/FM modes // Some Yaesu rigs reject this command in AM/FM modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_LEVEL_COMP: case RIG_LEVEL_COMP:
@ -4874,9 +4868,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
} }
// Some Yaesu rigs reject this command in AM/FM modes // Some Yaesu rigs reject this command in AM/FM modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_FUNC_MN: case RIG_FUNC_MN:
@ -4894,9 +4886,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
} }
// Some Yaesu rigs reject this command in AM/FM modes // Some Yaesu rigs reject this command in AM/FM modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_FUNC_FBKIN: case RIG_FUNC_FBKIN:
@ -5002,9 +4992,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
} }
// Some Yaesu rigs reject this command in AM/FM modes // Some Yaesu rigs reject this command in AM/FM modes
// Disabling as it's too general priv->question_mark_response_means_rejected = 1;
// Need to be rig/mode specific
//priv->question_mark_response_means_rejected = 1;
break; break;
case RIG_FUNC_COMP: case RIG_FUNC_COMP:
@ -9160,9 +9148,18 @@ int newcat_get_cmd(RIG *rig)
* Followup 20201213 FTDX3000 FB; command returning ?; so do NOT abort * Followup 20201213 FTDX3000 FB; command returning ?; so do NOT abort
* see https://github.com/Hamlib/Hamlib/issues/464 * see https://github.com/Hamlib/Hamlib/issues/464
*/ */
rig_debug(RIG_DEBUG_ERR, "%s: Command rejected by the rig: '%s'\n", __func__, if (priv->question_mark_response_means_rejected)
priv->cmd_str); {
// return -RIG_ERJCTED; rig_debug(RIG_DEBUG_ERR, "%s: Command rejected by the rig: '%s'\n", __func__,
priv->cmd_str);
return -RIG_ERJCTED;
}
rig_debug(RIG_DEBUG_WARN, "%s: Rig busy - retrying: '%s'\n", __func__,
priv->cmd_str);
rc = -RIG_BUSBUSY; /* retry */
break;
} }
continue; continue;
@ -9305,12 +9302,13 @@ int newcat_set_cmd(RIG *rig)
if (priv->question_mark_response_means_rejected) if (priv->question_mark_response_means_rejected)
{ {
rig_debug(RIG_DEBUG_ERR, "%s: Command rejected by the rig: '%s'\n", __func__, rig_debug(RIG_DEBUG_ERR, "%s: Command rejected by the rig: '%s'\n", __func__,
priv->cmd_str); priv->cmd_str);
return -RIG_ERJCTED; return -RIG_ERJCTED;
} }
/* Rig busy wait please */ /* Rig busy wait please */
rig_debug(RIG_DEBUG_WARN, "%s: Rig busy - retrying\n", __func__); rig_debug(RIG_DEBUG_WARN, "%s: Rig busy - retrying: '%s'\n", __func__,
priv->cmd_str);
/* read the verify command reply */ /* read the verify command reply */
if ((rc = read_string(&state->rigport, priv->ret_data, sizeof(priv->ret_data), if ((rc = read_string(&state->rigport, priv->ret_data, sizeof(priv->ret_data),

Wyświetl plik

@ -50,7 +50,7 @@
typedef char ncboolean; typedef char ncboolean;
/* shared function version */ /* shared function version */
#define NEWCAT_VER "20210111" #define NEWCAT_VER "20210112"
/* Hopefully large enough for future use, 128 chars plus '\0' */ /* Hopefully large enough for future use, 128 chars plus '\0' */
#define NEWCAT_DATA_LEN 129 #define NEWCAT_DATA_LEN 129