#include "xyf.h" XYF_Inf xyf_inf[SENSOR_DEEP]; uint16_t XYF_Max = 0; void XYF_Init(void) { Cang_Inf* pcang = &cang_inf; uint16_t Flash_buf[20] = {0}; uint8_t i = 0; Flash_ReadBytes(Flash_buf,ADDR_XYFSENSOR_TYPE,1); if(Flash_buf[0] != 0xFFFF) pcang->XYF_Type = Flash_buf[0]; Flash_ReadBytes(Flash_buf,ADDR_XYF_NUM,8); for(i = 0;i < pcang->Cang_Num;i++) { if(Flash_buf[i] != 0xFFFF) pcang->XYF_Num[i] = Flash_buf[i]; } for(i = 0;i < pcang->Cang_Num;i++) XYF_Max +=pcang->XYF_Num[i]; } void XYF_state(uint16_t CangNum) { XYF_Inf* pxyf = xyf_inf; uint8_t i = 0;//,j = 0; //for(i = 1;i <= 2;i++)//XYF_Max { // pxyf[i].XYF_State1 = 0; // pxyf[i].XYF_State2 = 0; // pxyf[i].XYF_Error = 0; // pxyf[i].XYF_StateCnt1 = 0; // pxyf[i].XYF_StateCnt2 = 0; i=CangNum; if(pxyf[i].XYF_Data1[0] == 0x01) { pxyf[i].XYF_StateCnt2 = 0; pxyf[i].XYF_StateCnt1++; if(pxyf[i].XYF_StateCnt1>=2) { pxyf[i].XYF_StateCnt1=0; pxyf[i].XYF_State1 = 0x01; } } if(pxyf[i].XYF_Data1[0] == 0x00) { pxyf[i].XYF_StateCnt1=0; pxyf[i].XYF_StateCnt2++; if(pxyf[i].XYF_StateCnt2>=2) { pxyf[i].XYF_StateCnt2=0; pxyf[i].XYF_State1 = 0x00; } } // else // { // pxyf[i].XYF_State1 = 0x00; // pxyf[i].XYF_StateCnt1=0; // pxyf[i].XYF_StateCnt2=0; // pxyf[i].XYF_ErrorCnt++; // } // if(pxyf[i].XYF_Data2[0] == 0x01) { pxyf[i].XYF_StateCnt4 = 0; pxyf[i].XYF_StateCnt3++; if(pxyf[i].XYF_StateCnt3>=2) { pxyf[i].XYF_StateCnt3 =0; pxyf[i].XYF_State2 = 0x01; } } if(pxyf[i].XYF_Data2[0] == 0x00) { pxyf[i].XYF_StateCnt3=0; pxyf[i].XYF_StateCnt4++; if(pxyf[i].XYF_StateCnt4>=2) { pxyf[i].XYF_StateCnt4=0; pxyf[i].XYF_State2 = 0x00; } } /* if(pxyf[i].XYF_Data2[0] == 0x01) pxyf[i].XYF_State2 = 0x01; else if(pxyf[i].XYF_Data2[0] == 0x00) pxyf[i].XYF_State2 = 0x00; else { pxyf[i].XYF_State2 = 0x00; pxyf[i].XYF_ErrorCnt++; }*/ // if(pxyf[i].XYF_ErrorCnt > pxyf->XYF_StateKeepNum)// // pxyf[i].XYF_Error = 1; /* for(j = 0;j < XYF_BUF_DEP;j++) { if(pxyf[i].XYF_Data1[j] == 0x01) pxyf[i].XYF_StateCnt1++; else if(pxyf[i].XYF_Data1[j] == 0x00) pxyf[i].XYF_StateCnt1 = 0; else pxyf[i].XYF_ErrorCnt++; if(pxyf[i].XYF_Data2[j] == 0x01) pxyf[i].XYF_StateCnt2++; else if(pxyf[i].XYF_Data2[j] == 0x00) pxyf[i].XYF_StateCnt2 = 0; else pxyf[i].XYF_ErrorCnt++; } if(pxyf[i].XYF_StateCnt1 > pxyf->XYF_StateKeepNum) pxyf[i].XYF_State1 = 1; if(pxyf[i].XYF_StateCnt2 > pxyf->XYF_StateKeepNum) pxyf[i].XYF_State2 = 1; if(pxyf[i].XYF_ErrorCnt > pxyf->XYF_StateKeepNum) pxyf[i].XYF_Error = 1; */ } }