diff --git a/kenwood/th.c b/kenwood/th.c index 377482788..39ab3c6be 100644 --- a/kenwood/th.c +++ b/kenwood/th.c @@ -2,7 +2,7 @@ * Hamlib Kenwood backend - TH handheld primitives * 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 * 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]; int retval,ack_len=ACKBUF_LEN; - vfo_t tvfo; + vfo_t tvfo,cvfo; rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __FUNCTION__); - if(vfo==RIG_VFO_CURR) tvfo=rig->state.current_vfo; - else tvfo=vfo; + cvfo=rig->state.current_vfo; + if(vfo==RIG_VFO_CURR) + tvfo=cvfo; + else + tvfo=vfo; switch (tvfo) { case RIG_VFO_VFO: @@ -953,6 +956,10 @@ th_get_mem(RIG *rig, vfo_t vfo, int *ch) ackbuf[8]='\0'; *ch = atoi(&ackbuf[5]); + retval= rig_set_vfo(rig,cvfo); + if (retval != RIG_OK) + return retval; + return RIG_OK; } @@ -1008,6 +1015,26 @@ th_set_powerstat(RIG *rig, powerstat_t status) 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) { unsigned char *membuf, ackbuf[ACKBUF_LEN]; diff --git a/kenwood/th.h b/kenwood/th.h index 152aeae00..d3d249c9a 100644 --- a/kenwood/th.h +++ b/kenwood/th.h @@ -2,7 +2,7 @@ * Hamlib Kenwood backend - TH handheld header * 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 * 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_get_trn (RIG *rig, int *trn); 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_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);