kopia lustrzana https://github.com/Hamlib/Hamlib
Added new protocol 1 for dumpcaps with vfo_ops as the first one implemented
Protocol 1 is setting=value. Order does not matter. Can be multiline. And is forward compatible as new values will just generate warnings on older versionspull/224/head
rodzic
b04d49eca5
commit
6a2e675216
|
@ -1873,7 +1873,7 @@ static int dummy_mW2power(RIG *rig, float *power, unsigned int mwpower,
|
|||
.ext_levels = 1, \
|
||||
}
|
||||
|
||||
const struct rig_caps dummy_caps =
|
||||
struct rig_caps dummy_caps =
|
||||
{
|
||||
RIG_MODEL(RIG_MODEL_DUMMY),
|
||||
.model_name = "Dummy",
|
||||
|
|
|
@ -38,8 +38,8 @@
|
|||
#define TOK_EL_MAGICCOMBO TOKEN_BACKEND(5)
|
||||
|
||||
|
||||
extern const struct rig_caps dummy_caps;
|
||||
extern const struct rig_caps netrigctl_caps;
|
||||
extern struct rig_caps dummy_caps;
|
||||
extern struct rig_caps netrigctl_caps;
|
||||
extern const struct rig_caps flrig_caps;
|
||||
extern const struct rig_caps trxmanager_caps;
|
||||
|
||||
|
|
|
@ -503,6 +503,47 @@ static int netrigctl_open(RIG *rig)
|
|||
rs->vfo_list |= rs->tx_range_list[i].vfo;
|
||||
}
|
||||
|
||||
if (prot_ver == 0) { return RIG_OK; }
|
||||
|
||||
// otherwise we continue reading protocol 1 fields
|
||||
|
||||
|
||||
do
|
||||
{
|
||||
char setting[32], value[256];
|
||||
ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1);
|
||||
strtok(buf, "\r\n"); // chop the EOL
|
||||
|
||||
if (ret <= 0)
|
||||
{
|
||||
return (ret < 0) ? ret : -RIG_EPROTO;
|
||||
}
|
||||
|
||||
if (strncmp(buf, "done", 4) == 0) { return RIG_OK; }
|
||||
|
||||
if (sscanf(buf, "%[^=]=%[^\t\n]", setting, value) == 2)
|
||||
{
|
||||
if (strcmp(setting, "vfo_ops") == 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: %s set to %s\n", __func__, setting, value);
|
||||
rig->caps->vfo_ops = strtol(value, NULL, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unknown setting='%s'\n", __func__, buf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"%s: invalid dumpcaps line, expected 'setting=value', got '%s'\n", __func__,
|
||||
buf);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
while (1);
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
@ -2105,7 +2146,7 @@ static int netrigctl_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
|||
* Netrigctl rig capabilities.
|
||||
*/
|
||||
|
||||
const struct rig_caps netrigctl_caps =
|
||||
struct rig_caps netrigctl_caps =
|
||||
{
|
||||
RIG_MODEL(RIG_MODEL_NETRIGCTL),
|
||||
.model_name = "NET rigctl",
|
||||
|
|
|
@ -1063,7 +1063,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc,
|
|||
return 0;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_BUG, "%s: input_line: %s\n", __func__, input_line);
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: input_line: %s\n", __func__, input_line);
|
||||
|
||||
/* Split input_line on any number of spaces to get the command token
|
||||
* Tabs are intercepted by readline for completion and a newline
|
||||
|
@ -3888,7 +3888,7 @@ declare_proto_rig(dump_state)
|
|||
/*
|
||||
* - Protocol version
|
||||
*/
|
||||
#define RIGCTLD_PROT_VER 0
|
||||
#define RIGCTLD_PROT_VER 1
|
||||
fprintf(fout, "%d\n", RIGCTLD_PROT_VER);
|
||||
fprintf(fout, "%d\n", rig->caps->rig_model);
|
||||
fprintf(fout, "%d\n", rs->itu_region);
|
||||
|
@ -3973,7 +3973,13 @@ declare_proto_rig(dump_state)
|
|||
fprintf(fout, "0x%"PRXll"\n", rs->has_get_parm);
|
||||
fprintf(fout, "0x%"PRXll"\n", rs->has_set_parm);
|
||||
|
||||
#if 0
|
||||
// protocol 1 fields are "setting=value"
|
||||
// protocol 1 allows fields can be listed/processed in any order
|
||||
// protocol 1 fields can be multi-line -- just write the thing to allow for it
|
||||
fprintf(fout, "vfo_ops=0x%"PRXll"\n", (unsigned long)rig->caps->vfo_ops);
|
||||
fprintf(fout, "done\n");
|
||||
|
||||
#if 0 // why isn't this implemented? Does anybody care?
|
||||
gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */
|
||||
gran_t parm_gran[RIG_SETTING_MAX]; /*!< parm granularity */
|
||||
#endif
|
||||
|
|
Ładowanie…
Reference in New Issue