xyf.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #include "xyf.h"
  2. XYF_Inf xyf_inf[SENSOR_DEEP];
  3. uint16_t XYF_Max = 0;
  4. void XYF_Init(void)
  5. {
  6. Cang_Inf* pcang = &cang_inf;
  7. uint16_t Flash_buf[20] = {0};
  8. uint8_t i = 0;
  9. Flash_ReadBytes(Flash_buf,ADDR_XYFSENSOR_TYPE,1);
  10. if(Flash_buf[0] != 0xFFFF)
  11. pcang->XYF_Type = Flash_buf[0];
  12. Flash_ReadBytes(Flash_buf,ADDR_XYF_NUM,8);
  13. for(i = 0;i < pcang->Cang_Num;i++)
  14. {
  15. if(Flash_buf[i] != 0xFFFF)
  16. pcang->XYF_Num[i] = Flash_buf[i];
  17. }
  18. for(i = 0;i < pcang->Cang_Num;i++)
  19. XYF_Max +=pcang->XYF_Num[i];
  20. }
  21. void XYF_state(uint16_t CangNum)
  22. {
  23. XYF_Inf* pxyf = xyf_inf;
  24. uint8_t i = 0;//,j = 0;
  25. //for(i = 1;i <= 2;i++)//XYF_Max
  26. {
  27. // pxyf[i].XYF_State1 = 0;
  28. // pxyf[i].XYF_State2 = 0;
  29. // pxyf[i].XYF_Error = 0;
  30. // pxyf[i].XYF_StateCnt1 = 0;
  31. // pxyf[i].XYF_StateCnt2 = 0;
  32. i=CangNum;
  33. if(pxyf[i].XYF_Data1[0] == 0x01)
  34. {
  35. pxyf[i].XYF_StateCnt2 = 0;
  36. pxyf[i].XYF_StateCnt1++;
  37. if(pxyf[i].XYF_StateCnt1>=2)
  38. {
  39. pxyf[i].XYF_StateCnt1=0;
  40. pxyf[i].XYF_State1 = 0x01;
  41. }
  42. }
  43. if(pxyf[i].XYF_Data1[0] == 0x00)
  44. {
  45. pxyf[i].XYF_StateCnt1=0;
  46. pxyf[i].XYF_StateCnt2++;
  47. if(pxyf[i].XYF_StateCnt2>=2)
  48. {
  49. pxyf[i].XYF_StateCnt2=0;
  50. pxyf[i].XYF_State1 = 0x00;
  51. }
  52. }
  53. // else
  54. // {
  55. // pxyf[i].XYF_State1 = 0x00;
  56. // pxyf[i].XYF_StateCnt1=0;
  57. // pxyf[i].XYF_StateCnt2=0;
  58. // pxyf[i].XYF_ErrorCnt++;
  59. // }
  60. //
  61. if(pxyf[i].XYF_Data2[0] == 0x01)
  62. {
  63. pxyf[i].XYF_StateCnt4 = 0;
  64. pxyf[i].XYF_StateCnt3++;
  65. if(pxyf[i].XYF_StateCnt3>=2)
  66. {
  67. pxyf[i].XYF_StateCnt3 =0;
  68. pxyf[i].XYF_State2 = 0x01;
  69. }
  70. }
  71. if(pxyf[i].XYF_Data2[0] == 0x00)
  72. {
  73. pxyf[i].XYF_StateCnt3=0;
  74. pxyf[i].XYF_StateCnt4++;
  75. if(pxyf[i].XYF_StateCnt4>=2)
  76. {
  77. pxyf[i].XYF_StateCnt4=0;
  78. pxyf[i].XYF_State2 = 0x00;
  79. }
  80. }
  81. /* if(pxyf[i].XYF_Data2[0] == 0x01)
  82. pxyf[i].XYF_State2 = 0x01;
  83. else if(pxyf[i].XYF_Data2[0] == 0x00)
  84. pxyf[i].XYF_State2 = 0x00;
  85. else
  86. {
  87. pxyf[i].XYF_State2 = 0x00;
  88. pxyf[i].XYF_ErrorCnt++;
  89. }*/
  90. // if(pxyf[i].XYF_ErrorCnt > pxyf->XYF_StateKeepNum)//
  91. // pxyf[i].XYF_Error = 1;
  92. /*
  93. for(j = 0;j < XYF_BUF_DEP;j++)
  94. {
  95. if(pxyf[i].XYF_Data1[j] == 0x01)
  96. pxyf[i].XYF_StateCnt1++;
  97. else if(pxyf[i].XYF_Data1[j] == 0x00)
  98. pxyf[i].XYF_StateCnt1 = 0;
  99. else
  100. pxyf[i].XYF_ErrorCnt++;
  101. if(pxyf[i].XYF_Data2[j] == 0x01)
  102. pxyf[i].XYF_StateCnt2++;
  103. else if(pxyf[i].XYF_Data2[j] == 0x00)
  104. pxyf[i].XYF_StateCnt2 = 0;
  105. else
  106. pxyf[i].XYF_ErrorCnt++;
  107. }
  108. if(pxyf[i].XYF_StateCnt1 > pxyf->XYF_StateKeepNum)
  109. pxyf[i].XYF_State1 = 1;
  110. if(pxyf[i].XYF_StateCnt2 > pxyf->XYF_StateKeepNum)
  111. pxyf[i].XYF_State2 = 1;
  112. if(pxyf[i].XYF_ErrorCnt > pxyf->XYF_StateKeepNum)
  113. pxyf[i].XYF_Error = 1;
  114. */
  115. }
  116. }