pull/1650/head
Mike Black W9MDB 2024-11-24 22:30:38 -06:00
commit fbdb665620
40 zmienionych plików z 61 dodań i 65 usunięć

6
PLAN
Wyświetl plik

@ -1,7 +1,7 @@
Here is a non-exhaustive list of things IMO to keep in mind while
developping the Hamlib library.
developing the Hamlib library.
Plan:
@ -39,7 +39,7 @@ Applications:
o control your rig from your computer, can be handy if you've relocated
your UHF transceiver in the attic, to reduce cable loss.
o edit/backup/restore/extend the memory capacity of your rig
o software scanning (and huristics)
o software scanning (and heuristics)
o s/w squelch
o real time spectral analysis and digital modes ( Frank has written some
working code for this) it does 40 frames / sec and no load,
@ -66,7 +66,7 @@ I think some features can be coded using bit fields and masking.
Maybe we can distinguish between 3 states :
- Don't have this feature,
- Have it,
- Have it and can control (r/w) it remotly using the backend in hamlib
- Have it and can control (r/w) it remotely using the backend in hamlib
o freq ranges supported: rx/mode, tx/modes/power
o number of VFO, operations (set VFO separately, VFO A=B, switch, ..)

Wyświetl plik

@ -1,4 +1,4 @@
This document superceeds any other prior documentation or commentary regarding
This document supersedes any other prior documentation or commentary regarding
the formatting of the Hamlib C and C++ source code. This document does not
apply to the Autotools build system, i.e. configure.ac, Makefile.am or the
Autoconf macros in the 'macros/' directory.
@ -110,7 +110,7 @@ The old file will be copied to 'moonmelter.c.orig' as a back up.
* One space between a conditional key word and its opening parentheses.
* No space between a function name and its opening paretheses.
* No space between a function name and its opening parentheses.
* No space between a pointer operator ('*') and the pointer name. Likewise
for the address operator ('&'). Exception: In a function prototype and

Wyświetl plik

@ -483,7 +483,7 @@ If
.B Readline
library development files are found at configure time,
.B ampctl
will be conditonally built with Readline support for command and argument entry.
will be conditionally built with Readline support for command and argument entry.
Readline command key bindings are at their defaults as described in the
.UR https://tiswww.cwru.edu/php/chet/readline/rluserman.html
Readline manual

Wyświetl plik

@ -1356,7 +1356,7 @@ Set
.IP
Set vfo option Status 1=on or 0=off
This is the same as using the -o switch for rigctl and ritctld.
This can be dyamically changed while running.
This can be dynamically changed while running.
.
.TP
.BR get_separator
@ -1371,9 +1371,8 @@ Set
.RI \(aq SeparatorChar \(aq
.IP
Change rigctld response to use a special char instead of newline (recommend #).
This can be dyamically changed while running.
Handy for node-red's tcprequest node.
This can be dyamically changed while running.
This can be dynamically changed while running.
.
.TP
.BR pause " \(aq" \fISeconds\fP \(aq
@ -1451,7 +1450,7 @@ If
.B Readline
library development files are found at configure time,
.B rigctl
will be conditonally built with Readline support for command and argument entry.
will be conditionally built with Readline support for command and argument entry.
Readline command key bindings are at their defaults as described in the
.UR https://tiswww.cwru.edu/php/chet/readline/rluserman.html
Readline manual

Wyświetl plik

@ -1193,7 +1193,7 @@ Set
.IP
Set vfo option Status 1=on or 0=off
This is the same as using the -o switch for rigctl and ritctld.
This can be dyamically changed while running.
This can be dynamically changed while running.
.
.TP
.BR set_lock_mode " \(aq" \fILocked\fP \(aq

Wyświetl plik

@ -29,7 +29,7 @@ rigctlsync \- synchronize a rig to SDR# (or other rig)
.YS
.
.SH DESCRIPTION
Allows you to synchronize frequence from a rig to SDR#.
Allows you to synchronize frequency from a rig to SDR#.
Best when used with rigctld, FlRig, or a multiport radio.
.
.PP

Wyświetl plik

@ -658,7 +658,7 @@ If
.B Readline
library development files are found at configure time,
.B rotctl
will be conditonally built with Readline support for command and argument entry.
will be conditionally built with Readline support for command and argument entry.
Readline command key bindings are at their defaults as described in the
.UR https://tiswww.cwru.edu/php/chet/readline/rluserman.html
Readline manual

Wyświetl plik

@ -95,7 +95,7 @@ SourceForge.net Hamlib files
.UE
Web page.
.
RCs are identifed by having a
RCs are identified by having a
.I ~rcX
suffix where the
.I X
@ -641,7 +641,7 @@ are generated.
In the top-level directory is the
.B bootstrap
script from which the build system is
.IR bootsrapped\(emthe
.IR bootstrapped\(emthe
process of generating the Hamlib build system from
.I configure.ac
and the various

Wyświetl plik

@ -2901,7 +2901,7 @@ struct rig_state {
*/
struct rig_state_deprecated {
/********* ENSURE YOU DO NOT EVER MODIFY THIS STRUCTURE *********/
/********* It will remain forever to provide DLL backwards compatiblity ******/
/********* It will remain forever to provide DLL backwards compatibility ******/
/*
* overridable fields
*/
@ -3061,7 +3061,7 @@ typedef int (*spectrum_cb_t)(RIG *,
* \sa rig_set_freq_callback(), rig_set_mode_callback(), rig_set_vfo_callback(),
* rig_set_ptt_callback(), rig_set_dcd_callback()
*/
// Do NOT add/remove from this structure -- it will break DLL backwards compatiblity
// Do NOT add/remove from this structure -- it will break DLL backwards compatibility
struct rig_callbacks {
freq_cb_t freq_event; /*!< Frequency change event */
rig_ptr_t freq_arg; /*!< Frequency change argument */

Wyświetl plik

@ -1013,7 +1013,7 @@ static int dummy_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
|| priv->tx_vfo == RIG_VFO_CURR)
{
rig_debug(RIG_DEBUG_WARN,
"%s: split not enabled, but set_split_freq() called? ignorning\n", __func__);
"%s: split not enabled, but set_split_freq() called? ignoring\n", __func__);
RETURNFUNC(RIG_OK);
}
@ -1037,7 +1037,7 @@ static int dummy_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
|| priv->tx_vfo == RIG_VFO_CURR)
{
rig_debug(RIG_DEBUG_WARN,
"%s: split not enabled, but get_split_freq() called? ignorning\n", __func__);
"%s: split not enabled, but get_split_freq() called? ignoring\n", __func__);
RETURNFUNC(RIG_OK);
}
@ -1062,7 +1062,7 @@ static int dummy_set_split_mode(RIG *rig, vfo_t vfo, rmode_t tx_mode,
|| priv->tx_vfo == RIG_VFO_CURR)
{
rig_debug(RIG_DEBUG_WARN,
"%s: split not enabled, but set_split_mode() called? ignorning\n", __func__);
"%s: split not enabled, but set_split_mode() called? ignoring\n", __func__);
RETURNFUNC(RIG_OK);
}
@ -1092,7 +1092,7 @@ static int dummy_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *tx_mode,
|| priv->tx_vfo == RIG_VFO_CURR)
{
rig_debug(RIG_DEBUG_WARN,
"%s: split not enabled, but get_split_mode() called? ignorning\n", __func__);
"%s: split not enabled, but get_split_mode() called? ignoring\n", __func__);
RETURNFUNC(RIG_OK);
}

Wyświetl plik

@ -258,7 +258,7 @@ int smartsdr_open(RIG *rig)
char cmd[64];
int loops = 20;
ENTERFUNC;
// Once we've connected and hit here we should have two messages queued from the intial connect
// Once we've connected and hit here we should have two messages queued from the initial connect
sprintf(cmd, "sub slice %d", priv->slicenum);
//sprintf(cmd, "sub slice all");

Wyświetl plik

@ -269,7 +269,7 @@ int icmarine_transaction(RIG *rig, const char *cmd, const char *param,
cmd_len += snprintf(cmdbuf + cmd_len, BUFSZ - cmd_len, ",%s", param);
}
/* NMEA checksum, betwwen '$' and '*' */
/* NMEA checksum, between '$' and '*' */
for (i = 1; i < cmd_len; i++)
{
csum = csum ^ (unsigned)cmdbuf[i];

Wyświetl plik

@ -291,7 +291,7 @@ again1:
RETURNFUNC(-RIG_EPROTO);
}
// first 2 bytes of everyting are 0xfe so we won't test those
// first 2 bytes of everything are 0xfe so we won't test those
// this allows some corruptin of the 0xfe bytes which has been seen in the wild
if (memcmp(&buf[2], &sendbuf[2], frm_len - 2) != 0)
{

Wyświetl plik

@ -106,7 +106,7 @@ struct rig_caps ic1275_caps =
},
.tuning_steps = {
{IC1275_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC1275_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -117,7 +117,7 @@ struct rig_caps ic271_caps =
},
.tuning_steps = {
{IC271_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC271_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -118,7 +118,7 @@ struct rig_caps ic275_caps =
},
.tuning_steps = {
{IC275_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC275_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */
@ -217,7 +217,7 @@ struct rig_caps ic375_caps =
},
.tuning_steps = {
{IC275_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC275_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -116,7 +116,7 @@ struct rig_caps ic471_caps =
},
.tuning_steps = {
{IC471_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC471_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -110,7 +110,7 @@ struct rig_caps ic475_caps =
},
.tuning_steps = {
{IC475_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC475_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */
@ -216,7 +216,7 @@ struct rig_caps ic575_caps =
},
.tuning_steps = {
{IC475_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC475_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -125,7 +125,7 @@ struct rig_caps ic970_caps =
},
.tuning_steps = {
{IC970_MODES, 10}, /* TBC: does this rig supports settin tuning step? */
{IC970_MODES, 10}, /* TBC: does this rig supports setting tuning step? */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */

Wyświetl plik

@ -1290,7 +1290,7 @@ retry_open:
}
#if 0 // do not do this here -- needs to be done when ranges are requested instead as this is very slow
icom_get_freq_range(rig); // try get to get rig range capability dyamically
icom_get_freq_range(rig); // try get to get rig range capability dynamically
#endif
rp->retry = retry_save;
@ -1318,7 +1318,7 @@ int icom_rig_close(RIG *rig)
int retval = abs(rig_set_powerstat(rig, 0));
// this is only a fatal error if powerstat is implemented
// if not iplemented than we're at an error here
// if not implemented than we're at an error here
if (retval != RIG_OK && retval != RIG_ENIMPL && retval != RIG_ENAVAIL)
{
rig_debug(RIG_DEBUG_WARN, "%s: unexpected retval here: %s\n",
@ -2627,7 +2627,7 @@ int icom_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
if (width > 3)
{
rig_debug(RIG_DEBUG_WARN,
"%s: IC7300 width set by 1,2,3 - adjustable widht not implemented yet\n",
"%s: IC7300 width set by 1,2,3 - adjustable width not implemented yet\n",
__func__);
}
}
@ -8194,7 +8194,7 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
continue;
}
// Use get_freq as all rigs should repond to this
// Use get_freq as all rigs should respond to this
retval = rig_get_freq(rig, RIG_VFO_CURR, &freq);
if (retval == RIG_OK)

Wyświetl plik

@ -35,7 +35,7 @@
#include <sys/time.h>
#endif
#define BACKEND_VER "20241111"
#define BACKEND_VER "20241121"
#define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31)
#define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51)

Wyświetl plik

@ -652,7 +652,7 @@ int elecraft_get_vfo_tq(RIG *rig, vfo_t *vfo)
if (sscanf(splitbuf, "TQ%1d", &tq) != 1)
{
rig_debug(RIG_DEBUG_ERR, "%s: unable to parse TQ or TQX reponse of '%s'\n",
rig_debug(RIG_DEBUG_ERR, "%s: unable to parse TQ or TQX response of '%s'\n",
__func__, splitbuf);
}

Wyświetl plik

@ -1331,6 +1331,9 @@ int powersdr_get_parm(RIG *rig, setting_t parm, value_t *val)
RETURNFUNC(RIG_OK);
}
#define NO_LVL_KEYSPD
#define NO_LVL_SLOPE_LOW
#define NO_LVL_SLOPE_HIGH
/*
* F6K rig capabilities.
@ -1360,13 +1363,7 @@ struct rig_caps f6k_caps =
.has_set_level = F6K_LEVEL_ALL,
.has_get_parm = RIG_PARM_NONE,
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
#define NO_LVL_KEYSPD
#define NO_LVL_SLOPE_LOW
#define NO_LVL_SLOPE_HIGH
.level_gran = {
#undef NO_LVL_KEYSPD
#undef NO_LVL_SLOPE_LOW
#undef NO_LVL_SLOPE_HIGH
[LVL_KEYSPD] = { .min = { .i = 5 }, .max = { .i = 60 }, .step = { .i = 1 } },
[LVL_SLOPE_LOW] = { .min = { .i = 10}, .max = { .i = 1000}, .step = { .i = 50} },
[LVL_SLOPE_HIGH] = { .min = { .i = 1000}, .max = { .i = 5000}, .step = { .i = 10} },

Wyświetl plik

@ -1,4 +1,4 @@
// Once included these values can be overidden in the back-end
// Once included these values can be overridden in the back-end
// Known variants are PREAMP, ATT, NB, CWPITCH, IF, NOTCHF, VOXDELAY, BKINDL, BKIN_DLYMS, RFPOWER_METER(255 or 100), RFPOWER_METER_WATTS(255 or 100)
// cppcheck-suppress *
/* raw data */

Wyświetl plik

@ -1118,7 +1118,7 @@ int tmd710_push_mu(RIG *rig, tmd710_mu *mu_struct)
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
// we re-use fo_struct->vfo for the channel#
// we reuse fo_struct->vfo for the channel#
snprintf(cmdbuf, sizeof(cmdbuf),
"MU %1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%02d,%1d,"
"%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,%1d,"

Wyświetl plik

@ -41,7 +41,7 @@ rig_init() "id;" ts2000_init()
If "SC1;", on either main or sub *both* must be
halted before most commands will function. These may
be restored after command is executed or not if the
command superceeds scan mode.
command supersedes scan mode.
"fr;"/"ft;" or "if;" If in memory mode, the rig won't always
act appropriately to serial port requests.
"qr;" if quick memory set, same as previous

Wyświetl plik

@ -978,7 +978,7 @@ int tt588_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
else
{
// transmit reply example S<0x8f><0x01> 0x0f=15 watts, 0x01
// it appears 0x01 refelected = 0W since 0 means not read yet
// it appears 0x01 reflected = 0W since 0 means not read yet
int strength;
int reflected = (int)lvlbuf[2];
reflected = reflected > 0 ? reflected - 1 : 0;

Wyświetl plik

@ -408,7 +408,7 @@ static char which_vfo(const RIG *rig, vfo_t vfo)
* \param rig must != NULL
* \param vfo RIG_VFO_A or RIG_VFO_B
* \param freq
* \brief Set a frequence into the specified VFO
* \brief Set a frequency into the specified VFO
*
* assumes STATE(rig)->priv!=NULL
* \n assumes priv->mode in AM,CW,LSB or USB.

Wyświetl plik

@ -25,7 +25,7 @@
* Right now, this FT-1000MP implementation is a big mess.
* This is actually a fast copy past (from ft920.c),
* just to make get_freq/set_freq and co to work for a friend of mine.
* I wouln't mind if someone could take over the maintenance
* I wouldn't mind if someone could take over the maintenance
* of this piece of code, and eventually rewrite it.
* '02, Stephane
*/

Wyświetl plik

@ -1652,7 +1652,7 @@ static int ft817_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
rig_debug(RIG_DEBUG_VERBOSE, "ft817: requested freq = %"PRIfreq" Hz\n", freq);
/* fill in the frequency */
/* changed to truncate the freq for gpredict compatiblity */
/* changed to truncate the freq for gpredict compatibility */
to_bcd_be(data, (freq + 0) / 10, 8);
rig_force_cache_timeout(

Wyświetl plik

@ -2001,7 +2001,7 @@ int newcat_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
&& (is_ftdx3000 || is_ftdx3000dm)
)
{
// DX3000 with seperate rx/tx antennas was failing frequency change
// DX3000 with separate rx/tx antennas was failing frequency change
// so we increased the sleep from 100ms to 300ms
hl_usleep(300 * 1000);
}

Wyświetl plik

@ -354,7 +354,7 @@ const struct rot_caps st2_rot_caps =
/* ************************************************************************* */
/*
* F1TE Tracker, GS232 withtout position feedback
* F1TE Tracker, GS232 without position feedback
*
* http://www.f1te.org/index.php?option=com_content&view=article&id=19&Itemid=39
*/

Wyświetl plik

@ -6,5 +6,5 @@ Minor annoyance - the mount will automatically start siderial tracking after a s
Bigger annoyance - Be careful with the GEM mounts (iEQ30, iEQ45) in alt-az mode. The dec/el motor cord easily catches on the ra/az clutch knobs when slewing in az. I attached a small standoff to keep the cord out of the way.
Reccomendation - since the hand controller remains plugged, in I suggest that you use it for calibration, manual slews and setting and going to the zero position.
Recommendation - since the hand controller remains plugged, in I suggest that you use it for calibration, manual slews and setting and going to the zero position.

Wyświetl plik

@ -120,7 +120,7 @@ Subject: Rotor Card and Rotor-EZ command reference
> Rotor Card and Rotor-EZ into our library. In the course of several Web
> searches I have downloaded the Hy-Gain DCU-1 manual from their site and
> I've also visited the Digital Audio Rotor-EZ troubleshooting site.
> Between the two I have found a couple of descrepancies in the command
> Between the two I have found a couple of discrepancies in the command
> set. If possible, I would like a copy of the complete command set and
> their syntax for these two boards for our project.
>

Wyświetl plik

@ -99,7 +99,7 @@ Covered are:
- get Riginfo
-rig_debug_level_e not verified (Function is Void, VB Dokumentation
says this is not possible to be marshaled, but Compiler is still accapting this)
says this is not possible to be marshaled, but Compiler is still accepting this)
To get access to the Class you have to add something like this in your Main Class

Wyświetl plik

@ -877,7 +877,7 @@ RIG *HAMLIB_API rig_init(rig_model_t rig_model)
rs->announces = caps->announces;
rp->fd = pttp->fd = dcdp->fd = -1;
// some rigs (like SDR) behave differnt when checking for power on
// some rigs (like SDR) behave different when checking for power on
// So we assume power is on until one of the backends KNOWS it is off
rs->powerstat = RIG_POWER_ON; // default to power on until proven otherwise
@ -9006,7 +9006,7 @@ int morse_data_handler_set_keyspd(RIG *rig, int keyspd)
* \retval The address of the enumed structure
*
* Note: This is meant for use by the HAMLIB_???PORT macros mostly. Only
* compatiblity with them is supported.
* compatibility with them is supported.
*
* \sa amp_data_pointer, rot_data_pointer
*/

Wyświetl plik

@ -1,7 +1,7 @@
/* This program does a fast iteration of v f m t s
* By Michael Black W9MDB
* This allows testing of another program using rigctld
* to test changin vfo, freq, mode, PTT, or split and see the change immediately in this program.
* to test changing vfo, freq, mode, PTT, or split and see the change immediately in this program.
* Used in testing caching effects that have been added
* To compile:
* gcc -I../src -I../include -g -o cachetest2 cachetest2.c -lhamlib

Wyświetl plik

@ -699,7 +699,7 @@ int dump_csv_chan(RIG *rig,
if (mem_caps->flags)
{
if (chan.tag[0] != 0) // then we need the seperator
if (chan.tag[0] != 0) // then we need the separator
{
fprintf(f, "%x%c", chan.flags, csv_sep);
}

Wyświetl plik

@ -1795,7 +1795,7 @@ readline_repeat:
// chk_vfo is the one command we'll allow without a password
// since it's in the initial handshake
int preCmd =
0; // some command are allowed without passoword to satisfy rigctld initialization from rigctl -m 2
0; // some command are allowed without password to satisfy rigctld initialization from rigctl -m 2
if (cmd_entry->arg1 != NULL)
{
@ -4730,7 +4730,7 @@ declare_proto_rig(dump_state)
rig_debug(RIG_DEBUG_ERR, "%s: chk_vfo_executed=%d\n", __func__,
chk_vfo_executed);
if (chk_vfo_executed) // for 3.3 compatiblility
if (chk_vfo_executed) // for 3.3 compatibility
{
fprintf(fout, "vfo_ops=0x%x\n", rig->caps->vfo_ops);
fprintf(fout, "ptt_type=0x%x\n",
@ -5141,7 +5141,7 @@ declare_proto_rig(send_cmd)
rig_debug(RIG_DEBUG_TRACE, "%s: arg1=%s\n", __func__, arg1);
// note that hex sscanf expectes at least 2 values to pass this check
// note that hex sscanf expects at least 2 values to pass this check
// is there any situation where only one x00 value would be written?
unsigned int n, i1, i2;
n = sscanf(arg1, "x%x x%x", &i1, &i2);
@ -5807,7 +5807,7 @@ static int parse_hex(const char *s, unsigned char *buf, int len)
return i;
}
// sends whatever is in s -- no addtions or changes done
// sends whatever is in s -- no additions or changes done
extern int netrigctl_send_raw(RIG *rig, char *s);
/* 0xa4 */
declare_proto_rig(send_raw)

Wyświetl plik

@ -153,7 +153,7 @@ int main(int argc, const char *argv[])
if (freq != 29620000)
{
printf("rig_set_freq: error exptect %.0f got %.0f\n", 296290000.0, freq);
printf("rig_set_freq: error expect %.0f got %.0f\n", 296290000.0, freq);
}
if (rmode != RIG_MODE_FM || width != rig_passband_narrow(my_rig, RIG_MODE_FM))