mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-21 18:37:18 +00:00
Add rotator funcs/levels/parms to rotator caps dump
This commit is contained in:
parent
bb315270bf
commit
a661bee283
@ -31,6 +31,7 @@
|
||||
#include "hamlib/rotator.h"
|
||||
#include "dummy_common.h"
|
||||
#include "register.h"
|
||||
#include "idx_builtin.h"
|
||||
|
||||
#include "rot_dummy.h"
|
||||
|
||||
@ -847,7 +848,7 @@ const struct rot_caps dummy_rot_caps =
|
||||
ROT_MODEL(ROT_MODEL_DUMMY),
|
||||
.model_name = "Dummy",
|
||||
.mfg_name = "Hamlib",
|
||||
.version = "20200310.0",
|
||||
.version = "20201202.0",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rot_type = ROT_TYPE_AZEL,
|
||||
@ -867,7 +868,7 @@ const struct rot_caps dummy_rot_caps =
|
||||
.has_get_parm = DUMMY_ROT_PARM,
|
||||
.has_set_parm = ROT_PARM_SET(DUMMY_ROT_PARM),
|
||||
|
||||
.level_gran = { [ROT_LEVEL_SPEED] = { .min = { .i = 1 }, .max = { .i = 4 }, .step = { .i = 1 } } },
|
||||
.level_gran = { [ROT_LVL_SPEED] = { .min = { .i = 1 }, .max = { .i = 4 }, .step = { .i = 1 } } },
|
||||
|
||||
.extlevels = dummy_ext_levels,
|
||||
.extfuncs = dummy_ext_funcs,
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define _IDX_BUILTIN_H 1
|
||||
|
||||
#include <hamlib/rig.h>
|
||||
#include <hamlib/rotator.h>
|
||||
|
||||
/*
|
||||
* only for Hamlib internal use (backend caps)
|
||||
@ -185,5 +186,9 @@
|
||||
#define PARM_BAT setting2idx_builtin(RIG_PARM_BAT)
|
||||
#define PARM_KEYLIGHT setting2idx_builtin(RIG_PARM_KEYLIGHT)
|
||||
|
||||
/* Rotator levels */
|
||||
|
||||
#define ROT_LVL_SPEED setting2idx_builtin(ROT_LEVEL_SPEED)
|
||||
|
||||
|
||||
#endif /* _IDX_BUILTIN_H */
|
||||
|
@ -33,12 +33,15 @@
|
||||
#include "sprintflst.h"
|
||||
#include "rigctl_parse.h"
|
||||
|
||||
static int print_ext(RIG *rig, const struct confparams *cfp, rig_ptr_t ptr);
|
||||
void range_print(FILE *fout, const struct freq_range_list range_list[], int rx);
|
||||
int range_sanity_check(const struct freq_range_list range_list[], int rx);
|
||||
int ts_sanity_check(const struct tuning_step_list tuning_step[]);
|
||||
static void dump_chan_caps(const channel_cap_t *chan, FILE *fout);
|
||||
|
||||
static int print_ext(RIG *rig, const struct confparams *cfp, rig_ptr_t ptr)
|
||||
{
|
||||
return print_ext_param(cfp, ptr);
|
||||
}
|
||||
|
||||
/*
|
||||
* the rig may be in rig_init state, but not opened
|
||||
@ -832,41 +835,6 @@ int dumpcaps(RIG *rig, FILE *fout)
|
||||
return backend_warnings;
|
||||
}
|
||||
|
||||
static int print_ext(RIG *rig, const struct confparams *cfp, rig_ptr_t ptr)
|
||||
{
|
||||
int i;
|
||||
fprintf((FILE *)ptr, "\t%s\n", cfp->name);
|
||||
fprintf((FILE *)ptr, "\t\tType: %s\n", get_rig_conf_type(cfp->type));
|
||||
fprintf((FILE *)ptr, "\t\tDefault: %s\n", cfp->dflt != NULL ? cfp->dflt : "");
|
||||
fprintf((FILE *)ptr, "\t\tLabel: %s\n", cfp->label != NULL ? cfp->label : "");
|
||||
fprintf((FILE *)ptr, "\t\tTooltip: %s\n",
|
||||
cfp->tooltip != NULL ? cfp->tooltip : "");
|
||||
|
||||
switch (cfp->type)
|
||||
{
|
||||
case RIG_CONF_NUMERIC:
|
||||
fprintf((FILE *)ptr, "\t\tRange: %g..%g/%g\n", cfp->u.n.min, cfp->u.n.max,
|
||||
cfp->u.n.step);
|
||||
break;
|
||||
|
||||
case RIG_CONF_COMBO:
|
||||
fprintf((FILE *)ptr, "\t\tValues:");
|
||||
|
||||
for (i = 0; i < RIG_COMBO_MAX && cfp->u.c.combostr[i] != NULL; i++)
|
||||
{
|
||||
fprintf((FILE *)ptr, " %d=\"%s\"", i, cfp->u.c.combostr[i]);
|
||||
}
|
||||
|
||||
fprintf((FILE *)ptr, "\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1; /* process them all */
|
||||
}
|
||||
|
||||
void range_print(FILE *fout, const struct freq_range_list range_list[], int rx)
|
||||
{
|
||||
int i;
|
||||
|
@ -34,6 +34,11 @@
|
||||
#include "rotctl_parse.h"
|
||||
|
||||
|
||||
static int print_ext(ROT *rot, const struct confparams *cfp, rig_ptr_t ptr)
|
||||
{
|
||||
return print_ext_param(cfp, ptr);
|
||||
}
|
||||
|
||||
/*
|
||||
* the rot may be in rot_init state, but not opened
|
||||
*/
|
||||
@ -41,6 +46,7 @@ int dumpcaps_rot(ROT *rot, FILE *fout)
|
||||
{
|
||||
const struct rot_caps *caps;
|
||||
int backend_warnings = 0;
|
||||
static char prntbuf[1024];
|
||||
|
||||
if (!rot || !rot->caps)
|
||||
{
|
||||
@ -140,6 +146,51 @@ int dumpcaps_rot(ROT *rot, FILE *fout)
|
||||
"Post Write delay:\t%dmS\n",
|
||||
caps->post_write_delay);
|
||||
|
||||
rot_sprintf_func(prntbuf, caps->has_get_func);
|
||||
fprintf(fout, "Get functions: %s\n", prntbuf);
|
||||
|
||||
rot_sprintf_func(prntbuf, caps->has_set_func);
|
||||
fprintf(fout, "Set functions: %s\n", prntbuf);
|
||||
|
||||
fprintf(fout, "Extra functions:\n");
|
||||
rot_ext_func_foreach(rot, print_ext, fout);
|
||||
|
||||
rot_sprintf_level_gran(prntbuf, caps->has_get_level, caps->level_gran);
|
||||
fprintf(fout, "Get level: %s\n", prntbuf);
|
||||
|
||||
if ((caps->has_get_level & RIG_LEVEL_SQLSTAT))
|
||||
{
|
||||
fprintf(fout, "Warning--backend uses deprecated SQLSTAT level!\n");
|
||||
backend_warnings++;
|
||||
}
|
||||
|
||||
rot_sprintf_level_gran(prntbuf, caps->has_set_level, caps->level_gran);
|
||||
fprintf(fout, "Set level: %s\n", prntbuf);
|
||||
|
||||
if (caps->has_set_level & ROT_LEVEL_READONLY_LIST)
|
||||
{
|
||||
fprintf(fout, "Warning--backend can set readonly levels!\n");
|
||||
backend_warnings++;
|
||||
}
|
||||
|
||||
fprintf(fout, "Extra levels:\n");
|
||||
rot_ext_level_foreach(rot, print_ext, fout);
|
||||
|
||||
rot_sprintf_parm_gran(prntbuf, caps->has_get_parm, caps->parm_gran);
|
||||
fprintf(fout, "Get parameters: %s\n", prntbuf);
|
||||
|
||||
rot_sprintf_parm_gran(prntbuf, caps->has_set_parm, caps->parm_gran);
|
||||
fprintf(fout, "Set parameters: %s\n", prntbuf);
|
||||
|
||||
if (caps->has_set_parm & ROT_PARM_READONLY_LIST)
|
||||
{
|
||||
fprintf(fout, "Warning--backend can set readonly parms!\n");
|
||||
backend_warnings++;
|
||||
}
|
||||
|
||||
fprintf(fout, "Extra parameters:\n");
|
||||
rot_ext_parm_foreach(rot, print_ext, fout);
|
||||
|
||||
fprintf(fout, "Min Azimuth:\t\t%.2f\n", caps->min_az);
|
||||
fprintf(fout, "Max Azimuth:\t\t%.2f\n", caps->max_az);
|
||||
|
||||
|
@ -690,3 +690,38 @@ char *get_rig_conf_type(enum rig_conf_e type)
|
||||
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
int print_ext_param(const struct confparams *cfp, rig_ptr_t ptr)
|
||||
{
|
||||
int i;
|
||||
fprintf((FILE *)ptr, "\t%s\n", cfp->name);
|
||||
fprintf((FILE *)ptr, "\t\tType: %s\n", get_rig_conf_type(cfp->type));
|
||||
fprintf((FILE *)ptr, "\t\tDefault: %s\n", cfp->dflt != NULL ? cfp->dflt : "");
|
||||
fprintf((FILE *)ptr, "\t\tLabel: %s\n", cfp->label != NULL ? cfp->label : "");
|
||||
fprintf((FILE *)ptr, "\t\tTooltip: %s\n",
|
||||
cfp->tooltip != NULL ? cfp->tooltip : "");
|
||||
|
||||
switch (cfp->type)
|
||||
{
|
||||
case RIG_CONF_NUMERIC:
|
||||
fprintf((FILE *)ptr, "\t\tRange: %g..%g/%g\n", cfp->u.n.min, cfp->u.n.max,
|
||||
cfp->u.n.step);
|
||||
break;
|
||||
|
||||
case RIG_CONF_COMBO:
|
||||
fprintf((FILE *)ptr, "\t\tValues:");
|
||||
|
||||
for (i = 0; i < RIG_COMBO_MAX && cfp->u.c.combostr[i] != NULL; i++)
|
||||
{
|
||||
fprintf((FILE *)ptr, " %d=\"%s\"", i, cfp->u.c.combostr[i]);
|
||||
}
|
||||
|
||||
fprintf((FILE *)ptr, "\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1; /* process them all */
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ extern int rot_sprintf_parm_gran(char *str, setting_t parm, const gran_t *gran);
|
||||
extern int rig_sprintf_vfop(char *str, vfo_op_t op);
|
||||
extern int rig_sprintf_scan(char *str, scan_t rscan);
|
||||
extern char *get_rig_conf_type(enum rig_conf_e type);
|
||||
int print_ext_param(const struct confparams *cfp, rig_ptr_t ptr);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user