From c31497918f8511ad01e1dd749e7df94a00332db2 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Fri, 19 Apr 2024 16:42:10 -0500 Subject: [PATCH] Add VFO Ops to rigmatrix.c and colorize things a bit --- tests/rigmatrix.c | 79 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/tests/rigmatrix.c b/tests/rigmatrix.c index fab0dc011..72e8e182f 100644 --- a/tests/rigmatrix.c +++ b/tests/rigmatrix.c @@ -32,7 +32,7 @@ #include #include "misc.h" -static setting_t bitmap_func, bitmap_level, bitmap_parm; +static setting_t bitmap_func, bitmap_level, bitmap_parm, bitmap_vfo_ops; int create_png_range(const freq_range_t rx_range_list[], const freq_range_t tx_range_list[], int num); @@ -99,10 +99,11 @@ int print_caps_sum(struct rig_caps *caps, void *data) "levels" "parms" "parms" + "ops" "\n", caps->rig_model, caps->rig_model, caps->rig_model, caps->rig_model, caps->rig_model, caps->rig_model, - caps->rig_model, caps->rig_model, caps->rig_model); + caps->rig_model, caps->rig_model, caps->rig_model, caps->rig_model); return 1; /* !=0, we want them all ! */ } @@ -215,7 +216,7 @@ int print_caps_parameters(struct rig_caps *caps, void *data) } /* used by print_caps_caps and print_caps_level */ -#define print_yn(fn) printf("%c", (fn) ? 'Y':'N') +#define print_yn(fn) printf("%s", (fn) ? "Y":"N") /* * backend functions defined @@ -303,6 +304,43 @@ int print_caps_parm(struct rig_caps *caps, void *data) return 1; } +/* + * VFO Ops capabilities + */ +int print_caps_vfo_ops(struct rig_caps *caps, void *data) +{ + setting_t vfo_ops; + int i; + + if (!data) + { + return 0; + } + + // Only set for these + vfo_ops = (*(int *)data) ? caps->vfo_ops : caps->vfo_ops; + + printf("%s", + (*(int *)data) ? "op" : "op", + caps->rig_model, + caps->model_name); + + /* + * bitmap_vfo_ops: only those who have a label + */ + for (i = 0; i < RIG_SETTING_MAX; i++) + { + if (rig_idx2setting(i) & bitmap_vfo_ops) + { + print_yn(vfo_ops & rig_idx2setting(i)); + } + } + + printf("\n"); + + return 1; +} + /* * Get/Set level abilities @@ -647,6 +685,7 @@ int main(int argc, char *argv[]) "Set level" "Get parm" "Set parm" + "VFO Ops" "\n"); rig_list_foreach(print_caps_sum, NULL); printf("\n"); @@ -821,6 +860,40 @@ int main(int argc, char *argv[]) printf("

"); + bitmap_vfo_ops = 0; + prntbuf[0] = '\0'; + pbuf = prntbuf; + + for (i = 0; i < RIG_SETTING_MAX; i++) + { + setting_t op = rig_idx2setting(i); + const char *s = rig_strvfop(op); + + if (!s) + { + continue; + } + + bitmap_vfo_ops |= op; + nbytes = strlen("") + strlen(s) + 1; + nbytes_total += nbytes; + pbuf += snprintf(pbuf, sizeof(pbuf) - nbytes_total, "%s", s); + + if (strlen(pbuf) > sizeof(pbuf) + nbytes) + { + printf("Buffer overflow in %s\n", __func__); + } + } + + printf("VFO Ops"); + printf("\n"); + printf("%s\n", prntbuf); + set_or_get = 0; + rig_list_foreach(print_caps_vfo_ops, &set_or_get); + printf("
Model
\n"); + + printf("

"); + time(&gentime); printf("Rigmatrix generated %s\n", ctime(&gentime));