kopia lustrzana https://github.com/Hamlib/Hamlib
more ext operations
rodzic
4d822d5983
commit
d91376ab48
|
@ -31,6 +31,7 @@
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "idx_builtin.h"
|
#include "idx_builtin.h"
|
||||||
#include "bandplan.h"
|
#include "bandplan.h"
|
||||||
|
#include "token.h"
|
||||||
|
|
||||||
|
|
||||||
#define IC7100_MODES (RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_CWR|\
|
#define IC7100_MODES (RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_CWR|\
|
||||||
|
@ -100,6 +101,11 @@
|
||||||
|
|
||||||
#define IC7100_PARM_ALL (RIG_PARM_ANN|RIG_PARM_BACKLIGHT)
|
#define IC7100_PARM_ALL (RIG_PARM_ANN|RIG_PARM_BACKLIGHT)
|
||||||
|
|
||||||
|
int ic7100_tokens[] = { TOK_KEY_BEEP, TOK_BACKLIGHT, TOK_KEYLIGHT, TOK_TIME,
|
||||||
|
TOK_DSTAR_CODE, TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS,
|
||||||
|
TOK_DSTAR_MY_CS, TOK_DSTAR_TX_CS, TOK_DSTAR_TX_MESS,
|
||||||
|
TOK_BACKEND_NONE };
|
||||||
|
|
||||||
struct confparams ic7100_ext[] = {
|
struct confparams ic7100_ext[] = {
|
||||||
{ TOK_TIME, "time", "Time (seconds)", "", "", RIG_CONF_NUMERIC, { .n = { 0, 2359, 1 } } },
|
{ TOK_TIME, "time", "Time (seconds)", "", "", RIG_CONF_NUMERIC, { .n = { 0, 2359, 1 } } },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
|
@ -220,6 +226,7 @@ const struct rig_caps ic7100_caps =
|
||||||
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
|
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
|
||||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
|
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
|
||||||
},
|
},
|
||||||
|
.ext_tokens = ic7100_tokens,
|
||||||
.extlevels = ic7100_ext,
|
.extlevels = ic7100_ext,
|
||||||
.extparms = icom_ext_parms,
|
.extparms = icom_ext_parms,
|
||||||
.parm_gran = {},
|
.parm_gran = {},
|
||||||
|
|
24
icom/icom.c
24
icom/icom.c
|
@ -410,7 +410,7 @@ const struct confparams icom_ext_parms[] =
|
||||||
{ TOK_DSTAR_DSQL, "dsdsql", "D-STAR CSQL Status", "", "", RIG_CONF_CHECKBUTTON, {} },
|
{ TOK_DSTAR_DSQL, "dsdsql", "D-STAR CSQL Status", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||||
{ TOK_DSTAR_CALL_SIGN, "dscals", "D-STAR Call sign", "", "", RIG_CONF_BINARY, {} },
|
{ TOK_DSTAR_CALL_SIGN, "dscals", "D-STAR Call sign", "", "", RIG_CONF_BINARY, {} },
|
||||||
{ TOK_DSTAR_MESSAGE, "dsrmes", "D-STAR Rx Message", "", "", RIG_CONF_STRING, {} },
|
{ TOK_DSTAR_MESSAGE, "dsrmes", "D-STAR Rx Message", "", "", RIG_CONF_STRING, {} },
|
||||||
{ TOK_DSTAR_STATUS, "dsstat", "D-STAR Rx Status", "", "", RIG_CONF_NUMERIC, {} },
|
{ TOK_DSTAR_STATUS, "dsstat", "D-STAR Rx Status", "", "", RIG_CONF_BINARY, {} },
|
||||||
{ TOK_DSTAR_GPS_DATA, "dsgpsd", "D-STAR GPS Data", "", "", RIG_CONF_BINARY, {} },
|
{ TOK_DSTAR_GPS_DATA, "dsgpsd", "D-STAR GPS Data", "", "", RIG_CONF_BINARY, {} },
|
||||||
{ TOK_DSTAR_GPS_MESS, "dsgpsm", "D-STAR GPS Message", "", "", RIG_CONF_STRING, {} },
|
{ TOK_DSTAR_GPS_MESS, "dsgpsm", "D-STAR GPS Message", "", "", RIG_CONF_STRING, {} },
|
||||||
{ TOK_DSTAR_CODE, "dscode", "D-STAR CSQL Code", "", "", RIG_CONF_NUMERIC, {} },
|
{ TOK_DSTAR_CODE, "dscode", "D-STAR CSQL Code", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
|
@ -418,13 +418,9 @@ const struct confparams icom_ext_parms[] =
|
||||||
{ TOK_DSTAR_MY_CS, "dsmycs", "D-STAR MY Call Sign", "", "", RIG_CONF_STRING, {} },
|
{ TOK_DSTAR_MY_CS, "dsmycs", "D-STAR MY Call Sign", "", "", RIG_CONF_STRING, {} },
|
||||||
{ TOK_DSTAR_TX_CS, "dstxcs", "D-STAR Tx Call Sign", "", "", RIG_CONF_BINARY, {} },
|
{ TOK_DSTAR_TX_CS, "dstxcs", "D-STAR Tx Call Sign", "", "", RIG_CONF_BINARY, {} },
|
||||||
{ TOK_DSTAR_TX_MESS, "dstmes", "D-STAR Tx Message", "", "", RIG_CONF_STRING, {} },
|
{ TOK_DSTAR_TX_MESS, "dstmes", "D-STAR Tx Message", "", "", RIG_CONF_STRING, {} },
|
||||||
{ TOK_DRIVE_GAIN, "drive_gain", "Drive gain", "", "", RIG_CONF_NUMERIC, { .n = { 0, 255, 1 } } },
|
{ TOK_DRIVE_GAIN, "drive_gain", "Drive gain", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
{ TOK_DIGI_SEL_FUNC, "digi_sel", "DIGI-SEL enable", "", "", RIG_CONF_CHECKBUTTON, {} },
|
{ TOK_DIGI_SEL_FUNC, "digi_sel", "DIGI-SEL enable", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||||
{ TOK_DIGI_SEL_LEVEL, "digi_sel_level", "DIGI-SEL level", "", "", RIG_CONF_NUMERIC, { .n = { 0, 255, 1 } } },
|
{ TOK_DIGI_SEL_LEVEL, "digi_sel_level", "DIGI-SEL level", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
{ TOK_KEY_BEEP, "beep", "Key beep enable", "", "", RIG_CONF_CHECKBUTTON, {} },
|
|
||||||
{ TOK_BACKLIGHT, "backlight", "Display brightness", "", "", RIG_CONF_NUMERIC, { .n = { 0, 255, 1 } } },
|
|
||||||
{ TOK_KEYLIGHT, "keylight", "LED brightness", "", "", RIG_CONF_NUMERIC, { .n = { 0, 255, 1 } } },
|
|
||||||
{ TOK_TIME, "time", "Time (seconds)", "", "", RIG_CONF_NUMERIC, { .n = { 0, 2359, 1 } } },
|
|
||||||
{ RIG_CONF_END, NULL, }
|
{ RIG_CONF_END, NULL, }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -436,10 +432,10 @@ const struct cmdparams icom_ext_cmd[] =
|
||||||
{
|
{
|
||||||
{ TOK_DSTAR_CALL_SIGN, C_CTL_DIG, S_DIG_DSCALS, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 38 },
|
{ TOK_DSTAR_CALL_SIGN, C_CTL_DIG, S_DIG_DSCALS, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 38 },
|
||||||
{ TOK_DSTAR_MESSAGE, C_CTL_DIG, S_DIG_DSMESS, SC_MOD_RW12, 2, {0}, CMD_DAT_STR, 32 },
|
{ TOK_DSTAR_MESSAGE, C_CTL_DIG, S_DIG_DSMESS, SC_MOD_RW12, 2, {0}, CMD_DAT_STR, 32 },
|
||||||
{ TOK_DSTAR_STATUS, C_CTL_DIG, S_DIG_DSRSTS, SC_MOD_RW12, 2, {0}, CMD_DAT_WRD, 1 },
|
{ TOK_DSTAR_STATUS, C_CTL_DIG, S_DIG_DSRSTS, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 1 },
|
||||||
{ TOK_DSTAR_GPS_DATA, C_CTL_DIG, S_DIG_DSGPSD, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 52 },
|
{ TOK_DSTAR_GPS_DATA, C_CTL_DIG, S_DIG_DSGPSD, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 52 },
|
||||||
{ TOK_DSTAR_GPS_MESS, C_CTL_DIG, S_DIG_DSGPSM, SC_MOD_RW12, 2, {0}, CMD_DAT_STR, 52 },
|
{ TOK_DSTAR_GPS_MESS, C_CTL_DIG, S_DIG_DSGPSM, SC_MOD_RW12, 2, {0}, CMD_DAT_STR, 52 },
|
||||||
{ TOK_DSTAR_DSQL, C_CTL_DIG, S_DIG_DSCSQL, SC_MOD_RW, 2, {0}, CMD_DAT_INT, 1 },
|
{ TOK_DSTAR_DSQL, C_CTL_DIG, S_DIG_DSCSQL, SC_MOD_RW, 1, {0}, CMD_DAT_BOL, 1 },
|
||||||
{ TOK_DSTAR_CODE, C_CTL_DIG, S_DIG_DSCSQL, SC_MOD_RW12, 2, {0}, CMD_DAT_FLT, 1 },
|
{ TOK_DSTAR_CODE, C_CTL_DIG, S_DIG_DSCSQL, SC_MOD_RW12, 2, {0}, CMD_DAT_FLT, 1 },
|
||||||
{ TOK_DSTAR_TX_DATA, C_CTL_DSD, S_DSD_DSTXDT, SC_MOD_RW, 1, {0}, CMD_DAT_BUF, 30 },
|
{ TOK_DSTAR_TX_DATA, C_CTL_DSD, S_DSD_DSTXDT, SC_MOD_RW, 1, {0}, CMD_DAT_BUF, 30 },
|
||||||
{ TOK_DSTAR_MY_CS, C_CTL_DVT, S_DVT_DSMYCS, SC_MOD_RW, 1, {0}, CMD_DAT_STR, 12 },
|
{ TOK_DSTAR_MY_CS, C_CTL_DVT, S_DVT_DSMYCS, SC_MOD_RW, 1, {0}, CMD_DAT_STR, 12 },
|
||||||
|
@ -448,10 +444,6 @@ const struct cmdparams icom_ext_cmd[] =
|
||||||
{ TOK_DRIVE_GAIN, C_CTL_LVL, S_LVL_DRIVE, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
{ TOK_DRIVE_GAIN, C_CTL_LVL, S_LVL_DRIVE, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
||||||
{ TOK_DIGI_SEL_FUNC, C_CTL_FUNC, S_FUNC_DIGISEL, SC_MOD_RW, 1, {0}, CMD_DAT_BOL, 1 },
|
{ TOK_DIGI_SEL_FUNC, C_CTL_FUNC, S_FUNC_DIGISEL, SC_MOD_RW, 1, {0}, CMD_DAT_BOL, 1 },
|
||||||
{ TOK_DIGI_SEL_LEVEL, C_CTL_LVL, S_LVL_DIGI, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
{ TOK_DIGI_SEL_LEVEL, C_CTL_LVL, S_LVL_DIGI, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
||||||
{ TOK_KEY_BEEP, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_BOL, 1 },
|
|
||||||
{ TOK_BACKLIGHT, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x15}, CMD_DAT_FLT, 2 },
|
|
||||||
{ TOK_KEYLIGHT, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x16}, CMD_DAT_FLT, 2 },
|
|
||||||
{ TOK_TIME, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x32}, CMD_DAT_TIM, 2 },
|
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2613,6 +2605,9 @@ int icom_get_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
||||||
case CMD_DAT_FLT:
|
case CMD_DAT_FLT:
|
||||||
val->f = (float) from_bcd_be(resbuf, (reslen * 2));
|
val->f = (float) from_bcd_be(resbuf, (reslen * 2));
|
||||||
break;
|
break;
|
||||||
|
case CMD_DAT_LVL:
|
||||||
|
val->f = (float) from_bcd_be(resbuf, (reslen * 2)) / 255.0;
|
||||||
|
break;
|
||||||
case CMD_DAT_BOL:
|
case CMD_DAT_BOL:
|
||||||
val->i = (from_bcd_be(resbuf, (reslen * 2)) == 0) ? 0 : 1;
|
val->i = (from_bcd_be(resbuf, (reslen * 2)) == 0) ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
|
@ -2685,6 +2680,9 @@ int icom_set_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
||||||
case CMD_DAT_FLT:
|
case CMD_DAT_FLT:
|
||||||
to_bcd_be(&cmdbuf[cmdlen], (int) val.f, (cmdlen * 2));
|
to_bcd_be(&cmdbuf[cmdlen], (int) val.f, (cmdlen * 2));
|
||||||
break;
|
break;
|
||||||
|
case CMD_DAT_LVL:
|
||||||
|
to_bcd_be(&cmdbuf[cmdlen], (int)(val.f * 255.0), (cmdlen * 2));
|
||||||
|
break;
|
||||||
case CMD_DAT_TIM:
|
case CMD_DAT_TIM:
|
||||||
to_bcd_be(&cmdbuf[cmdlen], ((((int)val.f / 3600) * 100) + (((int)val.f / 60) % 60)), (cmd[i].datlen * 2));
|
to_bcd_be(&cmdbuf[cmdlen], ((((int)val.f / 3600) * 100) + (((int)val.f / 60) % 60)), (cmd[i].datlen * 2));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -541,9 +541,10 @@
|
||||||
#define CMD_DAT_WRD 0x00 /* literal single word type */
|
#define CMD_DAT_WRD 0x00 /* literal single word type */
|
||||||
#define CMD_DAT_INT 0x01 /* bcd int type */
|
#define CMD_DAT_INT 0x01 /* bcd int type */
|
||||||
#define CMD_DAT_FLT 0x02 /* bcd float type */
|
#define CMD_DAT_FLT 0x02 /* bcd float type */
|
||||||
#define CMD_DAT_BOL 0x03 /* bcd boolean type */
|
#define CMD_DAT_LVL 0x03 /* bcd level type */
|
||||||
#define CMD_DAT_STR 0x04 /* string type */
|
#define CMD_DAT_BOL 0x04 /* bcd boolean type */
|
||||||
#define CMD_DAT_BUF 0x05 /* literal byte buffer type */
|
#define CMD_DAT_STR 0x05 /* string type */
|
||||||
#define CMD_DAT_TIM 0x06 /* Time type HHMM<>seconds */
|
#define CMD_DAT_BUF 0x06 /* literal byte buffer type */
|
||||||
|
#define CMD_DAT_TIM 0x07 /* Time type HHMM<>seconds */
|
||||||
|
|
||||||
#endif /* _ICOM_DEFS_H */
|
#endif /* _ICOM_DEFS_H */
|
||||||
|
|
|
@ -52,7 +52,10 @@
|
||||||
#define TOK_EAR TOKEN_BACKEND(111)
|
#define TOK_EAR TOKEN_BACKEND(111)
|
||||||
#define TOK_REC TOKEN_BACKEND(112)
|
#define TOK_REC TOKEN_BACKEND(112)
|
||||||
|
|
||||||
int icr30_tokens[] = { TOK_ANL, TOK_EAR, TOK_REC, TOK_BACKEND_NONE };
|
int icr30_tokens[] = { TOK_ANL, TOK_EAR, TOK_REC,
|
||||||
|
TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS,
|
||||||
|
TOK_DSTAR_GPS_DATA, TOK_DSTAR_GPS_MESS, TOK_DSTAR_CODE, TOK_DSTAR_TX_DATA,
|
||||||
|
TOK_BACKEND_NONE };
|
||||||
|
|
||||||
struct confparams icr30_ext[] = {
|
struct confparams icr30_ext[] = {
|
||||||
{ TOK_ANL, "anl", "Auto noise limiter", "", "", RIG_CONF_CHECKBUTTON, {} },
|
{ TOK_ANL, "anl", "Auto noise limiter", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||||
|
|
114
icom/icr8600.c
114
icom/icr8600.c
|
@ -50,8 +50,7 @@
|
||||||
RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_PREAMP|\
|
RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_PREAMP|\
|
||||||
RIG_LEVEL_AGC|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH)
|
RIG_LEVEL_AGC|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH)
|
||||||
|
|
||||||
#define ICR8600_PARM_ALL (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|\
|
#define ICR8600_PARM_ALL (RIG_PARM_NONE)
|
||||||
RIG_PARM_BEEP|RIG_PARM_TIME|RIG_PARM_KEYLIGHT)
|
|
||||||
|
|
||||||
#define ICR8600_VFO_ALL (RIG_VFO_VFO|RIG_VFO_MEM)
|
#define ICR8600_VFO_ALL (RIG_VFO_VFO|RIG_VFO_MEM)
|
||||||
|
|
||||||
|
@ -68,15 +67,24 @@
|
||||||
{ 255, 60 }, \
|
{ 255, 60 }, \
|
||||||
} }
|
} }
|
||||||
|
|
||||||
int icr8600_tokens[] = { TOK_DSTAR_CALL_SIGN, TOK_BACKEND_NONE };
|
int icr8600_tokens[] = { TOK_KEY_BEEP, TOK_BACKLIGHT, TOK_KEYLIGHT, TOK_TIME,
|
||||||
|
TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS, TOK_DSTAR_GPS_DATA,
|
||||||
|
TOK_DSTAR_GPS_MESS, TOK_DSTAR_CODE, TOK_DSTAR_TX_DATA,
|
||||||
|
TOK_BACKEND_NONE };
|
||||||
|
|
||||||
struct confparams icr8600_ext[] = {
|
struct confparams icr8600_ext[] = {
|
||||||
{ TOK_KEY_BEEP, "beep", "Key beep enable", "", "", RIG_CONF_CHECKBUTTON, {} },
|
{ TOK_KEY_BEEP, "beep", "Key beep enable", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||||
|
{ TOK_BACKLIGHT, "backlight", "Display brightness", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
|
{ TOK_KEYLIGHT, "keylight", "LED brightness", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
|
{ TOK_TIME, "time", "Time (seconds)", "", "", RIG_CONF_NUMERIC, {} },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cmdparams icr8600_cmd[] = {
|
struct cmdparams icr8600_cmd[] = {
|
||||||
{ TOK_KEY_BEEP, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_BOL, 1 },
|
{ TOK_KEY_BEEP, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_BOL, 1 },
|
||||||
|
{ TOK_BACKLIGHT, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x15}, CMD_DAT_LVL, 2 },
|
||||||
|
{ TOK_KEYLIGHT, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x16}, CMD_DAT_LVL, 2 },
|
||||||
|
{ TOK_TIME, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x32}, CMD_DAT_TIM, 2 },
|
||||||
{ TOK_LINK }
|
{ TOK_LINK }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -93,9 +101,6 @@ struct cmdparams icr8600_cmd[] = {
|
||||||
.flags = 1, \
|
.flags = 1, \
|
||||||
}
|
}
|
||||||
|
|
||||||
int icr8600_set_parm(RIG *rig, setting_t parm, value_t val);
|
|
||||||
int icr8600_get_parm(RIG *rig, setting_t parm, value_t *val);
|
|
||||||
|
|
||||||
static const struct icom_priv_caps icr8600_priv_caps =
|
static const struct icom_priv_caps icr8600_priv_caps =
|
||||||
{
|
{
|
||||||
0x96, /* default address */
|
0x96, /* default address */
|
||||||
|
@ -238,8 +243,8 @@ const struct rig_caps icr8600_caps =
|
||||||
.get_func = icom_get_func,
|
.get_func = icom_get_func,
|
||||||
.set_level = icom_set_level,
|
.set_level = icom_set_level,
|
||||||
.get_level = icom_get_level,
|
.get_level = icom_get_level,
|
||||||
.set_parm = icr8600_set_parm,
|
.set_parm = icom_set_parm,
|
||||||
.get_parm = icr8600_get_parm,
|
.get_parm = icom_get_parm,
|
||||||
.set_ext_parm = icom_set_ext_parm,
|
.set_ext_parm = icom_set_ext_parm,
|
||||||
.get_ext_parm = icom_get_ext_parm,
|
.get_ext_parm = icom_get_ext_parm,
|
||||||
.get_dcd = icom_get_dcd,
|
.get_dcd = icom_get_dcd,
|
||||||
|
@ -254,96 +259,3 @@ const struct rig_caps icr8600_caps =
|
||||||
.get_dcs_sql = icom_get_dcs_sql,
|
.get_dcs_sql = icom_get_dcs_sql,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int icr8600_set_parm(RIG *rig, setting_t parm, value_t val)
|
|
||||||
{
|
|
||||||
unsigned char parmbuf[MAXFRAMELEN];
|
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
|
||||||
|
|
||||||
switch (parm)
|
|
||||||
{
|
|
||||||
case RIG_PARM_BEEP:
|
|
||||||
parmbuf[0] = 0x00;
|
|
||||||
parmbuf[1] = 0x38;
|
|
||||||
return icom_set_custom_parm(rig, 2, parmbuf, 1, val.i ? 1 : 0);
|
|
||||||
|
|
||||||
case RIG_PARM_BACKLIGHT:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x15;
|
|
||||||
return icom_set_custom_parm(rig, 2, parmbuf, 2, (int)(val.f * 255.0f));
|
|
||||||
|
|
||||||
case RIG_PARM_KEYLIGHT:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x16;
|
|
||||||
return icom_set_custom_parm(rig, 2, parmbuf, 2, val.f != 0 ? 255 : 0);
|
|
||||||
|
|
||||||
case RIG_PARM_TIME:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x32;
|
|
||||||
return icom_set_custom_parm_time(rig, 2, parmbuf, val.i);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return icom_set_parm(rig, parm, val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int icr8600_get_parm(RIG *rig, setting_t parm, value_t *val)
|
|
||||||
{
|
|
||||||
unsigned char parmbuf[MAXFRAMELEN];
|
|
||||||
int retval;
|
|
||||||
int icom_val;
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
|
||||||
|
|
||||||
switch (parm)
|
|
||||||
{
|
|
||||||
case RIG_PARM_BEEP:
|
|
||||||
parmbuf[0] = 0x00;
|
|
||||||
parmbuf[1] = 0x38;
|
|
||||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
|
||||||
|
|
||||||
if (retval != RIG_OK)
|
|
||||||
{
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
val->i = icom_val ? 1 : 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RIG_PARM_BACKLIGHT:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x15;
|
|
||||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
|
||||||
|
|
||||||
if (retval != RIG_OK)
|
|
||||||
{
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
val->f = (float) icom_val / 255.0f;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RIG_PARM_KEYLIGHT:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x16;
|
|
||||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
|
||||||
|
|
||||||
if (retval != RIG_OK)
|
|
||||||
{
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
val->f = icom_val != 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RIG_PARM_TIME:
|
|
||||||
parmbuf[0] = 0x01;
|
|
||||||
parmbuf[1] = 0x32;
|
|
||||||
return icom_get_custom_parm_time(rig, 2, parmbuf, &val->i);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return icom_get_parm(rig, parm, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
return RIG_OK;
|
|
||||||
}
|
|
||||||
|
|
Ładowanie…
Reference in New Issue