kopia lustrzana https://github.com/Hamlib/Hamlib
astyle ts590.c
rodzic
b6b6ffc04e
commit
1152c506da
117
kenwood/ts590.c
117
kenwood/ts590.c
|
@ -32,8 +32,8 @@
|
||||||
|
|
||||||
|
|
||||||
/* Function declarations */
|
/* Function declarations */
|
||||||
const char* ts590_get_info(RIG *rig);
|
const char *ts590_get_info(RIG *rig);
|
||||||
int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t * val);
|
int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
|
||||||
|
|
||||||
#define TS590_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTFM|RIG_MODE_PKTUSB|RIG_MODE_PKTLSB)
|
#define TS590_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTFM|RIG_MODE_PKTUSB|RIG_MODE_PKTLSB)
|
||||||
#define TS590_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
|
#define TS590_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
|
||||||
|
@ -74,7 +74,8 @@ int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t * val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct kenwood_priv_caps ts590_priv_caps = {
|
static struct kenwood_priv_caps ts590_priv_caps =
|
||||||
|
{
|
||||||
.cmdtrm = EOM_KEN,
|
.cmdtrm = EOM_KEN,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -84,7 +85,8 @@ static struct kenwood_priv_caps ts590_priv_caps = {
|
||||||
* Notice that some rigs share the same functions.
|
* Notice that some rigs share the same functions.
|
||||||
* Also this struct is READONLY!
|
* Also this struct is READONLY!
|
||||||
*/
|
*/
|
||||||
const struct rig_caps ts590_caps = {
|
const struct rig_caps ts590_caps =
|
||||||
|
{
|
||||||
.rig_model = RIG_MODEL_TS590S,
|
.rig_model = RIG_MODEL_TS590S,
|
||||||
.model_name = "TS-590S",
|
.model_name = "TS-590S",
|
||||||
.mfg_name = "Kenwood",
|
.mfg_name = "Kenwood",
|
||||||
|
@ -107,14 +109,14 @@ const struct rig_caps ts590_caps = {
|
||||||
.retry = 10,
|
.retry = 10,
|
||||||
.preamp = {12, RIG_DBLST_END,},
|
.preamp = {12, RIG_DBLST_END,},
|
||||||
.attenuator = {12, RIG_DBLST_END,},
|
.attenuator = {12, RIG_DBLST_END,},
|
||||||
.max_rit = kHz (9.99),
|
.max_rit = kHz(9.99),
|
||||||
.max_xit = kHz (9.99),
|
.max_xit = kHz(9.99),
|
||||||
.max_ifshift = Hz (0),
|
.max_ifshift = Hz(0),
|
||||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||||
.transceive = RIG_TRN_RIG,
|
.transceive = RIG_TRN_RIG,
|
||||||
|
|
||||||
|
|
||||||
.chan_list = { /* TBC */
|
.chan_list = { /* TBC */
|
||||||
{ 0, 89, RIG_MTYPE_MEM, TS590_CHANNEL_CAPS },
|
{ 0, 89, RIG_MTYPE_MEM, TS590_CHANNEL_CAPS },
|
||||||
{ 90, 99, RIG_MTYPE_EDGE, TS590_CHANNEL_CAPS },
|
{ 90, 99, RIG_MTYPE_EDGE, TS590_CHANNEL_CAPS },
|
||||||
RIG_CHAN_END,
|
RIG_CHAN_END,
|
||||||
|
@ -177,32 +179,32 @@ const struct rig_caps ts590_caps = {
|
||||||
RIG_FRNG_END,
|
RIG_FRNG_END,
|
||||||
}, /*!< Transmit frequency range list for ITU region 2 */
|
}, /*!< Transmit frequency range list for ITU region 2 */
|
||||||
.tuning_steps = {
|
.tuning_steps = {
|
||||||
{TS590_ALL_MODES,kHz(1)},
|
{TS590_ALL_MODES, kHz(1)},
|
||||||
{TS590_ALL_MODES,Hz(2500)},
|
{TS590_ALL_MODES, Hz(2500)},
|
||||||
{TS590_ALL_MODES,kHz(5)},
|
{TS590_ALL_MODES, kHz(5)},
|
||||||
{TS590_ALL_MODES,Hz(6250)},
|
{TS590_ALL_MODES, Hz(6250)},
|
||||||
{TS590_ALL_MODES,kHz(10)},
|
{TS590_ALL_MODES, kHz(10)},
|
||||||
{TS590_ALL_MODES,Hz(12500)},
|
{TS590_ALL_MODES, Hz(12500)},
|
||||||
{TS590_ALL_MODES,kHz(15)},
|
{TS590_ALL_MODES, kHz(15)},
|
||||||
{TS590_ALL_MODES,kHz(20)},
|
{TS590_ALL_MODES, kHz(20)},
|
||||||
{TS590_ALL_MODES,kHz(25)},
|
{TS590_ALL_MODES, kHz(25)},
|
||||||
{TS590_ALL_MODES,kHz(30)},
|
{TS590_ALL_MODES, kHz(30)},
|
||||||
{TS590_ALL_MODES,kHz(100)},
|
{TS590_ALL_MODES, kHz(100)},
|
||||||
{TS590_ALL_MODES,kHz(500)},
|
{TS590_ALL_MODES, kHz(500)},
|
||||||
{TS590_ALL_MODES,MHz(1)},
|
{TS590_ALL_MODES, MHz(1)},
|
||||||
{TS590_ALL_MODES,0}, /* any tuning step */
|
{TS590_ALL_MODES, 0}, /* any tuning step */
|
||||||
RIG_TS_END,
|
RIG_TS_END,
|
||||||
},
|
},
|
||||||
/* mode/filter list, remember: order matters! */
|
/* mode/filter list, remember: order matters! */
|
||||||
.filters = {
|
.filters = {
|
||||||
{RIG_MODE_SSB, kHz(2.2)},
|
{RIG_MODE_SSB, kHz(2.2)},
|
||||||
{RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_RTTY|RIG_MODE_RTTYR, Hz(500)},
|
{RIG_MODE_CW | RIG_MODE_CWR | RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(500)},
|
||||||
{RIG_MODE_AM, kHz(6)},
|
{RIG_MODE_AM, kHz(6)},
|
||||||
{RIG_MODE_FM, kHz(12)},
|
{RIG_MODE_FM, kHz(12)},
|
||||||
RIG_FLT_END,
|
RIG_FLT_END,
|
||||||
},
|
},
|
||||||
.str_cal = TS590_STR_CAL,
|
.str_cal = TS590_STR_CAL,
|
||||||
.priv = (void *) &ts590_priv_caps,
|
.priv = (void *)& ts590_priv_caps,
|
||||||
.rig_init = kenwood_init,
|
.rig_init = kenwood_init,
|
||||||
.rig_cleanup = kenwood_cleanup,
|
.rig_cleanup = kenwood_cleanup,
|
||||||
.rig_open = kenwood_open,
|
.rig_open = kenwood_open,
|
||||||
|
@ -252,7 +254,8 @@ const struct rig_caps ts590_caps = {
|
||||||
.vfo_op = kenwood_vfo_op,
|
.vfo_op = kenwood_vfo_op,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct rig_caps ts590sg_caps = {
|
const struct rig_caps ts590sg_caps =
|
||||||
|
{
|
||||||
.rig_model = RIG_MODEL_TS590SG,
|
.rig_model = RIG_MODEL_TS590SG,
|
||||||
.model_name = "TS-590SG",
|
.model_name = "TS-590SG",
|
||||||
.mfg_name = "Kenwood",
|
.mfg_name = "Kenwood",
|
||||||
|
@ -275,14 +278,14 @@ const struct rig_caps ts590sg_caps = {
|
||||||
.retry = 10,
|
.retry = 10,
|
||||||
.preamp = {12, RIG_DBLST_END,},
|
.preamp = {12, RIG_DBLST_END,},
|
||||||
.attenuator = {12, RIG_DBLST_END,},
|
.attenuator = {12, RIG_DBLST_END,},
|
||||||
.max_rit = kHz (9.99),
|
.max_rit = kHz(9.99),
|
||||||
.max_xit = kHz (9.99),
|
.max_xit = kHz(9.99),
|
||||||
.max_ifshift = Hz (0),
|
.max_ifshift = Hz(0),
|
||||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||||
.transceive = RIG_TRN_RIG,
|
.transceive = RIG_TRN_RIG,
|
||||||
|
|
||||||
|
|
||||||
.chan_list = { /* TBC */
|
.chan_list = { /* TBC */
|
||||||
{ 0, 89, RIG_MTYPE_MEM, TS590_CHANNEL_CAPS },
|
{ 0, 89, RIG_MTYPE_MEM, TS590_CHANNEL_CAPS },
|
||||||
{ 90, 99, RIG_MTYPE_EDGE, TS590_CHANNEL_CAPS },
|
{ 90, 99, RIG_MTYPE_EDGE, TS590_CHANNEL_CAPS },
|
||||||
RIG_CHAN_END,
|
RIG_CHAN_END,
|
||||||
|
@ -345,32 +348,32 @@ const struct rig_caps ts590sg_caps = {
|
||||||
RIG_FRNG_END,
|
RIG_FRNG_END,
|
||||||
}, /*!< Transmit frequency range list for ITU region 2 */
|
}, /*!< Transmit frequency range list for ITU region 2 */
|
||||||
.tuning_steps = {
|
.tuning_steps = {
|
||||||
{TS590_ALL_MODES,kHz(1)},
|
{TS590_ALL_MODES, kHz(1)},
|
||||||
{TS590_ALL_MODES,Hz(2500)},
|
{TS590_ALL_MODES, Hz(2500)},
|
||||||
{TS590_ALL_MODES,kHz(5)},
|
{TS590_ALL_MODES, kHz(5)},
|
||||||
{TS590_ALL_MODES,Hz(6250)},
|
{TS590_ALL_MODES, Hz(6250)},
|
||||||
{TS590_ALL_MODES,kHz(10)},
|
{TS590_ALL_MODES, kHz(10)},
|
||||||
{TS590_ALL_MODES,Hz(12500)},
|
{TS590_ALL_MODES, Hz(12500)},
|
||||||
{TS590_ALL_MODES,kHz(15)},
|
{TS590_ALL_MODES, kHz(15)},
|
||||||
{TS590_ALL_MODES,kHz(20)},
|
{TS590_ALL_MODES, kHz(20)},
|
||||||
{TS590_ALL_MODES,kHz(25)},
|
{TS590_ALL_MODES, kHz(25)},
|
||||||
{TS590_ALL_MODES,kHz(30)},
|
{TS590_ALL_MODES, kHz(30)},
|
||||||
{TS590_ALL_MODES,kHz(100)},
|
{TS590_ALL_MODES, kHz(100)},
|
||||||
{TS590_ALL_MODES,kHz(500)},
|
{TS590_ALL_MODES, kHz(500)},
|
||||||
{TS590_ALL_MODES,MHz(1)},
|
{TS590_ALL_MODES, MHz(1)},
|
||||||
{TS590_ALL_MODES,0}, /* any tuning step */
|
{TS590_ALL_MODES, 0}, /* any tuning step */
|
||||||
RIG_TS_END,
|
RIG_TS_END,
|
||||||
},
|
},
|
||||||
/* mode/filter list, remember: order matters! */
|
/* mode/filter list, remember: order matters! */
|
||||||
.filters = {
|
.filters = {
|
||||||
{RIG_MODE_SSB, kHz(2.2)},
|
{RIG_MODE_SSB, kHz(2.2)},
|
||||||
{RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_RTTY|RIG_MODE_RTTYR, Hz(500)},
|
{RIG_MODE_CW | RIG_MODE_CWR | RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(500)},
|
||||||
{RIG_MODE_AM, kHz(6)},
|
{RIG_MODE_AM, kHz(6)},
|
||||||
{RIG_MODE_FM, kHz(12)},
|
{RIG_MODE_FM, kHz(12)},
|
||||||
RIG_FLT_END,
|
RIG_FLT_END,
|
||||||
},
|
},
|
||||||
.str_cal = TS590_STR_CAL,
|
.str_cal = TS590_STR_CAL,
|
||||||
.priv = (void *) &ts590_priv_caps,
|
.priv = (void *)& ts590_priv_caps,
|
||||||
.rig_init = kenwood_init,
|
.rig_init = kenwood_init,
|
||||||
.rig_cleanup = kenwood_cleanup,
|
.rig_cleanup = kenwood_cleanup,
|
||||||
.rig_open = kenwood_open,
|
.rig_open = kenwood_open,
|
||||||
|
@ -430,23 +433,31 @@ const struct rig_caps ts590sg_caps = {
|
||||||
* This is not documented in the manual as of 3/11/15 but confirmed from Kenwood
|
* This is not documented in the manual as of 3/11/15 but confirmed from Kenwood
|
||||||
* "TY" produces "TYK 00" for example
|
* "TY" produces "TYK 00" for example
|
||||||
*/
|
*/
|
||||||
const char* ts590_get_info(RIG *rig)
|
const char *ts590_get_info(RIG *rig)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||||
|
|
||||||
if (!rig)
|
if (!rig)
|
||||||
|
{
|
||||||
return "*rig == NULL";
|
return "*rig == NULL";
|
||||||
|
}
|
||||||
|
|
||||||
char firmbuf[10];
|
char firmbuf[10];
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
retval = kenwood_safe_transaction(rig, "TY", firmbuf, 10, 6);
|
retval = kenwood_safe_transaction(rig, "TY", firmbuf, 10, 6);
|
||||||
if (retval != RIG_OK)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
switch (firmbuf[2]) {
|
if (retval != RIG_OK)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (firmbuf[2])
|
||||||
|
{
|
||||||
case 'K': return "Firmware: USA version";
|
case 'K': return "Firmware: USA version";
|
||||||
|
|
||||||
case 'E': return "Firmware: European version";
|
case 'E': return "Firmware: European version";
|
||||||
|
|
||||||
default: return "Firmware: unknown";
|
default: return "Firmware: unknown";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -455,11 +466,13 @@ const char* ts590_get_info(RIG *rig)
|
||||||
* ts590_get_level
|
* ts590_get_level
|
||||||
* only difference from standard Kenwood is AF level which has an argument
|
* only difference from standard Kenwood is AF level which has an argument
|
||||||
*/
|
*/
|
||||||
int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t * val)
|
int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
{
|
{
|
||||||
switch(level) {
|
switch (level)
|
||||||
|
{
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
return get_kenwood_level(rig, "AG0", &val->f);
|
return get_kenwood_level(rig, "AG0", &val->f);
|
||||||
default: return rig_get_level(rig,vfo,level,val);
|
|
||||||
|
default: return rig_get_level(rig, vfo, level, val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue