Increase send_morse size to use maximum for rigs or 20 chars (if morse_qsize unknown)

This will still allow for up to 1023 characater to queue up.
No guarantees on which rigs allow for this queuing though.
Kenwood rigs can at least find the buffer status to wait for room but not all rigs do.
https://github.com/Hamlib/Hamlib/issues/1368
pull/1349/head
Mike Black W9MDB 2023-08-19 12:36:07 -05:00
rodzic 424e8cc04a
commit b40da0f6b0
16 zmienionych plików z 38 dodań i 17 usunięć

Wyświetl plik

@ -2153,6 +2153,7 @@ struct rig_caps {
int (*set_lock_mode)(RIG *rig, int mode);
int (*get_lock_mode)(RIG *rig, int *mode);
short timeout_retry; /*!< number of retries to make in case of read timeout errors, some serial interfaces may require this, 0 to use default value, -1 to disable */
short morse_qsize; /* max length of morse */
// int (*bandwidth2rig)(RIG *rig, enum bandwidth_t bandwidth);
// enum bandwidth_t (*rig2bandwidth)(RIG *rig, int rigbandwidth);
};

Wyświetl plik

@ -342,6 +342,7 @@ const struct rig_caps k3_caps =
.send_voice_mem = k3_send_voice_mem,
.stop_voice_mem = k3_stop_voice_mem,
.power2mW = k3_power2mW,
.morse_qsize = 24,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};
@ -497,6 +498,7 @@ const struct rig_caps k3s_caps =
.send_voice_mem = k3_send_voice_mem,
.stop_voice_mem = k3_stop_voice_mem,
.power2mW = k3_power2mW,
.morse_qsize = 24,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};
@ -658,6 +660,7 @@ const struct rig_caps k4_caps =
.send_voice_mem = k4_send_voice_mem,
.stop_voice_mem = k4_stop_voice_mem,
.power2mW = k3_power2mW,
.morse_qsize = 24,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};
@ -812,6 +815,7 @@ const struct rig_caps kx3_caps =
.send_voice_mem = k3_send_voice_mem,
.stop_voice_mem = k3_stop_voice_mem,
.power2mW = k3_power2mW,
.morse_qsize = 24,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -147,7 +147,7 @@ const struct rig_caps ftdx1200_caps =
RIG_MODEL(RIG_MODEL_FTDX1200),
.model_name = "FTDX-1200",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".6",
.version = NEWCAT_VER ".7",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -328,5 +328,6 @@ const struct rig_caps ftdx1200_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -132,7 +132,7 @@ const struct rig_caps ft2000_caps =
RIG_MODEL(RIG_MODEL_FT2000),
.model_name = "FT-2000",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".4",
.version = NEWCAT_VER ".5",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -313,5 +313,6 @@ const struct rig_caps ft2000_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -242,7 +242,7 @@ const struct rig_caps ftdx3000_caps =
RIG_MODEL(RIG_MODEL_FTDX3000),
.model_name = "FTDX-3000",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".11",
.version = NEWCAT_VER ".12",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -419,6 +419,7 @@ const struct rig_caps ftdx3000_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -207,6 +207,7 @@ const struct rig_caps ft450_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 40,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -138,7 +138,7 @@ const struct rig_caps ftdx5000_caps =
RIG_MODEL(RIG_MODEL_FTDX5000),
.model_name = "FTDX-5000",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".10",
.version = NEWCAT_VER ".11",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -315,5 +315,6 @@ const struct rig_caps ftdx5000_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -119,7 +119,7 @@ const struct rig_caps ft710_caps =
RIG_MODEL(RIG_MODEL_FT710),
.model_name = "FT-710",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".6",
.version = NEWCAT_VER ".7",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -305,5 +305,6 @@ const struct rig_caps ft710_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -130,7 +130,7 @@ const struct rig_caps ft891_caps =
RIG_MODEL(RIG_MODEL_FT891),
.model_name = "FT-891",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".8",
.version = NEWCAT_VER ".9",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -329,6 +329,7 @@ const struct rig_caps ft891_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -46,7 +46,7 @@ const struct rig_caps ft9000_caps =
RIG_MODEL(RIG_MODEL_FT9000),
.model_name = "FTDX-9000",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".4",
.version = NEWCAT_VER ".5",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -214,6 +214,7 @@ const struct rig_caps ft9000_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};
@ -222,7 +223,7 @@ const struct rig_caps ft9000Old_caps =
RIG_MODEL(RIG_MODEL_FT9000OLD),
.model_name = "FTDX-9000 Old",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".4",
.version = NEWCAT_VER ".5",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -390,5 +391,6 @@ const struct rig_caps ft9000Old_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -289,5 +289,6 @@ const struct rig_caps ft950_caps =
.send_morse = newcat_send_morse,
.wait_morse = rig_wait_morse,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -138,7 +138,7 @@ const struct rig_caps ft991_caps =
RIG_MODEL(RIG_MODEL_FT991),
.model_name = "FT-991",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".17",
.version = NEWCAT_VER ".18",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -362,6 +362,7 @@ const struct rig_caps ft991_caps =
.send_voice_mem = newcat_send_voice_mem,
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -135,7 +135,7 @@ const struct rig_caps ftdx10_caps =
RIG_MODEL(RIG_MODEL_FTDX10),
.model_name = "FTDX-10",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".8",
.version = NEWCAT_VER ".9",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -318,5 +318,6 @@ const struct rig_caps ftdx10_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -135,7 +135,7 @@ const struct rig_caps ftdx101d_caps =
RIG_MODEL(RIG_MODEL_FTDX101D),
.model_name = "FTDX-101D",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".18",
.version = NEWCAT_VER ".19",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -318,6 +318,6 @@ const struct rig_caps ftdx101d_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -73,7 +73,7 @@ const struct rig_caps ftdx101mp_caps =
RIG_MODEL(RIG_MODEL_FTDX101MP),
.model_name = "FTDX-101MP",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".9",
.version = NEWCAT_VER ".10",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -254,5 +254,6 @@ const struct rig_caps ftdx101mp_caps =
.set_clock = newcat_set_clock,
.get_clock = newcat_get_clock,
.scan = newcat_scan,
.morse_qsize = 50,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -8082,13 +8082,15 @@ void *morse_data_handler(void *arg)
initFIFO(rig->state.fifo_morse);
char *c;
int qsize = rig->caps->morse_qsize; // if backend overrides qsize
if (qsize == 0) qsize = 20; // shortest length of any rig's CW morse capability
c = calloc(1,qsize+1);
while (rs->morse_data_handler_thread_run || (peek(rig->state.fifo_morse) >= 0))
{
char c[2]; // up to 1 char to be sent -- this allows speed change inter-char eventually
memset(c, 0, sizeof(c));
int n = 0;
for (n = 0; n < sizeof(c) - 1; n++)
memset(c,0,qsize);
for (n = 0; n < qsize; n++)
{
int d = peek(rig->state.fifo_morse);
if (d < 0)
@ -8166,6 +8168,7 @@ void *morse_data_handler(void *arg)
}
free(rig->state.fifo_morse);
free(c);
rig->state.fifo_morse = NULL;
pthread_exit(NULL);
return NULL;