#include "hdf.h" void TOUCHUAN_UART_NUM(uint8_t* pTx) ; void Get_ZN_hdf_data(void) ; HDF_Inf hdf_inf[SENSOR_DEEP]; uint16_t Uart_len_TouChuan= 0; uint8_t Get_DFState(uint8_t Cang_Num) //查询仓底阀状态 { HDF_Inf* phdf = hdf_inf; return !phdf[Cang_Num].HDF_OFData[0]; } void DF_State(uint8_t Cang_Num) //查询仓底阀状态 { Cang_Inf* pcang = &cang_inf; HDF_Inf* phdf = hdf_inf; uint8_t i = 0,j = 0,HDF_MAX = 3; if(pcang->HDF_Type == 0) //底阀监测器 { if(i < HDF_BUF_DEP) { phdf[1].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_14); phdf[2].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15); phdf[3].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_6); phdf[4].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_7); phdf[5].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_8); phdf[6].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9); phdf[7].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8); phdf[8].HDF_OFData[i] = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11); i++; } if(i >= HDF_BUF_DEP) i = 0; } else if(pcang->HDF_Type == 1) //其他底阀监测 { phdf[1].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_14); phdf[2].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_15); phdf[3].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_6); phdf[4].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_7); phdf[5].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_8); phdf[6].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9); phdf[7].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8); phdf[8].HDF_OFData[0] = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11); /* for(j = 1;j <= HDF_MAX;j++) //SLM HDF_MAX { if(phdf[j].HDF_ErrorCnt > phdf->HDF_StateKeepNum) phdf[j].HDF_Error = 1; }*/ } } void Get_ZN_hdf_data(void) { uint8_t receive_error = 0; // uint16_t ModbusCRC = 0; // Cang_Inf* pcang = &cang_inf; HDF_Inf* phdf = hdf_inf; phdf[USART1_RX_BUF002[0]-0x20].RTData_Num = 1; if(USART3_RX_BUF002[0]==0x21||USART3_RX_BUF002[0]==0x22) { if(USART3_RX_BUF002[1]!=0x03&&USART3_RX_BUF002[1]!=0x06) //校验读写属性 { receive_error = 1; } /* else if(ModbusCRC != LIB_CRC_MODBUS(USART3_RX_BUF002,6)) //校验CRC { receive_error = 0; }*/ if((USART3_RX_BUF002[1] == 0x03)&&(receive_error == 0)) //读取数据返回 { phdf[USART3_RX_BUF002[0]-0x20].HDF_ErrorCnt = 0; phdf[USART3_RX_BUF002[0]-0x20].RTData_Num = 1; // if(pcang->HDF_Type == 1) // phdf[USART3_RX_BUF002[0]-0x20].RTData_Num = 1; //海底阀开关数据 phdf[USART3_RX_BUF002[0]-0x20].HDF_OFData[0] = USART3_RX_BUF002[3] ; // phdf[USART3_RX_BUF002[0]-0x20].HDF_OFState = USART3_RX_BUF002[4] ; __NOP(); } else if((USART3_RX_BUF002[1] == 0x06)&&(receive_error == 0)) { USART3_RX_BUF002[3] = USART3_RX_BUF002[3] ; } } else if(USART3_RX_BUF002[0]==0x23||USART3_RX_BUF002[0]==0x24) { if(USART3_RX_BUF002[1]!=0x03&&USART3_RX_BUF002[1]!=0x06) //校验读写属性 { receive_error = 1; } /* else if(ModbusCRC != LIB_CRC_MODBUS(USART3_RX_BUF002,6)) //校验CRC { receive_error = 0; }*/ if((USART3_RX_BUF002[1] == 0x03)&&(receive_error == 0)) //读取数据返回 { phdf[USART3_RX_BUF002[0]-0x20].HDF_ErrorCnt = 0; phdf[USART3_RX_BUF002[0]-0x20].RTData_Num = 1; // if(pcang->HDF_Type == 1) // phdf[USART3_RX_BUF002[0]-0x20].RTData_Num = 1; //海底阀开关数据 phdf[USART3_RX_BUF002[0]-0x22].HDF_Data[1] = 1;//USART3_RX_BUF002[3] ; phdf[USART3_RX_BUF002[0]-0x22].HDF_OFState1 = 1;//USART3_RX_BUF002[4] ; __NOP(); } else if((USART3_RX_BUF002[1] == 0x06)&&(receive_error == 0)) { USART3_RX_BUF002[3] = USART3_RX_BUF002[3] ; } } } void TOUCHUAN_UART_NUM(uint8_t* pTx) { KZQ_Inf* pkzq = &kzq_inf; // Cang_Inf* pcang = &cang_inf; // uint8_t i = 0; // uint16_t ModBusCRC = 0; // uint8_t receive_error = 0; // uint16_t ModbusCRC = 0; // HDF_Inf* phdf = hdf_inf; uint16_t Uart_num = 0; Uart_num=USART2_RX_BUF002[18]; Uart_num = Uart_num << 8; Uart_num |= USART2_RX_BUF002[19]; if(Uart_num == 0x0003) {//if(Uart_num == 0x0001) if(pkzq->USE_XYF == 0) {//if(pkzq->USE_XYF == 0) if(pkzq->data_buf[7] == 0x06) {//if(pkzq->data_buf[7] == 0x06) pkzq->USE_XYF = 1; Uart_len_TouChuan=USART2_RX_BUF002[20]; Uart_len_TouChuan = Uart_len_TouChuan << 8; Uart_len_TouChuan |= USART2_RX_BUF002[21]; memcpy(ALL_TxBuf,&USART2_RX_BUF002[22],Uart_len_TouChuan); }//if(pkzq->data_buf[7] == 0x06) }//if(pkzq->USE_XYF == 0) }//if(Uart_num == 0x0001) }