Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hamlib for openSUSE:Factory checked in at 2023-01-02 15:01:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hamlib (Old) and /work/SRC/openSUSE:Factory/.hamlib.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hamlib" Mon Jan 2 15:01:53 2023 rev:15 rq:1046007 version:4.5.3 Changes: -------- --- /work/SRC/openSUSE:Factory/hamlib/hamlib.changes 2022-12-27 11:55:14.175372757 +0100 +++ /work/SRC/openSUSE:Factory/.hamlib.new.1563/hamlib.changes 2023-01-02 15:01:57.193278402 +0100 @@ -1,0 +2,10 @@ +Sun Jan 1 14:58:19 UTC 2023 - Wojciech Kazubski <[email protected]> + +- Update to version 4.5.3 (2022-12-31) + * Fix serial.c for hardware flow control on Linux and MacOSy + * Add QRPLabs QCX/QDX rig -- not quite a TS480 + * Fix QRP QRDX firmware bugs in IF message so PTT works now + * FTDX5000 will now remember startup front/read settings and restore it + * Fix FTDX5000 write_delay with microham + +------------------------------------------------------------------- Old: ---- Hamlib-4.5.2.tar.gz New: ---- Hamlib-4.5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hamlib.spec ++++++ --- /var/tmp/diff_new_pack.7AVcge/_old 2023-01-02 15:01:57.853282112 +0100 +++ /var/tmp/diff_new_pack.7AVcge/_new 2023-01-02 15:01:57.857282134 +0100 @@ -18,7 +18,7 @@ %define sover 4 Name: hamlib -Version: 4.5.2 +Version: 4.5.3 Release: 0 Summary: Run-time library to control radio transcievers and receivers License: LGPL-2.1-only ++++++ Hamlib-4.5.2.tar.gz -> Hamlib-4.5.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/NEWS new/Hamlib-4.5.3/NEWS --- old/Hamlib-4.5.2/NEWS 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/NEWS 2022-12-31 21:46:26.000000000 +0100 @@ -22,6 +22,15 @@ * Add FLIR PTU-D48, E46, D100, D300 rotors * Fix FTDX3000 rig split +Version 4.5.3 + * 2022-12-31 + * Fix serial.c for hardware flow control on Linux and MacOSy + * Add QRPLabs QCX/QDX rig -- not quite a TS480 + * Fix QRP QRDX firmware bugs in IF message so PTT works now + * FTDX5000 will now remember startup front/read settings and restore it + * Fix FTDX5000 write_delay with microham + * Fix grep error on MingW build + Version 4.5.2 * 2022-12-23 * Fix PowerSDR ability to do commands while powered off diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/configure.ac new/Hamlib-4.5.3/configure.ac --- old/Hamlib-4.5.2/configure.ac 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/configure.ac 2022-12-31 21:46:26.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.5.2],[[email protected]],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.5.3],[[email protected]],[hamlib],[http://www.hamlib.org]) AC_CONFIG_SRCDIR([include/hamlib/rig.h]) AC_CONFIG_MACRO_DIR([macros]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/include/hamlib/riglist.h new/Hamlib-4.5.3/include/hamlib/riglist.h --- old/Hamlib-4.5.2/include/hamlib/riglist.h 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/include/hamlib/riglist.h 2022-12-31 21:46:26.000000000 +0100 @@ -185,6 +185,7 @@ #define RIG_MODEL_MALACHITE RIG_MAKE_MODEL(RIG_KENWOOD, 49) #define RIG_MODEL_LAB599_TX500 RIG_MAKE_MODEL(RIG_KENWOOD,50) #define RIG_MODEL_SDRUNO RIG_MAKE_MODEL(RIG_KENWOOD,51) +#define RIG_MODEL_QRPLABS RIG_MAKE_MODEL(RIG_KENWOOD,52) /* * Icom diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/kenwood/ic10.c new/Hamlib-4.5.3/rigs/kenwood/ic10.c --- old/Hamlib-4.5.2/rigs/kenwood/ic10.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/kenwood/ic10.c 2022-12-31 21:46:26.000000000 +0100 @@ -532,7 +532,7 @@ { struct kenwood_priv_caps *priv = (struct kenwood_priv_caps *)rig->caps->priv; char infobuf[50]; - int retval, iflen; + int retval, iflen, offset; retval = get_ic10_if(rig, infobuf); @@ -546,8 +546,15 @@ /* IFggmmmkkkhhh snnnzrx yytdfcp */ /* IFggmmmkkkhhhxxxxxrrrrrssxcctmfcp */ + /* IFggmmmkkkhhhxxxxxrrrrrssxcctmfcp#### what should be if p13/p14/p15 included */ + /* IF00014074000 +00000000003000000 ; QRP QDX bad IF command -- 36 bytes instead of 33 */ + /* QRP QDX should be 37 bytes but used only 1 byte for p14 instead of 2 bytes */ + /* 12345678901234567890123456789012345678 */ + offset = 5; + if (iflen == 36) offset = 8; // QRP QDX gets completely bogus length + else if (iflen == 37) offset = 9; // just incase somebody does this add p13/p14x2/p15 - *ptt = infobuf[iflen - 5] == '0' ? RIG_PTT_OFF : RIG_PTT_ON; + *ptt = infobuf[iflen - offset] == '0' ? RIG_PTT_OFF : RIG_PTT_ON; return RIG_OK; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/kenwood/kenwood.c new/Hamlib-4.5.3/rigs/kenwood/kenwood.c --- old/Hamlib-4.5.2/rigs/kenwood/kenwood.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/kenwood/kenwood.c 2022-12-31 21:46:26.000000000 +0100 @@ -5774,6 +5774,7 @@ rig_register(&malachite_caps); rig_register(&tx500_caps); rig_register(&sdruno_caps); + rig_register(&qrplabs_caps); return (RIG_OK); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/kenwood/kenwood.h new/Hamlib-4.5.3/rigs/kenwood/kenwood.h --- old/Hamlib-4.5.2/rigs/kenwood/kenwood.h 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/kenwood/kenwood.h 2022-12-31 21:46:26.000000000 +0100 @@ -29,7 +29,7 @@ #include "misc.h" #include "idx_builtin.h" -#define BACKEND_VER "20221128" +#define BACKEND_VER "20221230" #define EOM_KEN ';' #define EOM_TH '\r' @@ -110,6 +110,7 @@ #define RIG_IS_PT8000A (rig->caps->rig_model == RIG_MODEL_PT8000A) #define RIG_IS_POWERSDR (rig->caps->rig_model == RIG_MODEL_POWERSDR) #define RIG_IS_MALACHITE (rig->caps->rig_model == RIG_MODEL_MALACHITE) +#define RIG_IS_QRPLABS (rig->caps->rig_model == RIG_MODEL_QRPLABS) struct kenwood_filter_width { @@ -311,6 +312,7 @@ extern const struct rig_caps malachite_caps; extern const struct rig_caps tx500_caps; extern const struct rig_caps sdruno_caps; +extern const struct rig_caps qrplabs_caps; /* use when not interested in the answer, but want to check its len */ static int inline kenwood_simple_transaction(RIG *rig, const char *cmd, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/kenwood/ts480.c new/Hamlib-4.5.3/rigs/kenwood/ts480.c --- old/Hamlib-4.5.2/rigs/kenwood/ts480.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/kenwood/ts480.c 2022-12-31 21:46:26.000000000 +0100 @@ -1449,6 +1449,198 @@ }; /* + * QRPLabs TS-480 emulation rig capabilities + * Notice that some rigs share the same functions. + */ +const struct rig_caps qrplabs_caps = +{ + RIG_MODEL(RIG_MODEL_QRPLABS), + .model_name = "QCX/QDX", + .mfg_name = "QRPLabs", + .version = BACKEND_VER ".0", + .copyright = "LGPL", + .status = RIG_STATUS_STABLE, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 4800, + .serial_rate_max = 115200, + .serial_data_bits = 8, + .serial_stop_bits = 1, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = 0, + .post_write_delay = 0, + .timeout = 500, + .retry = 3, + .preamp = {12, RIG_DBLST_END,}, + .attenuator = {12, RIG_DBLST_END,}, + .max_rit = kHz(9.99), + .max_xit = kHz(9.99), + .max_ifshift = Hz(0), + .targetable_vfo = RIG_TARGETABLE_FREQ, + .transceive = RIG_TRN_RIG, + .agc_level_count = 3, + .agc_levels = { RIG_AGC_OFF, RIG_AGC_FAST, RIG_AGC_SLOW }, + + .rx_range_list1 = { + {kHz(100), Hz(59999999), TS480_ALL_MODES, -1, -1, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Receive frequency range list for ITU region 1 */ + .tx_range_list1 = { + {kHz(1810), kHz(1850), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, /* 100W class */ + {kHz(1810), kHz(1850), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, /* 25W class */ + {kHz(3500), kHz(3800), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(3500), kHz(3800), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(7), kHz(7200), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(7), kHz(7200), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Transmit frequency range list for ITU region 1 */ + .rx_range_list2 = { + {kHz(100), Hz(59999999), TS480_ALL_MODES, -1, -1, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Receive frequency range list for ITU region 2 */ + .tx_range_list2 = { + {kHz(1800), MHz(2) - 1, TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, /* 100W class */ + {kHz(1800), MHz(2) - 1, TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, /* 25W class */ + {kHz(3500), MHz(4) - 1, TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(3500), MHz(4) - 1, TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(5250), kHz(5450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(5250), kHz(5450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(7), kHz(7300), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(7), kHz(7300), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Transmit frequency range list for ITU region 2 */ + .tuning_steps = { + {TS480_ALL_MODES, kHz(1)}, + {TS480_ALL_MODES, Hz(2500)}, + {TS480_ALL_MODES, kHz(5)}, + {TS480_ALL_MODES, Hz(6250)}, + {TS480_ALL_MODES, kHz(10)}, + {TS480_ALL_MODES, Hz(12500)}, + {TS480_ALL_MODES, kHz(15)}, + {TS480_ALL_MODES, kHz(20)}, + {TS480_ALL_MODES, kHz(25)}, + {TS480_ALL_MODES, kHz(30)}, + {TS480_ALL_MODES, kHz(100)}, + {TS480_ALL_MODES, kHz(500)}, + {TS480_ALL_MODES, MHz(1)}, + {TS480_ALL_MODES, 0}, /* any tuning step */ + RIG_TS_END, + }, + /* mode/filter list, remember: order matters! */ + .filters = { + {RIG_MODE_SSB, kHz(2.4)}, + {RIG_MODE_SSB, Hz(270)}, + {RIG_MODE_SSB, Hz(500)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(200)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(50)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(1000)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(80)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(100)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(150)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(300)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(400)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(500)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(600)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(2000)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(500)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(250)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1000)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1500)}, + {RIG_MODE_AM, kHz(6)}, + {RIG_MODE_AM, kHz(2.4)}, + {RIG_MODE_FM, kHz(12)}, + RIG_FLT_END, + }, + .vfo_ops = TS480_VFO_OPS, + .level_gran = + { +#include "level_gran_kenwood.h" + [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, + [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, + [LVL_KEYSPD] = {.min = {.i = 10}, .max = {.i = 60}, .step = {.i = 1}}, + [LVL_CWPITCH] = {.min = {.i = 400}, .max = {.i = 1000}, .step = {.i = 50}}, + [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, + [LVL_SLOPE_LOW] = {.min = {.i = 0}, .max = {.i = 2400}, .step = {.i = 10}}, + [LVL_SLOPE_HIGH] = {.min = {.i = 0}, .max = {.i = 5000}, .step = {.i = 10}}, + }, + .str_cal = TS480_STR_CAL, + .swr_cal = TS480_SWR_CAL, + + .ext_tokens = ts480_ext_tokens, + .extfuncs = ts480_ext_funcs, + .extlevels = ts480_ext_levels, + + .priv = (void *)& ts480_priv_caps, + .rig_init = ts480_init, + .rig_open = kenwood_open, + .rig_cleanup = kenwood_cleanup, + .set_freq = kenwood_set_freq, + .get_freq = kenwood_get_freq, + .set_rit = ts480_set_rit, + .get_rit = ts480_get_rit, + .set_xit = ts480_set_rit, + .get_xit = ts480_get_rit, + .set_mode = kenwood_set_mode, + .get_mode = kenwood_get_mode, + .set_vfo = kenwood_set_vfo, + .get_vfo = kenwood_get_vfo_if, + .set_split_vfo = kenwood_set_split_vfo, + .get_split_vfo = kenwood_get_split_vfo_if, + .get_ptt = kenwood_get_ptt, + .set_ptt = kenwood_set_ptt, + .get_dcd = kenwood_get_dcd, + .get_info = kenwood_ts480_get_info, + .reset = kenwood_reset, + .has_set_level = TS480_LEVEL_SET, + .has_get_level = TS480_LEVEL_GET, + .set_level = kenwood_ts480_set_level, + .get_level = kenwood_ts480_get_level, + .set_ext_level = ts480_set_ext_level, + .get_ext_level = ts480_get_ext_level, + .has_get_func = TS480_FUNC_ALL, + .has_set_func = TS480_FUNC_ALL, + .set_func = ts480_set_func, + .get_func = ts480_get_func, + .set_ext_func = ts480_set_ext_func, + .get_ext_func = ts480_get_ext_func, + .send_morse = kenwood_send_morse, + .wait_morse = rig_wait_morse, + .vfo_op = kenwood_vfo_op, + .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS +}; + +/* * Hilberling PS8000A TS480 emulation * Notice that some rigs share the same functions. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/yaesu/ft5000.c new/Hamlib-4.5.3/rigs/yaesu/ft5000.c --- old/Hamlib-4.5.2/rigs/yaesu/ft5000.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/yaesu/ft5000.c 2022-12-31 21:46:26.000000000 +0100 @@ -51,7 +51,7 @@ { .index = 8, .set_value = 0, .get_value = '6', .width = 3000, .optional = 0 }, { .index = 9, .set_value = 0, .get_value = '9', .width = 600, .optional = 0 }, { .index = 10, .set_value = 0, .get_value = 'A', .width = 300, .optional = 0 }, - } + }, }; const struct confparams ftdx5000_ext_levels[] = @@ -140,7 +140,7 @@ RIG_MODEL(RIG_MODEL_FTDX5000), .model_name = "FTDX-5000", .mfg_name = "Yaesu", - .version = NEWCAT_VER ".7", + .version = NEWCAT_VER ".9", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/yaesu/ft5000.h new/Hamlib-4.5.3/rigs/yaesu/ft5000.h --- old/Hamlib-4.5.2/rigs/yaesu/ft5000.h 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/yaesu/ft5000.h 2022-12-31 21:46:26.000000000 +0100 @@ -141,7 +141,7 @@ /* Delay between bytes sent to FT-5000 * Should not exceed value set in CAT TOT menu (rig default is 10 mSec) */ -#define FTDX5000_WRITE_DELAY 1 +#define FTDX5000_WRITE_DELAY 0 /* Delay sequential fast writes */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/yaesu/newcat.c new/Hamlib-4.5.3/rigs/yaesu/newcat.c --- old/Hamlib-4.5.2/rigs/yaesu/newcat.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/yaesu/newcat.c 2022-12-31 21:46:26.000000000 +0100 @@ -545,6 +545,7 @@ struct newcat_priv_data *priv = rig->state.priv; struct rig_state *rig_s = &rig->state; const char *handshake[3] = {"None", "Xon/Xoff", "Hardware"}; + int err; ENTERFUNC; @@ -600,7 +601,6 @@ || priv->rig_id == NC_RIGID_FTDX3000 || priv->rig_id == NC_RIGID_FTDX3000DM) { - int err; char *cmd = "EX0291;EX029;"; // FT2000/D if (priv->rig_id == NC_RIGID_FT950 || rig->caps->rig_model == RIG_MODEL_FT950) { cmd = "EX0271;EX027;"; } @@ -631,6 +631,21 @@ rig_debug(RIG_DEBUG_VERBOSE, "%s: disabling FTDX3000 band select\n", __func__); } + if (is_ftdx5000) + { + // Remember EX103 status + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX103;"); + rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); + err = newcat_get_cmd(rig); + + if (RIG_OK != (err = newcat_get_cmd(rig))) + { + RETURNFUNC(err); + } + + if (priv->ret_data[6] == ';') { priv->front_rear_status = priv->ret_data[5]; } + } + RETURNFUNC(RIG_OK); } @@ -664,8 +679,9 @@ if (is_ftdx5000) { - // Ensure FT5000 is back to MIC input - SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX1030;"); + // Restore EX103 status + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX103%c;", + priv->front_rear_status); rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); newcat_set_cmd(rig); // don't care about the return } @@ -1741,7 +1757,7 @@ int newcat_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) { struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv; - int err; + int err = -RIG_EPROTO; char txon[] = "TX1;"; char txoff[] = "TX0;"; @@ -1756,24 +1772,45 @@ switch (ptt) { - // the FTDX5000 uses menu 103 for front/rear audio in USB mode case RIG_PTT_ON_MIC: - SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX1030;"); + + /* Build the command string */ + // the FTDX5000 uses menu 103 for front/rear audio in USB mode + if (is_ftdx5000) + { + // Ensure FT5000 is back to MIC input + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX1030;"); + rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); + newcat_set_cmd(rig); // don't care about the return + } + + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", txon); rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); err = newcat_set_cmd(rig); break; case RIG_PTT_ON_DATA: - SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX1031;"); + + /* Build the command string */ + // the FTDX5000 uses menu 103 for front/rear audio in USB mode + if (is_ftdx5000) + { + // Ensure FT5000 is back to MIC input + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX1031;"); + rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); + newcat_set_cmd(rig); // don't care about the return + } + + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", txon); rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); err = newcat_set_cmd(rig); break; case RIG_PTT_ON: - /* Build the command string */ SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", txon); rig_debug(RIG_DEBUG_TRACE, "%s: cmd_str = %s\n", __func__, priv->cmd_str); err = newcat_set_cmd(rig); + break; case RIG_PTT_OFF: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/rigs/yaesu/newcat.h new/Hamlib-4.5.3/rigs/yaesu/newcat.h --- old/Hamlib-4.5.2/rigs/yaesu/newcat.h 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/rigs/yaesu/newcat.h 2022-12-31 21:46:26.000000000 +0100 @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20221223" +#define NEWCAT_VER "20221228" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 @@ -128,6 +128,7 @@ char last_if_response[NEWCAT_DATA_LEN]; int poweron; /* to prevent powering on more than once */ int question_mark_response_means_rejected; /* the question mark response has multiple meanings */ + char front_rear_status; /* e.g. FTDX5000 EX103 status */ }; /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/simulators/simftdx5000.c new/Hamlib-4.5.3/simulators/simftdx5000.c --- old/Hamlib-4.5.2/simulators/simftdx5000.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/simulators/simftdx5000.c 2022-12-31 21:46:26.000000000 +0100 @@ -22,6 +22,7 @@ int sh = 25; int na = 0; int ex039 = 0; +int ex103 = 0; // ID 0310 == 310, Must drop leading zero typedef enum nc_rigid_e @@ -316,6 +317,20 @@ { sscanf(buf, "EX039%d", &ex039); } + else if (strcmp(buf, "EX103;") == 0) + { + SNPRINTF(buf, sizeof(buf), "EX103%d;", ex103); + n = write(fd, buf, strlen(buf)); + } + else if (strncmp(buf, "EX103", 3) == 0) + { + sscanf(buf, "EX103%d", &ex103); + } + else if (strcmp(buf, "PS;") == 0) + { + SNPRINTF(buf, sizeof(buf), "PS1;"); + n = write(fd, buf, strlen(buf)); + } else if (strlen(buf) > 0) { fprintf(stderr, "Unknown command: %s\n", buf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/src/Makefile.am new/Hamlib-4.5.3/src/Makefile.am --- old/Hamlib-4.5.2/src/Makefile.am 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/src/Makefile.am 2022-12-31 21:46:26.000000000 +0100 @@ -30,9 +30,10 @@ # directory before the source directory for the hamlibdatetime.h # header. hamlibdatetime.h: FORCE + echo "#define HAMLIBDATETIME "\"$$(TZ=UTC git --git-dir=$(top_srcdir)/.git log --no-merges --date='format-local:%b %d %H:%M:%SZ %Y SHA=' --format='%cd' -n 1)$$(git --git-dir=$(top_srcdir)/.git log --no-merges -n 1 | cut -c8-13)\" @if test -x $(top_srcdir)/.git ; then \ echo "/* This date time is from the last non-merge commit to Hamlib. */" > $(builddir)/$(@F).tmp ;\ - echo "#define HAMLIBDATETIME "\"$$(TZ=UTC git --git-dir=$(top_srcdir)/.git log --no-merges --date='format-local:%a %b %d %H:%M:%S %Y %z SHA=' --format='%cd' -n 1)$$(git --git-dir=$(top_srcdir)/.git log --no-merges | grep commit | head -n 1 | cut -c8-13)\" >> $(builddir)/$(@F).tmp ;\ + echo "#define HAMLIBDATETIME "\"$$(TZ=UTC git --git-dir=$(top_srcdir)/.git log --no-merges --date='format-local:%b %d %H:%M:%SZ %Y SHA=' --format='%cd' -n 1)$$(git --git-dir=$(top_srcdir)/.git log --no-merges -n 1 | head -n 1 | cut -c8-13)\" >> $(builddir)/$(@F).tmp ;\ diff -qN $(builddir)/$(@F).tmp $(builddir)/$(@F) ; test $$? -eq 0 || { echo "Generating SCS header \"$(builddir)/$(@F)\"" ; mv -f $(builddir)/$(@F).tmp $(builddir)/$(@F) ; } ;\ rm -f $(builddir)/$(@F).tmp ;\ else \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Hamlib-4.5.2/src/serial.c new/Hamlib-4.5.3/src/serial.c --- old/Hamlib-4.5.2/src/serial.c 2022-12-24 00:04:12.000000000 +0100 +++ new/Hamlib-4.5.3/src/serial.c 2022-12-31 21:46:26.000000000 +0100 @@ -290,8 +290,10 @@ fd = rp->fd; // Linux sets pins high so we force them low once - ser_set_rts(rp, 0); - ser_set_dtr(rp, 0); + // This fails on Linux and MacOS with hardware flow control + // Seems setting low disables hardware flow setting later +// ser_set_rts(rp, 0); +// ser_set_dtr(rp, 0); /* * Get the current options for the port...
