Porównaj commity

...

7 Commity

Autor SHA1 Wiadomość Data
Mike Black W9MDB 08aac88377 Add set_ptt for kachina 505dsp 2024-04-20 15:09:09 -05:00
Mike Black W9MDB c31497918f Add VFO Ops to rigmatrix.c and colorize things a bit 2024-04-19 16:42:10 -05:00
Mike Black W9MDB d9b57bc7a8 Align dummy rigs 2024-04-19 16:41:37 -05:00
Mike Black W9MDB 90545a192e Hopefully fix Barrett 4100 protocol 2024-04-19 10:34:20 -05:00
Mike Black W9MDB dce80d264a Update FLRig version 2024-04-18 11:28:38 -05:00
Mike Black W9MDB 4c111da0d1 Add small delay when setting VFO in FLRig to allow GUI to catch up 2024-04-18 11:22:41 -05:00
Mike Black W9MDB d9b589d254 Fix unflushed data in get_lock 2024-04-18 11:22:25 -05:00
8 zmienionych plików z 108 dodań i 20 usunięć

Wyświetl plik

@ -108,7 +108,7 @@ static int barrett4100_open(RIG *rig)
int retval;
char *response;
ENTERFUNC;
retval = barrett_transaction2(rig, "M:REMOTE SENTER2", 0, &response);
retval = barrett_transaction2(rig, "M:REMOTE SENTER2,1", 0, &response);
if (retval != RIG_OK || response[0] != 's')
{
@ -193,7 +193,13 @@ int barrett4100_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
}
else
{
sscanf(response, "gRFA1,%*d,%lf,%*d", freq);
int n = sscanf(response, "gRF%lf", freq);
//int n = sscanf(response, "gRFA1,%*d,%lf,%*d", freq);
if (n != 1)
{
rig_debug(RIG_DEBUG_ERR, "%s(%d): unable to parse freq from '%s'\n", __func__, __LINE__, response);
return -RIG_EPROTO;
}
}
return retval;
@ -233,7 +239,7 @@ struct rig_caps barrett4100_caps =
RIG_MODEL(RIG_MODEL_BARRETT_4100),
.model_name = "4100",
.mfg_name = "Barrett",
.version = BACKEND_VER ".0",
.version = BACKEND_VER ".1",
.copyright = "LGPL",
.status = RIG_STATUS_BETA,
.rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -2564,7 +2564,6 @@ struct rig_caps dummy_caps =
.get_info = dummy_get_info,
.set_ptt = dummy_set_ptt,
.get_ptt = dummy_get_ptt,
.get_dcd = dummy_get_dcd,
@ -2620,12 +2619,12 @@ struct rig_caps dummy_no_vfo_caps =
RIG_MODEL(RIG_MODEL_DUMMY_NOVFO),
.model_name = "Dummy No VFO",
.mfg_name = "Hamlib",
.version = "20220510.0",
.version = "20240409.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_OTHER,
.targetable_vfo = RIG_TARGETABLE_PTT | RIG_TARGETABLE_RITXIT | RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE,
.ptt_type = RIG_PTT_RIG,
.targetable_vfo = RIG_TARGETABLE_PTT | RIG_TARGETABLE_RITXIT | RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE | RIG_TARGETABLE_SPECTRUM,
.ptt_type = RIG_PTT_NONE,
.dcd_type = RIG_DCD_RIG,
.port_type = RIG_PORT_NONE,
.has_get_func = DUMMY_FUNC,
@ -2734,7 +2733,6 @@ struct rig_caps dummy_no_vfo_caps =
.get_info = dummy_get_info,
.set_ptt = dummy_set_ptt,
.get_ptt = dummy_get_ptt,
.get_dcd = dummy_get_dcd,

Wyświetl plik

@ -143,7 +143,7 @@ struct rig_caps flrig_caps =
RIG_MODEL(RIG_MODEL_FLRIG),
.model_name = "",
.mfg_name = "FLRig",
.version = "20240325.0",
.version = "20240418.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -1305,6 +1305,8 @@ static int flrig_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
retval = flrig_transaction(rig, cmd, cmd_arg, NULL, 0);
hl_usleep(100*1000); // FLRig needs a moment to update the active VFO
if (retval != RIG_OK)
{
RETURNFUNC2(retval);

Wyświetl plik

@ -2790,6 +2790,8 @@ int netrigctl_get_lock_mode(RIG *rig, int *lock)
char cmdbuf[256];
char buf[BUF_MAX];
int ret;
hamlib_port_t *rp = RIGPORT(rig);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "\\get_lock_mode\n");
ret = netrigctl_transaction(rig, cmdbuf, strlen(cmdbuf), buf);
@ -2799,6 +2801,7 @@ int netrigctl_get_lock_mode(RIG *rig, int *lock)
}
sscanf(buf, "%d", lock);
ret = read_string(rp, (unsigned char *) buf, BUF_MAX, "\n", 1, 0, 1);
return (RIG_OK);
}
@ -2819,7 +2822,7 @@ struct rig_caps netrigctl_caps =
RIG_MODEL(RIG_MODEL_NETRIGCTL),
.model_name = "NET rigctl",
.mfg_name = "Hamlib",
.version = "20240304.0",
.version = "20240418.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_OTHER,

Wyświetl plik

@ -62,7 +62,7 @@ struct rig_caps k505dsp_caps =
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_COMPUTER,
.ptt_type = RIG_PTT_NONE,
.ptt_type = RIG_PTT_RIG,
.dcd_type = RIG_DCD_RIG,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 9600,
@ -151,6 +151,7 @@ struct rig_caps k505dsp_caps =
.set_freq = kachina_set_freq,
.set_mode = kachina_set_mode,
.set_ptt = kachina_set_ptt,
.get_level = kachina_get_level,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS

Wyświetl plik

@ -169,12 +169,16 @@ int kachina_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
/* transmit frequency */
retval = kachina_trans_n(rig, 'T', (char *) freqbuf, 4);
if (retval != RIG_OK)
{
return retval;
}
return retval;
}
return RIG_OK;
int kachina_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
{
char c = ptt == 0 ? 0x00 : 0x01;
int retval = kachina_trans_n(rig, 'X', &c , 1);
return retval;
}
/*

Wyświetl plik

@ -24,10 +24,11 @@
#include <hamlib/rig.h>
#define BACKEND_VER "20061007"
#define BACKEND_VER "20240420"
int kachina_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
int kachina_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
int kachina_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int kachina_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
extern struct rig_caps k505dsp_caps;

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));