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))*165.0/16384-40, 2);
double tmp=Math.Round(((buf[4]<<8) | buf[5])*25.0/4096, 1);
if(tmp<=100) {
_H.value=tmp;
}
_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) {