kopia lustrzana https://github.com/Hamlib/Hamlib
various bug fixes
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1956 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.4
rodzic
8ce815cf86
commit
b036bdb032
|
@ -2,7 +2,7 @@
|
|||
* Hamlib TenTenc backend - TT-565 description
|
||||
* Copyright (c) 2004-2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: orion.c,v 1.6 2005-03-30 04:30:30 aa6e Exp $
|
||||
* $Id: orion.c,v 1.7 2005-04-01 19:32:18 aa6e Exp $
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
|
@ -140,6 +140,8 @@ struct tt565_priv_data {
|
|||
|
||||
#define TT565_EOM "\r" /* <cr> terminates input string */
|
||||
|
||||
#undef TT565_TIME /* Define to enable time checks */
|
||||
|
||||
#ifdef TT565_TIME
|
||||
double tt565_timenow() /* returns current time in secs+microsecs */
|
||||
{
|
||||
|
@ -157,12 +159,14 @@ double tt565_timenow() /* returns current time in secs+microsecs */
|
|||
*/
|
||||
int tt565_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *data_len)
|
||||
{
|
||||
int retval, data_len0, itry;
|
||||
int retval, data_len_init, itry;
|
||||
struct rig_state *rs;
|
||||
#ifdef TT565_TIME
|
||||
double ft1, ft2;
|
||||
#endif
|
||||
data_len0 = *data_len;
|
||||
/* Capture buffer length for possible read re-try. */
|
||||
data_len_init = (data && data_len) ? *data_len : 0;
|
||||
/* Allow transaction re-tries according to capabilities. */
|
||||
for (itry=1; itry < rig->caps->retry; itry++) {
|
||||
rs = &rig->state;
|
||||
|
||||
|
@ -178,7 +182,7 @@ int tt565_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *d
|
|||
#ifdef TT565_TIME
|
||||
ft1 = tt565_timenow();
|
||||
#endif
|
||||
*data_len = data_len0;
|
||||
*data_len = data_len_init; /* restore orig. buffer length */
|
||||
*data_len = read_string(&rs->rigport, data, *data_len,
|
||||
TT565_EOM, strlen(TT565_EOM));
|
||||
if (*data_len > 0) return RIG_OK; /* normal exit if reading */
|
||||
|
@ -229,9 +233,7 @@ const struct rig_caps tt565_caps = {
|
|||
.has_set_level = RIG_LEVEL_SET(TT565_LEVELS),
|
||||
.has_get_parm = TT565_PARMS,
|
||||
.has_set_parm = TT565_PARMS,
|
||||
/* (in progress)
|
||||
.level_gran = { [LVL_RF] = { .min = { .i = 0 }, .max = { .i = 100 }, .step = { .i = 1 } } },
|
||||
*/
|
||||
|
||||
.level_gran = {},
|
||||
.parm_gran = {},
|
||||
.ctcss_list = NULL,
|
||||
|
@ -330,7 +332,6 @@ const struct rig_caps tt565_caps = {
|
|||
* Function definitions below
|
||||
*/
|
||||
|
||||
|
||||
#define EOM "\015" /* CR */
|
||||
|
||||
#define TT565_USB '0'
|
||||
|
@ -341,8 +342,6 @@ const struct rig_caps tt565_caps = {
|
|||
#define TT565_FM '5'
|
||||
#define TT565_RTTY '6'
|
||||
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
*
|
||||
* Specs from http://www.rfsquared.com, Rev 1, firmware 1.340
|
||||
|
@ -464,7 +463,7 @@ int tt565_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
cmd_len = sprintf(cmdbuf, "?%cF" EOM,
|
||||
which_vfo(rig, vfo));
|
||||
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -518,8 +517,6 @@ int tt565_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* tt565_set_split_vfo
|
||||
* Assumes rig!=NULL
|
||||
|
@ -560,7 +557,7 @@ int tt565_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo)
|
|||
char ttreceiver;
|
||||
|
||||
cmd_len = sprintf(cmdbuf, "?KV" EOM);
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -640,7 +637,7 @@ int tt565_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
|
||||
/* Query mode */
|
||||
cmd_len = sprintf(cmdbuf, "?R%cM" EOM, ttreceiver);
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -670,7 +667,7 @@ int tt565_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
|
||||
/* Query passband width (filter) */
|
||||
cmd_len = sprintf(cmdbuf, "?R%cF" EOM, ttreceiver);
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -685,8 +682,6 @@ int tt565_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
*width = atoi(respbuf+4);
|
||||
|
||||
return RIG_OK;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -715,7 +710,7 @@ int tt565_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cI" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -758,7 +753,7 @@ int tt565_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cR" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -804,7 +799,7 @@ int tt565_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cX" EOM,
|
||||
'M');
|
||||
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -840,7 +835,7 @@ int tt565_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
|
|||
int resp_len, retval;
|
||||
unsigned char respbuf[32];
|
||||
|
||||
resp_len=16;
|
||||
resp_len = sizeof(respbuf);
|
||||
retval = tt565_transaction (rig, "?S" EOM, 3, respbuf, &resp_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -865,7 +860,7 @@ int tt565_reset(RIG *rig, reset_t reset)
|
|||
int retval, reset_len;
|
||||
char reset_buf[32];
|
||||
|
||||
reset_len=16;
|
||||
reset_len = sizeof(reset_buf);
|
||||
retval = tt565_transaction (rig, "X" EOM, 2, reset_buf, &reset_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -894,7 +889,7 @@ const char *tt565_get_info(RIG *rig)
|
|||
/*
|
||||
* protocol version
|
||||
*/
|
||||
firmware_len = 24;
|
||||
firmware_len = sizeof(buf);
|
||||
retval = tt565_transaction (rig, "?V" EOM, 3, buf, &firmware_len);
|
||||
|
||||
/* "Version 1.372" */
|
||||
|
@ -908,9 +903,6 @@ const char *tt565_get_info(RIG *rig)
|
|||
return buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* tt565_set_level
|
||||
* Assumes rig!=NULL
|
||||
|
@ -1023,7 +1015,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
*/
|
||||
switch (level) {
|
||||
case RIG_LEVEL_SWR:
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?S" EOM, 3, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1050,7 +1042,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?S" EOM, 3, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1069,7 +1061,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?TP" EOM, 4, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1087,7 +1079,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cA" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1113,7 +1105,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?U%c" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1131,7 +1123,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cP" EOM, /* passband tuning */
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1149,7 +1141,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cG" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1167,7 +1159,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cT" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1183,12 +1175,14 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
else
|
||||
val->i = rig->caps->attenuator[lvlbuf[4]-'1'];
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_PREAMP:
|
||||
/* Sub receiver does not contain a Preamp */
|
||||
if (which_receiver(rig, vfo) == 'S') {
|
||||
val->i=0;
|
||||
break;
|
||||
}
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?RME" EOM, 5, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1206,7 +1200,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
cmd_len = sprintf(cmdbuf, "?R%cS" EOM,
|
||||
which_receiver(rig, vfo));
|
||||
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1221,7 +1215,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_MICGAIN:
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?TM" EOM, 4, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1236,7 +1230,7 @@ int tt565_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_COMP:
|
||||
lvl_len=16;
|
||||
lvl_len = sizeof(lvlbuf);
|
||||
retval = tt565_transaction (rig, "?TS" EOM, 4, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -1316,3 +1310,4 @@ int tt565_vfo_op(RIG * rig, vfo_t vfo, vfo_op_t op)
|
|||
|
||||
return retval;
|
||||
}
|
||||
/* End of orion.c */
|
||||
|
|
Ładowanie…
Reference in New Issue