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