[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. e0a3f8deac300a080de1b
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2021-04-24 04:41:41
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via e0a3f8deac300a080de1bc5bff83b0a65a9949f8 (commit) from 21b9aadb91db8c2c4574812ba442c830664b58a0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e0a3f8deac300a080de1bc5bff83b0a65a9949f8 Author: Mike Black W9MDB <mdb...@ya...> Date: Fri Apr 23 23:40:40 2021 -0500 Fix rigctld caps ptt_type to reflect the connected rig https://github.com/Hamlib/Hamlib/issues/659 diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index 79be2533..bac1c202 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -589,10 +589,16 @@ static int netrigctl_open(RIG *rig) * if there is any PTT capability and we have not * locally overridden it */ - rig->state.pttport.type.ptt = temp; + rig->state.pttport.type.ptt = RIG_PTT_RIG_MICDATA; + rig->caps->ptt_type = RIG_PTT_RIG_MICDATA; rig_debug(RIG_DEBUG_TRACE, "%s: %s set to %d\n", __func__, setting, rig->state.pttport.type.ptt); } + else + { + rig->state.pttport.type.ptt = temp; + rig->caps->ptt_type = temp; + } } else if (strcmp(setting, "targetable_vfo") == 0) { diff --git a/tests/simicom.c b/tests/simicom.c index c57dbafd..87fcc76d 100644 --- a/tests/simicom.c +++ b/tests/simicom.c @@ -16,15 +16,16 @@ #define BUFSIZE 256 int civ_731_mode = 0; -vfo_t vfo_curr = RIG_VFO_A; +vfo_t current_vfo = RIG_VFO_A; int split = 0; +// we make B different from A to ensure we see a difference at startup float freqA = 14074000; float freqB = 14074500; mode_t modeA = RIG_MODE_CW; -mode_t modeB = RIG_MODE_CW; -pbwidth_t widthA = 200; -pbwidth_t widthB = 300; +mode_t modeB = RIG_MODE_USB; +pbwidth_t widthA = 0; +pbwidth_t widthB = 1; void dumphex(unsigned char *buf, int n) { @@ -75,7 +76,7 @@ void frameParse(int fd, unsigned char *frame, int len) case 0x03: //from_bcd(frameackbuf[2], (civ_731_mode ? 4 : 5) * 2); - if (vfo_curr == RIG_VFO_A || vfo_curr == RIG_VFO_MAIN) + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { printf("get_freqA\n"); to_bcd(&frame[5], (long long)freqA, (civ_731_mode ? 4 : 5) * 2); @@ -91,7 +92,7 @@ void frameParse(int fd, unsigned char *frame, int len) break; case 0x04: - if (vfo_curr == RIG_VFO_A || vfo_curr == RIG_VFO_MAIN) + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { printf("get_modeA\n"); frame[5] = modeA; @@ -112,7 +113,7 @@ void frameParse(int fd, unsigned char *frame, int len) freq = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); printf("set_freq to %.0f\n", freq); - if (vfo_curr == RIG_VFO_A || vfo_curr == RIG_VFO_MAIN) { freqA = freq; } + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { freqA = freq; } else { freqB = freq; } // case 0x06: @@ -122,16 +123,16 @@ void frameParse(int fd, unsigned char *frame, int len) switch (frame[5]) { - case 0x00: vfo_curr = RIG_VFO_A; break; + case 0x00: current_vfo = RIG_VFO_A; break; - case 0x01: vfo_curr = RIG_VFO_B; break; + case 0x01: current_vfo = RIG_VFO_B; break; - case 0xd0: vfo_curr = RIG_VFO_MAIN; break; + case 0xd0: current_vfo = RIG_VFO_MAIN; break; - case 0xd1: vfo_curr = RIG_VFO_SUB; break; + case 0xd1: current_vfo = RIG_VFO_SUB; break; } - printf("set_vfo to %s\n", rig_strvfo(vfo_curr)); + printf("set_vfo to %s\n", rig_strvfo(current_vfo)); frame[4] = 0xfb; frame[5] = 0xfd; @@ -148,6 +149,21 @@ void frameParse(int fd, unsigned char *frame, int len) write(fd, frame, 6); break; + case 0x1a: // miscellaneous things + switch (frame[5]) + { + case 0x03: // width + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { frame[6] = widthA; } + else { frame[6] = widthB; } + + frame[7] = 0xfd; + write(fd, frame, 8); + break; + } + + break; + +#if 0 case 0x25: if (frame[6] == 0xfd) { @@ -178,6 +194,7 @@ void frameParse(int fd, unsigned char *frame, int len) } break; +#endif default: printf("cmd 0x%02x unknown\n", frame[4]); } @@ -226,9 +243,13 @@ int openPort(char *comport) // doesn't matter for using pts devices void rigStatus() { - printf("VFOA: mode=%s width=%ld freq=%.0f\n", rig_strrmode(modeA), widthA, + char vfoa = current_vfo == RIG_VFO_A ? '*' : ' '; + char vfob = current_vfo == RIG_VFO_B ? '*' : ' '; + printf("%cVFOA: mode=%s width=%ld freq=%.0f\n", vfoa, rig_strrmode(modeA), + widthA, freqA); - printf("VFOB: mode=%s width=%ld freq=%.0f\n", rig_strrmode(modeB), widthB, + printf("%cVFOB: mode=%s width=%ld freq=%.0f\n", vfob, rig_strrmode(modeB), + widthB, freqB); } ----------------------------------------------------------------------- Summary of changes: rigs/dummy/netrigctl.c | 8 +++++++- tests/simicom.c | 49 +++++++++++++++++++++++++++++++++++-------------- 2 files changed, 42 insertions(+), 15 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |