using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RF_TRIO_PLL_ZIG { class Data_Handler { //FileDownload fileDownload; Update_Serial fileDownload; const byte Terminal_Controller_Update_Ack = 0x11; const byte Terminal_Controller_Update_Nak = 0x22; const byte Terminal_Controller_FirmwareUpdateLen = 250; const byte Terminal_Reset = 0x0A; const byte Terminal_BootStart = 0x0B; private Boolean HeaderCheck(byte[] data) { Boolean ret = false; if(data[0] == 0xbe) { ret = true; } return ret; } private byte CrcCheck(byte[] data) { byte ret = 0; Crc16 crc = new Crc16(); byte length,crcindex; try { length = data[2]; } catch { return ret; } crcindex = (byte)(length + 1); ret = crc.STH30_CheckCrc(data,length,data[crcindex]); return ret; } public void Recv_dataCheck(object fileDownload, byte[] data) { Boolean Header_Check; byte Crc_Check, seq; try { seq = data[1]; } catch { return; } if (fileDownload != null) { this.fileDownload = (Update_Serial)fileDownload; } else { this.fileDownload = new Update_Serial(); } if (this.fileDownload.Update_ready == true) { Header_Check = HeaderCheck(data); if (Header_Check == false) { return; } Crc_Check = CrcCheck(data); if(Crc_Check == 0) { return; } switch (seq) { case Terminal_Reset: case Terminal_BootStart: case Terminal_Controller_Update_Ack: case Terminal_Controller_Update_Nak: //int DataAckcnt = data[(int)Bluepro_t.bluecell_type + 1]; //this.fileDownload.UpdateFileSend(data, DataAckcnt); this.fileDownload.Termianl__Operate(data); break; case 3: break; default: break; } } } } }