Mike Black W9MDB 2023-01-04 15:40:36 -06:00
rodzic 7200858735
commit 41ad82139f
4 zmienionych plików z 31 dodań i 14 usunięć

Wyświetl plik

@ -1363,16 +1363,22 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
else
{
cmd = C_SET_FREQ;
subcmd = -1;
if (ICOM_IS_ID5100 || ICOM_IS_ID4100 || ICOM_IS_ID31 || ICOM_IS_ID51)
{
// for these rigs 0x00 is setting the freq and 0x03 is just for reading
cmd = 0x00;
// temporary fix for ID5100 not giving ACK/NAK on 0x00 freq on E8 firmware
retval = icom_transaction(rig, cmd, subcmd, freqbuf, freq_len, NULL,
NULL);
return RIG_OK;
}
else
{
retval = icom_transaction(rig, cmd, subcmd, freqbuf, freq_len, ackbuf,
&ack_len);
}
subcmd = -1;
retval = icom_transaction(rig, cmd, subcmd, freqbuf, freq_len, ackbuf,
&ack_len);
}
hl_usleep(50 * 1000); // pause for transceive message and we'll flush it
@ -1699,7 +1705,8 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
if (freq_len == 3 && (ICOM_IS_ID5100 || ICOM_IS_ID4100 || ICOM_IS_ID31
|| ICOM_IS_ID51))
{
rig_debug(RIG_DEBUG_ERR, "%s: 3-byte ID5100/4100 length - turn off XONXOFF flow control\n", __func__);
rig_debug(RIG_DEBUG_ERR,
"%s: 3-byte ID5100/4100 length - turn off XONXOFF flow control\n", __func__);
}
else if (freq_len != 4 && freq_len != 5)
{

Wyświetl plik

@ -98,7 +98,6 @@ const struct rig_caps id4100_caps =
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
//.serial_handshake = RIG_HANDSHAKE_XONXOFF,
.serial_handshake = RIG_HANDSHAKE_NONE,
.write_delay = 0,
.post_write_delay = 0,

Wyświetl plik

@ -90,13 +90,16 @@ int id5100_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
case RIG_MODE_FMN: icmode = 5; modebuf = 2; break;
case RIG_MODE_DSTAR: icmode = 17; modebuf = 1; break;
case RIG_MODE_DSTAR: icmode = 0x17; modebuf = 1; break;
default:
rig_debug(RIG_DEBUG_ERR, "%s: Unknown mode=%s\n", __func__, rig_strrmode(mode));
return -RIG_EINVAL;
}
rig_debug(RIG_DEBUG_VERBOSE, "%s: mode=%d, modebuf=%c\n", __func__, icmode,
modebuf);
retval = icom_transaction(rig, C_SET_MODE, icmode, &modebuf, 1, ackbuf,
&ack_len);
@ -118,11 +121,17 @@ int id5100_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
switch (modebuf[1])
{
case 2: *mode = modebuf[3] == 1 ? RIG_MODE_AM : RIG_MODE_AMN; break;
case 2:
*mode = modebuf[2] == 1 ? RIG_MODE_AM : RIG_MODE_AMN;
*width = modebuf[2] == 1 ? 12000 : 6000; break;
case 5: *mode = modebuf[3] == 1 ? RIG_MODE_FM : RIG_MODE_FMN; break;
case 5:
*mode = modebuf[2] == 1 ? RIG_MODE_FM : RIG_MODE_FMN;
*width = modebuf[2] == 1 ? 10000 : 5000; break;
case 17: *mode = RIG_MODE_DSTAR; break;
case 0x17:
*mode = RIG_MODE_DSTAR;
*width = 6000; break;
}
return RIG_OK;
@ -144,7 +153,7 @@ const struct rig_caps id5100_caps =
.mfg_name = "Icom",
.version = BACKEND_VER ".2",
.copyright = "LGPL",
.status = RIG_STATUS_BETA,
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_MOBILE,
.ptt_type = RIG_PTT_RIG,
.dcd_type = RIG_DCD_RIG,
@ -154,8 +163,6 @@ const struct rig_caps id5100_caps =
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
// XONXOFF is not working on Firmware E8
//.serial_handshake = RIG_HANDSHAKE_XONXOFF,
.serial_handshake = RIG_HANDSHAKE_NONE,
.write_delay = 0,
.post_write_delay = 0,

Wyświetl plik

@ -8,12 +8,13 @@ DISTCLEANFILES =
bin_PROGRAMS =
check_PROGRAMS = simelecraft simicom simkenwood simyaesu simicom9700
check_PROGRAMS = simelecraft simicom simkenwood simyaesu simicom9700 simft991 simftdx1200 simftdx3000 simjupiter simpowersdr
simelecraft_SOURCES = simelecraft.c
simicom_SOURCES = simicom.c
simkenwood_SOURCES = simkenwood.c
simyaesu_SOURCES = simyaesu.c
simid5100_SOURCES = simid5100.c
# include generated include files ahead of any in sources
#rigctl_CPPFLAGS = -I$(top_builddir)/tests -I$(top_builddir)/src -I$(srcdir) $(AM_CPPFLAGS)
@ -25,17 +26,20 @@ simelecraft_CFLAGS = $(AM_CFLAGS) $(LIBXML2_CFLAGS) -I$(top_builddir)/src
simicom_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
simkenwood_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
simyaesu_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
simid5100_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
simelecraft_LDADD = $(PTHREAD_LIBS) $(READLINE_LIBS) $(LDADD)
simicom_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
simkenwood_LDADD = $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
simyaesu_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
simid5100_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
# Linker options
simelecraft_LDFLAGS = $(WINEXELDFLAGS)
simicom_LDFLAGS = $(WINEXELDFLAGS)
simkenwood_LDFLAGS = $(WINEXELDFLAGS)
simyaesu_LDFLAGS = $(WINEXELDFLAGS)
simid5100_LDFLAGS = $(WINEXELDFLAGS)
EXTRA_DIST =