kopia lustrzana https://github.com/Hamlib/Hamlib
Fix Elecraft K4 set_mode to work with VFOB
https://github.com/Hamlib/Hamlib/issues/825pull/846/head
rodzic
891ca6ed75
commit
50512b4bf9
|
@ -484,7 +484,7 @@ const struct rig_caps k4_caps =
|
|||
RIG_MODEL(RIG_MODEL_K4),
|
||||
.model_name = "K4",
|
||||
.mfg_name = "Elecraft",
|
||||
.version = BACKEND_VER ".14",
|
||||
.version = BACKEND_VER ".15",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -1088,9 +1088,11 @@ int k3_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||
{
|
||||
int err;
|
||||
char cmd_m[4];
|
||||
char cmd_m[5];
|
||||
char buf[KENWOOD_MAX_BUF_LEN];
|
||||
char *dtcmd;
|
||||
struct kenwood_priv_caps *caps = kenwood_caps(rig);
|
||||
struct kenwood_priv_data *priv = rig->state.priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1112,40 +1114,46 @@ int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
else
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE,
|
||||
"%s(%d): changing mode=%s, oldmode=%s, width=%ld, oldwidth=%ld\n", __FILE__,
|
||||
"%s(%d): changing oldmode=%s, to mode=%s, oldwidth=%ld, to width=%ld\n", __FILE__,
|
||||
__LINE__, rig_strrmode(tmode), rig_strrmode(mode), twidth, width);
|
||||
}
|
||||
|
||||
dtcmd = "DT";
|
||||
if ((priv->is_k4 || priv->is_k4d || priv->is_k4hd) && vfo == RIG_VFO_B)
|
||||
{
|
||||
dtcmd = "DT$";
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case RIG_MODE_PKTLSB:
|
||||
mode = RIG_MODE_RTTYR; // in "DT0" Subband RIG_MODE_RTTYR = USB and RIG_MODE_RTTY = LSB
|
||||
snprintf(cmd_m, sizeof(cmd_m),
|
||||
"DT0"); /* DATA A mode - DATA (REV) on LSB optimized for HF Packet, VFO dial is suppressed carrier QRG */
|
||||
"%s0", dtcmd); /* DATA A mode - DATA (REV) on LSB optimized for HF Packet, VFO dial is suppressed carrier QRG */
|
||||
break;
|
||||
|
||||
case RIG_MODE_PKTUSB:
|
||||
mode = RIG_MODE_RTTY; // in "DT0" Subband RIG_MODE_RTTYR = USB and RIG_MODE_RTTY = LSB
|
||||
snprintf(cmd_m, sizeof(cmd_m),
|
||||
"DT0"); /* DATA A mode - DATA on USB general, VFO dial is suppressed carrier QRG */
|
||||
"%s0", dtcmd); /* DATA A mode - DATA on USB general, VFO dial is suppressed carrier QRG */
|
||||
break;
|
||||
|
||||
case RIG_MODE_RTTY:
|
||||
mode = RIG_MODE_RTTY; // in "DT1" Subband RIG_MODE_RTTY = LSB and RIG_MODE_RTTYR = USB
|
||||
snprintf(cmd_m, sizeof(cmd_m),
|
||||
"DT2"); /* FSK D mode - direct FSK on LSB optimized for RTTY, VFO dial is MARK */
|
||||
"%s2", dtcmd); /* FSK D mode - direct FSK on LSB optimized for RTTY, VFO dial is MARK */
|
||||
break;
|
||||
|
||||
case RIG_MODE_RTTYR:
|
||||
mode = RIG_MODE_RTTYR; // in "DT2" Subband RIG_MODE_RTTY = LSB and RIG_MODE_RTTYR = USB
|
||||
snprintf(cmd_m, sizeof(cmd_m),
|
||||
"DT1"); /* FSK D mode - direct FSK keying, LSB is "normal", VFO dial is MARK */
|
||||
"%s1", dtcmd); /* FSK D mode - direct FSK keying, LSB is "normal", VFO dial is MARK */
|
||||
break;
|
||||
|
||||
case RIG_MODE_PSK:
|
||||
mode = RIG_MODE_PSK; // in "DT3" subband RIG_MODE_PSK = USB # kenwood.c mode but may need kenwwod.c mode table review.
|
||||
snprintf(cmd_m, sizeof(cmd_m),
|
||||
"DT3"); /* PSK D Mode - direct PSK keying, USB is "normal", VFO dial is MARK */
|
||||
"%s3", dtcmd); /* PSK D Mode - direct PSK keying, USB is "normal", VFO dial is MARK */
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Ładowanie…
Reference in New Issue