add get_powerstat

fix get_mem : restore previous VFO


git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1867 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.3
Thierry Leconte, F4DWV 2004-11-11 17:51:53 +00:00
rodzic ad0dcf6a2f
commit 11643e2c30
2 zmienionych plików z 33 dodań i 5 usunięć

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib Kenwood backend - TH handheld primitives * Hamlib Kenwood backend - TH handheld primitives
* Copyright (c) 2001-2003 by Stephane Fillod * Copyright (c) 2001-2003 by Stephane Fillod
* *
* $Id: th.c,v 1.21 2004-11-04 22:49:10 f4dwv Exp $ * $Id: th.c,v 1.22 2004-11-11 17:51:53 f4dwv Exp $
* *
* This library is free software; you can redistribute it and/or modify * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as * it under the terms of the GNU Library General Public License as
@ -915,12 +915,15 @@ th_get_mem(RIG *rig, vfo_t vfo, int *ch)
{ {
unsigned char *membuf, ackbuf[ACKBUF_LEN]; unsigned char *membuf, ackbuf[ACKBUF_LEN];
int retval,ack_len=ACKBUF_LEN; int retval,ack_len=ACKBUF_LEN;
vfo_t tvfo; vfo_t tvfo,cvfo;
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __FUNCTION__); rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __FUNCTION__);
if(vfo==RIG_VFO_CURR) tvfo=rig->state.current_vfo; cvfo=rig->state.current_vfo;
else tvfo=vfo; if(vfo==RIG_VFO_CURR)
tvfo=cvfo;
else
tvfo=vfo;
switch (tvfo) { switch (tvfo) {
case RIG_VFO_VFO: case RIG_VFO_VFO:
@ -953,6 +956,10 @@ th_get_mem(RIG *rig, vfo_t vfo, int *ch)
ackbuf[8]='\0'; ackbuf[8]='\0';
*ch = atoi(&ackbuf[5]); *ch = atoi(&ackbuf[5]);
retval= rig_set_vfo(rig,cvfo);
if (retval != RIG_OK)
return retval;
return RIG_OK; return RIG_OK;
} }
@ -1008,6 +1015,26 @@ th_set_powerstat(RIG *rig, powerstat_t status)
return RIG_OK; return RIG_OK;
} }
int th_get_powerstat(RIG *rig, powerstat_t *status)
{
unsigned char pwrbuf[50];
int pwr_len = 50, retval;
retval = kenwood_transaction (rig, "PS;", 3, pwrbuf, &pwr_len);
if (retval != RIG_OK)
return retval;
if (pwr_len != 4) {
rig_debug(RIG_DEBUG_ERR,"kenwood_get_powerstat: wrong answer "
"len=%d\n", pwr_len);
return -RIG_ERJCTED;
}
*status = pwrbuf[2] == '0' ? RIG_POWER_OFF : RIG_POWER_ON;
return RIG_OK;
}
int th_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd) int th_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
{ {
unsigned char *membuf, ackbuf[ACKBUF_LEN]; unsigned char *membuf, ackbuf[ACKBUF_LEN];

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib Kenwood backend - TH handheld header * Hamlib Kenwood backend - TH handheld header
* Copyright (c) 2001-2003 by Stephane Fillod * Copyright (c) 2001-2003 by Stephane Fillod
* *
* $Id: th.h,v 1.8 2004-03-21 18:25:54 f4dwv Exp $ * $Id: th.h,v 1.9 2004-11-11 17:51:53 f4dwv Exp $
* *
* This library is free software; you can redistribute it and/or modify * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as * it under the terms of the GNU Library General Public License as
@ -34,6 +34,7 @@ extern int th_get_vfo(RIG *rig, vfo_t *vfo);
extern int th_set_trn(RIG *rig, int trn); extern int th_set_trn(RIG *rig, int trn);
extern int th_get_trn (RIG *rig, int *trn); extern int th_get_trn (RIG *rig, int *trn);
extern int th_set_powerstat (RIG *rig, powerstat_t status); extern int th_set_powerstat (RIG *rig, powerstat_t status);
extern int th_get_powerstat (RIG *rig, powerstat_t *status);
extern int th_set_func (RIG *rig, vfo_t vfo, setting_t func, int status); extern int th_set_func (RIG *rig, vfo_t vfo, setting_t func, int status);
extern int th_get_func (RIG *rig, vfo_t vfo, setting_t func, int *status); extern int th_get_func (RIG *rig, vfo_t vfo, setting_t func, int *status);
extern int th_get_parm (RIG *rig, setting_t parm, value_t *val); extern int th_get_parm (RIG *rig, setting_t parm, value_t *val);