Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hamlib for openSUSE:Factory checked in at 2025-02-11 21:23:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hamlib (Old) and /work/SRC/openSUSE:Factory/.hamlib.new.19470 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hamlib" Tue Feb 11 21:23:20 2025 rev:23 rq:1244843 version:4.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/hamlib/hamlib.changes 2025-01-27 20:56:59.202918367 +0100 +++ /work/SRC/openSUSE:Factory/.hamlib.new.19470/hamlib.changes 2025-02-11 21:24:39.634340786 +0100 @@ -1,0 +2,10 @@ +Mon Feb 10 18:18:10 UTC 2025 - Andreas Stieger <andreas.stie...@gmx.de> + +- Update to 4.6.2: + * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER, + RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC + * Fix IC905 for gpredict + * Fix potential segfault on QMX + * Fix pmr171 + +------------------------------------------------------------------- Old: ---- hamlib-4.6.1.tar.gz hamlib-4.6.1.tar.gz.asc New: ---- hamlib-4.6.2.tar.gz hamlib-4.6.2.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hamlib.spec ++++++ --- /var/tmp/diff_new_pack.OnVCdg/_old 2025-02-11 21:24:40.358370721 +0100 +++ /var/tmp/diff_new_pack.OnVCdg/_new 2025-02-11 21:24:40.358370721 +0100 @@ -19,7 +19,7 @@ %define sover 4 Name: hamlib -Version: 4.6.1 +Version: 4.6.2 Release: 0 Summary: Run-time library to control radio transcievers and receivers License: LGPL-2.1-only ++++++ hamlib-4.6.1.tar.gz -> hamlib-4.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/NEWS new/hamlib-4.6.2/NEWS --- old/hamlib-4.6.1/NEWS 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/NEWS 2025-02-09 22:22:13.000000000 +0100 @@ -12,6 +12,12 @@ * rot_get_conf deprecated and replaced by rot_get_conf2 * Change FT1000MP Mark V model names to align with FT1000MP +Version 4.6.2 + * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC + * Fix IC905 for gpredict + * Fix potential segfault on QMX + * Fix pmr171 + Version 4.6.1 * Fix C++ builds failing on rig_list_foreach function * Fix IC9100 rigctld startup to end up on VFOA diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/README.developer new/hamlib-4.6.2/README.developer --- old/hamlib-4.6.1/README.developer 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/README.developer 2025-02-09 22:22:13.000000000 +0100 @@ -239,7 +239,7 @@ you'll need the following tools. Make sure you have at least the required version or you won't even be able to build from the Git clone. -N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials' +N.B. The Debian and derivatives (Ubuntu and friends) 'build-essential' package will install a number of tools and minimize the number of packages that need to be installed manually (Debian package names are listed, other distributions may differ). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/configure new/hamlib-4.6.2/configure --- old/hamlib-4.6.1/configure 2025-01-22 03:01:45.000000000 +0100 +++ new/hamlib-4.6.2/configure 2025-02-09 22:22:20.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Hamlib 4.6.1. +# Generated by GNU Autoconf 2.69 for Hamlib 4.6.2. # # Report bugs to <hamlib-develo...@lists.sourceforge.net>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='Hamlib' PACKAGE_TARNAME='hamlib' -PACKAGE_VERSION='4.6.1' -PACKAGE_STRING='Hamlib 4.6.1' +PACKAGE_VERSION='4.6.2' +PACKAGE_STRING='Hamlib 4.6.2' PACKAGE_BUGREPORT='hamlib-develo...@lists.sourceforge.net' PACKAGE_URL='http://www.hamlib.org' @@ -1485,7 +1485,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Hamlib 4.6.1 to adapt to many kinds of systems. +\`configure' configures Hamlib 4.6.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1556,7 +1556,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Hamlib 4.6.1:";; + short | recursive ) echo "Configuration of Hamlib 4.6.2:";; esac cat <<\_ACEOF @@ -1713,7 +1713,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Hamlib configure 4.6.1 +Hamlib configure 4.6.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2394,7 +2394,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Hamlib $as_me 4.6.1, which was +It was created by Hamlib $as_me 4.6.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4637,7 +4637,7 @@ # Define the identity of the package. PACKAGE='hamlib' - VERSION='4.6.1' + VERSION='4.6.2' cat >>confdefs.h <<_ACEOF @@ -4938,7 +4938,7 @@ # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 ABI_REVISION=6 -ABI_PATCH=1 +ABI_PATCH=2 ABI_AGE=0 @@ -23870,7 +23870,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Hamlib $as_me 4.6.1, which was +This file was extended by Hamlib $as_me 4.6.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23937,7 +23937,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Hamlib config.status 4.6.1 +Hamlib config.status 4.6.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/configure.ac new/hamlib-4.6.2/configure.ac --- old/hamlib-4.6.1/configure.ac 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/configure.ac 2025-02-09 22:22:13.000000000 +0100 @@ -14,7 +14,7 @@ dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.6.1],[hamlib-develo...@lists.sourceforge.net],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.6.2],[hamlib-develo...@lists.sourceforge.net],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) @@ -76,7 +76,7 @@ # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 ABI_REVISION=6 -ABI_PATCH=1 +ABI_PATCH=2 ABI_AGE=0 AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/doc/hamlib.cfg new/hamlib-4.6.2/doc/hamlib.cfg --- old/hamlib-4.6.1/doc/hamlib.cfg 2025-01-22 03:02:00.000000000 +0100 +++ new/hamlib-4.6.2/doc/hamlib.cfg 2025-02-09 22:22:35.000000000 +0100 @@ -1,7 +1,7 @@ ## hamlib.cfg.in--converted into hamlib.cfg by config.status PROJECT_NAME = Hamlib -PROJECT_NUMBER = 4.6.1 +PROJECT_NUMBER = 4.6.2 PROJECT_LOGO = ../doc/hamlib.png # Output diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/rigs/icom/ic746.c new/hamlib-4.6.2/rigs/icom/ic746.c --- old/hamlib-4.6.1/rigs/icom/ic746.c 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/rigs/icom/ic746.c 2025-02-09 22:22:13.000000000 +0100 @@ -54,7 +54,7 @@ #define IC746_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_RF|RIG_FUNC_ANF|RIG_FUNC_APF|RIG_FUNC_RESUME|RIG_FUNC_ARO) -#define IC746_LEVEL_ALL (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_APF|RIG_LEVEL_AGC_TIME) +#define IC746_LEVEL_ALL (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_APF|RIG_LEVEL_AGC_TIME|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_SWR|RIG_LEVEL_ALC) #define IC746_GET_PARM (RIG_PARM_BACKLIGHT|RIG_PARM_BEEP) #define IC746_SET_PARM (RIG_PARM_BACKLIGHT|RIG_PARM_BEEP|RIG_PARM_ANN) @@ -181,7 +181,7 @@ RIG_MODEL(RIG_MODEL_IC746), .model_name = "IC-746", .mfg_name = "Icom", - .version = BACKEND_VER ".4", + .version = BACKEND_VER ".5", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/rigs/kenwood/kenwood.h new/hamlib-4.6.2/rigs/kenwood/kenwood.h --- old/hamlib-4.6.1/rigs/kenwood/kenwood.h 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/rigs/kenwood/kenwood.h 2025-02-09 22:22:13.000000000 +0100 @@ -183,7 +183,7 @@ int save_k2_ext_lvl; // so we can restore to original int save_k3_ext_lvl; // so we can restore to original -- for future use if needed int voice_bank; /* last voice bank send for use by stop_voice_mem */ - mode_t last_mode_pc; // last mode memory for PC command + rmode_t last_mode_pc; // last mode memory for PC command int power_now,power_min,power_max; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/rigs/kenwood/ts480.c new/hamlib-4.6.2/rigs/kenwood/ts480.c --- old/hamlib-4.6.1/rigs/kenwood/ts480.c 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/rigs/kenwood/ts480.c 2025-02-09 22:22:13.000000000 +0100 @@ -1943,7 +1943,7 @@ RIG_MODEL(RIG_MODEL_QRPLABS_QMX), .model_name = "QMX", .mfg_name = "QRPLabs", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_BETA, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -1980,6 +1980,8 @@ RIG_FLT_END, }, + .priv = (void *)& ts480_priv_caps, + .rig_init = ts480_init, .rig_open = qrplabs_open, .rig_cleanup = kenwood_cleanup, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/rigs/yaesu/pmr171.c new/hamlib-4.6.2/rigs/yaesu/pmr171.c --- old/hamlib-4.6.1/rigs/yaesu/pmr171.c 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/rigs/yaesu/pmr171.c 2025-02-09 22:22:13.000000000 +0100 @@ -179,7 +179,7 @@ .mfg_name = "Guohe", .version = "20240704.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, @@ -453,19 +453,106 @@ { hamlib_port_t *rp = RIGPORT(rig); rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); - unsigned char buf[64] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; + unsigned char buf[8] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; buf[5] = cmd; - unsigned int crc = CRC16Check(&buf[4], 3); + unsigned int crc = CRC16Check(&buf[4], 2); buf[6] = crc >> 8; buf[7] = crc & 0xff; rig_flush(rp); - write_block(rp, buf, 9); + write_block(rp, buf, 8); return RIG_OK; } -rmode_t pmr171_modes[] = { RIG_MODE_USB, RIG_MODE_LSB, RIG_MODE_CWR, RIG_MODE_CW, RIG_MODE_FM, RIG_MODE_FMN, RIG_MODE_PKTUSB, RIG_MODE_RTTY }; +#define GUOHE_MODE_TABLE_MAX 9 +rmode_t pmr171_modes[GUOHE_MODE_TABLE_MAX] = +{ + RIG_MODE_USB, + RIG_MODE_LSB, + RIG_MODE_CWR, + RIG_MODE_CW, + RIG_MODE_AM, + RIG_MODE_FM, + RIG_MODE_FMN, + RIG_MODE_PKTUSB, + RIG_MODE_RTTY // not functioning +}; + +rmode_t guohe2rmode(unsigned char mode, const rmode_t mode_table[]) +{ + rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=0x%02x\n", __func__, + mode); + + if (mode >= GUOHE_MODE_TABLE_MAX) + { + return (RIG_MODE_NONE); + } + + rig_debug(RIG_DEBUG_VERBOSE, "%s: returning %s\n", __func__, + rig_strrmode(mode_table[mode])); + return (mode_table[mode]); +} + +unsigned char rmode2guohe(rmode_t mode, const rmode_t mode_table[]) +{ + rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=%s\n", __func__, + rig_strrmode(mode)); + + if (mode != RIG_MODE_NONE) + { + unsigned char i; + + for (i = 0; i < GUOHE_MODE_TABLE_MAX; i++) + { + if (mode_table[i] == mode) + { + rig_debug(RIG_DEBUG_VERBOSE, "%s: returning 0x%02x\n", __func__, i); + return (i); + } + } + } + + return (-1); +} + +/** + * Converting to Big-endian bytes + */ +unsigned char *to_be(unsigned char data[], + unsigned long long freq, + unsigned int byte_len) +{ + int i; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + for (i = byte_len - 1; i >= 0; i--) + { + unsigned char a = freq & 0xFF; + freq >>= 8; + data[i] = a; + } + + return data; +} + + +unsigned long long from_be(const unsigned char data[], + unsigned int byte_len) +{ + int i; + unsigned long long f = 0; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + for (i = 0; i < byte_len; i++) + { + f = (f << 8) + data[i]; + } + + return f; +} static int pmr171_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { @@ -484,8 +571,8 @@ pmr171_send_cmd1(rig, 0x0b, 0); read_block(rp, reply, 5); read_block(rp, &reply[5], reply[4]); - vfoa = from_bcd_be(&reply[9], 8); - vfob = from_bcd_be(&reply[13], 8); + vfoa = from_be(&reply[9], 4); + vfob = from_be(&reply[13], 4); cachep->freqMainA = vfoa; cachep->freqMainB = vfob; rig_debug(RIG_DEBUG_VERBOSE, "%s: vfoa=%.0f, vfob=%.0f\n", __func__, vfoa, @@ -494,8 +581,8 @@ // Now grab the ptt status cachep->ptt = reply[6] == 1; // And the mode - cachep->modeMainA = pmr171_modes[reply[7]]; - cachep->modeMainB = pmr171_modes[reply[8]]; + cachep->modeMainA = guohe2rmode(reply[7], pmr171_modes); + cachep->modeMainB = guohe2rmode(reply[8], pmr171_modes); if (vfo == RIG_VFO_B) { *freq = cachep->freqMainA; } else { *freq = cachep->freqMainB; } @@ -790,7 +877,7 @@ static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { - unsigned char cmd[16] = { 0xa5, 0xa5, 0xa5, 0xa5, 12, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + unsigned char cmd[16] = { 0xa5, 0xa5, 0xa5, 0xa5, 11, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char reply[16]; //int retval; hamlib_port_t *rp = RIGPORT(rig); @@ -800,16 +887,16 @@ /* fill in the frequency */ if (vfo == RIG_VFO_B) { - to_bcd_be(&cmd[6], CACHE(rig)->freqMainA, 8); - to_bcd_be(&cmd[10], freq, 8); + to_be(&cmd[6], CACHE(rig)->freqMainA, 4); + to_be(&cmd[10], freq, 4); } else { - to_bcd_be(&cmd[6], freq, 8); - to_bcd_be(&cmd[10], CACHE(rig)->freqMainB, 8); + to_be(&cmd[6], freq, 4); + to_be(&cmd[10], CACHE(rig)->freqMainB, 4); } - unsigned int crc = CRC16Check(&cmd[4], 12); + unsigned int crc = CRC16Check(&cmd[4], 10); cmd[14] = crc >> 8; cmd[15] = crc & 0xff; rig_flush(rp); @@ -823,34 +910,38 @@ static int pmr171_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { hamlib_port_t *rp = RIGPORT(rig); - unsigned char cmd[10] = { 0xa5, 0xa5, 0xa5, 0xa5, 3, 0x0a, 0x00, 0x00, 0x00, 0x00 }; + unsigned char cmd[10] = { 0xa5, 0xa5, 0xa5, 0xa5, 5, 0x0a, 0x00, 0x00, 0x00, 0x00 }; unsigned char reply[10]; - int i, crc; + int crc; + unsigned char i = rmode2guohe(mode, pmr171_modes); - for (i = 0; i < sizeof(pmr171_modes) / sizeof(rmode_t); ++i) + if (i != (-1)) { - if (pmr171_modes[i] == mode) + if (vfo == RIG_VFO_B) { - if (vfo == RIG_VFO_B) - { - cmd[6] = CACHE(rig)->modeMainA; - cmd[7] = i; - } - else - { - cmd[6] = i; - cmd[7] = CACHE(rig)->modeMainB; - } - - crc = CRC16Check(&cmd[4], 4); - cmd[8] = crc >> 8; - cmd[9] = crc & 0xff; - rig_flush(rp); - write_block(rp, cmd, 16); - read_block(rp, reply, 16); - dump_hex(reply, 16); - return RIG_OK; + cmd[6] = rmode2guohe(CACHE(rig)->modeMainA, pmr171_modes); + cmd[7] = i; + } + else + { + cmd[6] = i; + cmd[7] = rmode2guohe(CACHE(rig)->modeMainB, pmr171_modes); } + + crc = CRC16Check(&cmd[4], 4); + cmd[8] = crc >> 8; + cmd[9] = crc & 0xff; + rig_flush(rp); + write_block(rp, cmd, 10); + read_block(rp, reply, 5); + read_block(rp, &reply[5], reply[4]); + dump_hex(reply, reply[4] + 5); + /* + // Grab the modes + CACHE(rig)->modeMainA = guohe2rmode(reply[6], pmr171_modes); + CACHE(rig)->modeMainB = guohe2rmode(reply[7], pmr171_modes); + */ + return RIG_OK; } rig_debug(RIG_DEBUG_ERR, "%s: invalid mode=%s\n", __func__, rig_strrmode(mode)); @@ -863,13 +954,15 @@ hamlib_port_t *rp = RIGPORT(rig); rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + // According to the manual, sending 0 means PTT ON. + // TODO: How to process ack messages? switch (ptt) { case RIG_PTT_ON: - return pmr171_send_cmd2(rig, 0x07, 0x01, 1); + return pmr171_send_cmd2(rig, 0x07, 0x00, 1); case RIG_PTT_OFF: - return pmr171_send_cmd2(rig, 0x07, 0x00, 0); + return pmr171_send_cmd2(rig, 0x07, 0x01, 1); default: return -RIG_EINVAL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/src/hamlibdatetime.h new/hamlib-4.6.2/src/hamlibdatetime.h --- old/hamlib-4.6.1/src/hamlibdatetime.h 2025-01-22 03:02:06.000000000 +0100 +++ new/hamlib-4.6.2/src/hamlibdatetime.h 2025-02-09 22:22:41.000000000 +0100 @@ -1,2 +1,2 @@ /* This date time is from the last non-merge commit to Hamlib. */ -#define HAMLIBDATETIME "2025-01-21T09:43:13Z SHA=cb77f3" +#define HAMLIBDATETIME "2025-02-09T21:03:50Z SHA=870364" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/src/rig.c new/hamlib-4.6.2/src/rig.c --- old/hamlib-4.6.1/src/rig.c 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/src/rig.c 2025-02-09 22:22:13.000000000 +0100 @@ -169,6 +169,8 @@ #define CHECK_RIG_ARG(r) (!(r) || !(r)->caps || !STATE((r))->comm_state) #define CHECK_RIG_CAPS(r) (!(r) || !(r)->caps) +#define ICOM_EXCEPTIONS (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100 || rig->caps->rig_model == RIG_MODEL_IC910) + // The LOCK macro is for the primary thread calling the rig functions // For a separate thread use rig_lock directly // The purpose here is to avoid deadlock during recursion @@ -1547,7 +1549,7 @@ { vfo_t myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } retval = rig_get_freq(rig, myvfo, &freq); @@ -1557,7 +1559,7 @@ vfo_t tx_vfo = RIG_VFO_NONE; myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_B; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_B; } rig_get_freq(rig, myvfo, &freq); rig_get_split_vfo(rig, RIG_VFO_RX, &split, &tx_vfo); @@ -1570,7 +1572,8 @@ { myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } + rig_get_mode(rig, myvfo, &mode, &width); @@ -1578,7 +1581,7 @@ { myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } rig_debug(RIG_DEBUG_VERBOSE, "xxxsplit=%d\n", split); HAMLIB_TRACE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hamlib-4.6.1/src/serial.c new/hamlib-4.6.2/src/serial.c --- old/hamlib-4.6.1/src/serial.c 2025-01-22 03:01:39.000000000 +0100 +++ new/hamlib-4.6.2/src/serial.c 2025-02-09 22:22:13.000000000 +0100 @@ -242,7 +242,7 @@ return -RIG_EIO; case SER_AVAILABLE: - rig_debug(RIG_DEBUG_ERR, "%s: serial port %s is OK\n", __func__, rp->pathname); + rig_debug(RIG_DEBUG_VERBOSE, "%s: serial port %s is OK\n", __func__, rp->pathname); break; }