private byte tecReadPacket()
{
byte crc, i;
for (i = 0; i < rxBufferSize; i++)
rxBuf[i] = 0;
if ((tecComPort.BytesToRead != responcePacketSize) && (tecComPort.BytesToRead != infoPacketSize)) return 1;
tecComPort.Read(rxBuf, 0, tecComPort.BytesToRead);
crc = crc8_block(rxBuf, (byte)(rxBuf.Length - 1));
if (rxBuf[rxBuf.Length - 1] != crc) return 1;
//check command responce v, d. renew interface if correct
switch (rxBuf[0])
{
case 0x76:
{
if ((rxBuf[1] != hwRevision) || (rxBuf[2] != swRevision) || (rxBuf[3] != sensorCount) || (rxBuf[4] != setCount)) return 1;
else return 0;
};
case 0x64:
{
tecCCDTemp = (((rxBuf[1] << 8) | (rxBuf[2])) - tempOffset * 10) / 10.0;
tecHeatsinkTemp = (((rxBuf[3] << 8) | (rxBuf[4])) - tempOffset * 10) / 10.0;
tecSetTemp = (((rxBuf[5] << 8) | (rxBuf[6])) - tempOffset * 10) / 10.0;
tecCoolerPower = (double) (rxBuf[7]*100/255);
tecErrorCode = rxBuf[8];
if (rxBuf[9] == 0x00) tecCoolenOn = false;
else tecCoolenOn = true;
return 0;
};
default:
{
return 1;
};
}
}
}