public override bool Recv(byte[] buf) {
if(buf[0]==ADDR) {
if(buf[1]==0x10) {
if(buf.Length==8) {
if((buf[4] & 0xC0)==0) {
_T.value=Math.Round((((buf[6]<<6) | (buf[7]>>2)) & 0x3FFF) *55.0/5461-40, 2);
_H.value=Math.Round(((buf[4]<<2) | (buf[5] >> 6))*20.0/51, 1);
_present.value=true;
_pt=DateTime.Now.AddSeconds(_rand.Next(45, 75));
_st=0;
_tCnt=0;
} else {
if(_tCnt++<3) {
_pt=DateTime.Now.AddMilliseconds(15);
_st=1;
} else {
_pt=DateTime.Now.AddSeconds(_rand.Next(15, 30));
_st=0;
}
}
}
} else {
_present.value=false;
if(TWIDriver._verbose) {
Log.Error("{0}.recv - {1}", _T.path, (AckFlags)buf[1]);
}
_tCnt++;
_pt=DateTime.Now.AddSeconds(1+_rand.Next(15, 30)*_tCnt);
_st=0;
}
return true;
}
return false;
}
public override bool Poll(out byte[] buf) {