Add VFO Ops to rigmatrix.c and colorize things a bit

pull/1539/merge
Mike Black W9MDB 2024-04-19 16:42:10 -05:00
rodzic d9b57bc7a8
commit c31497918f
1 zmienionych plików z 76 dodań i 3 usunięć

Wyświetl plik

@ -32,7 +32,7 @@
#include <hamlib/rig.h>
#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)
"<TD><A HREF=\"#setlevel%u\">levels</A></TD>"
"<TD><A HREF=\"#getparm%u\">parms</A></TD>"
"<TD><A HREF=\"#setparm%u\">parms</A></TD>"
"<TD><A HREF=\"#op%u\">ops</A></TD>"
"</TR>\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("<TD>%c</TD>", (fn) ? 'Y':'N')
#define print_yn(fn) printf("<TD>%s</TD>", (fn) ? "<font color=\"00AA00\"><strong>Y</strong><font>":"<font color=\"#CCCCCC\">N<font>")
/*
* 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("<A NAME=\"%s%u\"><TR><TD>%s</TD>",
(*(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("</TR></A>\n");
return 1;
}
/*
* Get/Set level abilities
@ -647,6 +685,7 @@ int main(int argc, char *argv[])
"<TD>Set level</TD>"
"<TD>Get parm</TD>"
"<TD>Set parm</TD>"
"<TD>VFO Ops</TD>"
"</TR>\n");
rig_list_foreach(print_caps_sum, NULL);
printf("</TABLE>\n");
@ -821,6 +860,40 @@ int main(int argc, char *argv[])
printf("<P>");
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("<TD></TD>") + strlen(s) + 1;
nbytes_total += nbytes;
pbuf += snprintf(pbuf, sizeof(pbuf) - nbytes_total, "<TD>%s</TD>", s);
if (strlen(pbuf) > sizeof(pbuf) + nbytes)
{
printf("Buffer overflow in %s\n", __func__);
}
}
printf("VFO Ops");
printf("<TABLE BORDER=1>\n");
printf("<TR><TD>Model</TD>%s</TR>\n", prntbuf);
set_or_get = 0;
rig_list_foreach(print_caps_vfo_ops, &set_or_get);
printf("</TABLE>\n");
printf("<P>");
time(&gentime);
printf("Rigmatrix generated %s\n", ctime(&gentime));