kopia lustrzana https://github.com/Hamlib/Hamlib
Fix ID5100 ID4100 ID31 ID51 get/set freq
Remove get_powerstat from ID4100 ID31 ID51 as it they are not capable Add new rig_is_model function to help with Icom rig identification checks https://github.com/Hamlib/Hamlib/issues/1202 https://github.com/Hamlib/Hamlib/issues/1200pull/1215/head
rodzic
f68d45d99b
commit
c7b33ef0b3
|
@ -3428,6 +3428,8 @@ extern HAMLIB_EXPORT(char*) rig_make_md5(char *pass);
|
|||
extern HAMLIB_EXPORT(int) rig_set_lock_mode(RIG *rig, int lock);
|
||||
extern HAMLIB_EXPORT(int) rig_get_lock_mode(RIG *rig, int *lock);
|
||||
|
||||
extern HAMLIB_EXPORT(int) rig_is_model(RIG *rig, rig_model_t model);
|
||||
|
||||
|
||||
//! @endcond
|
||||
|
||||
|
|
|
@ -1324,7 +1324,15 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
RETURNFUNC2(retval);
|
||||
}
|
||||
|
||||
freq_len = priv->civ_731_mode ? 4 : 5;
|
||||
if (ICOM_IS_ID5100 || ICOM_IS_ID5100)
|
||||
{
|
||||
freq_len = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
freq_len = priv->civ_731_mode ? 4 : 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* to_bcd requires nibble len
|
||||
*/
|
||||
|
@ -1688,7 +1696,11 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
RETURNFUNC(RIG_OK);
|
||||
}
|
||||
|
||||
if (freq_len != 4 && freq_len != 5)
|
||||
if (freq_len == 3 && (ICOM_IS_ID5100 || ICOM_IS_ID4100 || ICOM_IS_ID31 || ICOM_IS_ID51))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: 3-byte ID5100/4100 length\n", __func__);
|
||||
}
|
||||
else if (freq_len != 4 && freq_len != 5)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: wrong frame len=%d\n",
|
||||
__func__, freq_len);
|
||||
|
@ -1698,7 +1710,7 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
RETURNFUNC(-RIG_ERJCTED);
|
||||
}
|
||||
|
||||
if (freq_len != (priv->civ_731_mode ? 4 : 5))
|
||||
if (freq_len != 3 && freq_len != (priv->civ_731_mode ? 4 : 5))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_WARN, "%s: freq len (%d) differs from expected\n",
|
||||
__func__, freq_len);
|
||||
|
|
|
@ -31,7 +31,12 @@
|
|||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#define BACKEND_VER "20221120"
|
||||
#define BACKEND_VER "20230102"
|
||||
|
||||
#define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31)
|
||||
#define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51)
|
||||
#define ICOM_IS_ID4100 rig_is_model(rig, RIG_MODEL_ID4100)
|
||||
#define ICOM_IS_ID5100 rig_is_model(rig, RIG_MODEL_ID5100)
|
||||
|
||||
#define ICOM_IS_SECONDARY_VFO(vfo) ((vfo) & (RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B))
|
||||
#define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00)
|
||||
|
|
|
@ -82,7 +82,7 @@ const struct rig_caps id31_caps =
|
|||
RIG_MODEL(RIG_MODEL_ID31),
|
||||
.model_name = "ID-31",
|
||||
.mfg_name = "Icom",
|
||||
.version = BACKEND_VER ".0",
|
||||
.version = BACKEND_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_ALPHA,
|
||||
.rig_type = RIG_TYPE_HANDHELD,
|
||||
|
@ -179,7 +179,7 @@ const struct rig_caps id31_caps =
|
|||
.get_mode = icom_get_mode,
|
||||
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
// .get_powerstat = icom_get_powerstat, // not capable
|
||||
.decode_event = icom_decode_event,
|
||||
|
||||
.set_func = icom_set_func,
|
||||
|
|
|
@ -86,9 +86,9 @@ const struct rig_caps id4100_caps =
|
|||
RIG_MODEL(RIG_MODEL_ID4100),
|
||||
.model_name = "ID-4100",
|
||||
.mfg_name = "Icom",
|
||||
.version = BACKEND_VER ".0",
|
||||
.version = BACKEND_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_ALPHA,
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_MOBILE,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
|
@ -98,7 +98,7 @@ const struct rig_caps id4100_caps =
|
|||
.serial_data_bits = 8,
|
||||
.serial_stop_bits = 1,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_XONXOFF,
|
||||
.write_delay = 0,
|
||||
.post_write_delay = 0,
|
||||
.timeout = 1000,
|
||||
|
@ -187,7 +187,7 @@ const struct rig_caps id4100_caps =
|
|||
.get_mode = icom_get_mode,
|
||||
.set_vfo = icom_set_vfo,
|
||||
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
//.set_powerstat = icom_set_powerstat, // ID-4100 does cannot query power
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
.decode_event = icom_decode_event,
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ const struct rig_caps id51_caps =
|
|||
RIG_MODEL(RIG_MODEL_ID51),
|
||||
.model_name = "ID-51",
|
||||
.mfg_name = "Icom",
|
||||
.version = BACKEND_VER ".0",
|
||||
.version = BACKEND_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_ALPHA,
|
||||
.rig_type = RIG_TYPE_HANDHELD,
|
||||
|
@ -185,7 +185,7 @@ const struct rig_caps id51_caps =
|
|||
.rig_open = icom_rig_open,
|
||||
.rig_close = icom_rig_close,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
// .get_powerstat = icom_get_powerstat, // not capable
|
||||
|
||||
.set_freq = icom_set_freq,
|
||||
.get_freq = icom_get_freq,
|
||||
|
|
12
src/rig.c
12
src/rig.c
|
@ -7717,3 +7717,15 @@ HAMLIB_EXPORT(int) rig_get_lock_mode(RIG *rig, int *mode)
|
|||
|
||||
return (retcode);
|
||||
}
|
||||
|
||||
HAMLIB_EXPORT(int) rig_is_model(RIG *rig, rig_model_t model)
|
||||
{
|
||||
int is_rig;
|
||||
|
||||
//a bit too verbose so disable this unless needed
|
||||
//rig_debug(RIG_DEBUG_TRACE, "%s(%d):%s called\n", __FILE__, __LINE__, __func__);
|
||||
is_rig = (model == rig->caps->rig_model) ? 1 : 0;
|
||||
|
||||
return (is_rig); // RETURN is too verbose here
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ endif
|
|||
|
||||
DISTCLEANFILES = rigctl.log rigctl.sum testbcd.log testbcd.sum
|
||||
|
||||
bin_PROGRAMS = rigctl rigctld rigmem rigsmtr rigswr rotctl rotctld rigctlcom ampctl ampctld $(TESTLIBUSB)
|
||||
bin_PROGRAMS = rigctl rigctld rigmem rigsmtr rigswr rotctl rotctld rigctlcom rigctltcp ampctl ampctld $(TESTLIBUSB)
|
||||
|
||||
#check_PROGRAMS = dumpmem testrig testrigopen testrigcaps testtrn testbcd testfreq listrigs testloc rig_bench testcache cachetest cachetest2 testcookie testgrid testsecurity
|
||||
check_PROGRAMS = dumpmem testrig testrigopen testrigcaps testtrn testbcd testfreq listrigs testloc rig_bench testcache cachetest cachetest2 testcookie testgrid
|
||||
|
@ -26,6 +26,7 @@ AMPCOMMONSRC = ampctl_parse.c ampctl_parse.h dumpcaps_amp.c uthash.h
|
|||
rigctl_SOURCES = rigctl.c $(RIGCOMMONSRC)
|
||||
rigctld_SOURCES = rigctld.c $(RIGCOMMONSRC)
|
||||
rigctlcom_SOURCES = rigctlcom.c $(RIGCOMMONSRC)
|
||||
rigctltcp_SOURCES = rigctltcp.c $(RIGCOMMONSRC)
|
||||
rotctl_SOURCES = rotctl.c $(ROTCOMMONSRC)
|
||||
rotctld_SOURCES = rotctld.c $(ROTCOMMONSRC)
|
||||
ampctl_SOURCES = ampctl.c $(AMPCOMMONSRC)
|
||||
|
@ -50,6 +51,7 @@ rotctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
|
|||
ampctl_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
|
||||
ampctld_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/src
|
||||
rigctlcom_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/security
|
||||
rigctltcp_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -I$(top_builddir)/security
|
||||
if HAVE_LIBUSB
|
||||
rigtestlibusb_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(LIBUSB_CFLAGS)
|
||||
endif
|
||||
|
@ -63,6 +65,7 @@ ampctl_LDADD = $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
|
|||
ampctld_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
|
||||
rigmem_LDADD = $(LIBXML2_LIBS) $(LDADD)
|
||||
rigctlcom_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
|
||||
rigctltcp_LDADD = $(NET_LIBS) $(PTHREAD_LIBS) $(LDADD) $(READLINE_LIBS)
|
||||
if HAVE_LIBUSB
|
||||
rigtestlibusb_LDADD = $(LIBUSB_LIBS)
|
||||
endif
|
||||
|
@ -78,6 +81,7 @@ rigctld_LDFLAGS = $(WINEXELDFLAGS)
|
|||
rotctld_LDFLAGS = $(WINEXELDFLAGS)
|
||||
ampctld_LDFLAGS = $(WINEXELDFLAGS)
|
||||
rigctlcom_LDFLAGS = $(WINEXELDFLAGS)
|
||||
rigctltcp_LDFLAGS = $(WINEXELDFLAGS)
|
||||
if HAVE_LIBUSB
|
||||
rigtestlibusb_LDFLAGS = $(WINEXELDFLAGS)
|
||||
endif
|
||||
|
|
Ładowanie…
Reference in New Issue