fixed evaluation of parameters for icom_get_dcd()

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2696 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.10
Thomas Beierlein, DL1JBE 2009-05-17 10:48:35 +00:00
rodzic 0db8b049f1
commit 1bf12b8491
1 zmienionych plików z 6 dodań i 12 usunięć

Wyświetl plik

@ -1163,7 +1163,7 @@ int icom_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
return retval; return retval;
/* /*
* freqbuf should contain Cn,Sc,Data area * pttbuf should contain Cn,Sc,Data area
*/ */
ptt_len -= 2; ptt_len -= 2;
if (ptt_len != 1) { if (ptt_len != 1) {
@ -1193,26 +1193,20 @@ int icom_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
return retval; return retval;
/* /*
* freqbuf should contain Cn,Data area * dcdbuf should contain Cn,Data area
*/ */
dcd_len -= 2; dcd_len -= 2;
if (dcd_len != 2) { if (dcd_len != 1) {
rig_debug(RIG_DEBUG_ERR,"icom_get_dcd: wrong frame len=%d\n", rig_debug(RIG_DEBUG_ERR,"icom_get_dcd: wrong frame len=%d\n",
dcd_len); dcd_len);
return -RIG_ERJCTED; return -RIG_ERJCTED;
} }
/*
* The result is a 3 digit BCD, but in *big endian* order: 0000..0255
* (from_bcd is little endian)
*/
icom_val = from_bcd_be(dcdbuf+2, dcd_len*2);
/* /*
* 0x00=sql closed, 0x01=sql open * 0x00=sql closed, 0x01=sql open
*
* TODO: replace icom_val by dcdbuf[2] ?
*/ */
*dcd = (icom_val==0x01) ? RIG_DCD_ON : RIG_DCD_OFF;
*dcd = dcdbuf[2] == 1 ? RIG_DCD_ON : RIG_DCD_OFF;
return RIG_OK; return RIG_OK;
} }