kopia lustrzana https://github.com/Hamlib/Hamlib
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/1368pull/1349/head
rodzic
424e8cc04a
commit
b40da0f6b0
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
11
src/rig.c
11
src/rig.c
|
@ -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;
|
||||
|
|
Ładowanie…
Reference in New Issue