Data_Handler.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace RF_TRIO_PLL_ZIG
  7. {
  8. class Data_Handler
  9. {
  10. //FileDownload fileDownload;
  11. Update_Serial fileDownload;
  12. const byte Terminal_Controller_Update_Ack = 0x11;
  13. const byte Terminal_Controller_Update_Nak = 0x22;
  14. const byte Terminal_Controller_FirmwareUpdateLen = 250;
  15. const byte Terminal_Reset = 0x0A;
  16. const byte Terminal_BootStart = 0x0B;
  17. public Boolean HeaderCheck(byte[] data)
  18. {
  19. Boolean ret = false;
  20. if(data[0] == 0xbe)
  21. {
  22. ret = true;
  23. }
  24. return ret;
  25. }
  26. public bool CrcCheck(byte[] data)
  27. {
  28. bool ret = false;
  29. Crc16 crc = new Crc16();
  30. byte length,crcindex;
  31. try
  32. {
  33. length = data[2];
  34. }
  35. catch
  36. {
  37. return ret;
  38. }
  39. crcindex = (byte)(length + 1);
  40. try
  41. {
  42. ret = crc.STH30_CheckCrc(data, length, data[crcindex]);
  43. }
  44. catch(Exception e)
  45. {
  46. return ret;
  47. }
  48. return ret;
  49. }
  50. Serial serial;
  51. Main_Form main_Form; //= new Main_Form();
  52. public void Recv_dataCheck(object serial,object main_form, object fileDownload, byte[] data)
  53. {
  54. Boolean DataCheck;
  55. Bluecell_BootProtocol bluecell_BootProtocol = new Bluecell_BootProtocol();
  56. this.serial = (Serial)serial;
  57. this.main_Form = (Main_Form)main_form;
  58. byte seq;
  59. try
  60. {
  61. seq = data[1];
  62. }
  63. catch {
  64. return;
  65. }
  66. if (fileDownload != null)
  67. {
  68. this.fileDownload = (Update_Serial)fileDownload;
  69. }
  70. else
  71. {
  72. this.fileDownload = new Update_Serial();
  73. }
  74. /* * * * * * * * * * * * * *파일 다운로드 부분* * * * * * * * * * * * * */
  75. if (this.fileDownload.Update_ready == true)
  76. {
  77. DataCheck = HeaderCheck(data);
  78. if (DataCheck == false)
  79. {
  80. return;
  81. }
  82. DataCheck = CrcCheck(data);
  83. if(DataCheck == false)
  84. {
  85. return;
  86. }
  87. switch (seq)
  88. {
  89. case Terminal_Reset:
  90. case Terminal_BootStart:
  91. case Terminal_Controller_Update_Ack:
  92. case Terminal_Controller_Update_Nak:
  93. //int DataAckcnt = data[(int)Bluepro_t.bluecell_type + 1];
  94. //this.fileDownload.UpdateFileSend(data, DataAckcnt);
  95. this.fileDownload.Termianl__Operate(data);
  96. break;
  97. case 3:
  98. break;
  99. default:
  100. break;
  101. }
  102. }
  103. else/* * * * * * * * * * * * * *API RECV 부분 * * * * * * * * * * * * * */
  104. {
  105. DataCheck = HeaderCheck(data);
  106. if (DataCheck == false)
  107. {
  108. return;
  109. }
  110. DataCheck = CrcCheck(data);
  111. if (DataCheck == false)
  112. {
  113. return;
  114. }
  115. bluecell_BootProtocol.Bluecell_RF_Status_Get(this.serial,this.main_Form, data);
  116. }
  117. }
  118. }
  119. }