From 916c22b7b6c6e825cc62b54776711d8ebc1fc5ee Mon Sep 17 00:00:00 2001 From: xsq1-admin <1056470187@qq.com> Date: Fri, 21 Mar 2025 15:58:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=9A=E5=BA=A6=E4=BC=A0=E6=84=9F=E5=99=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 厚度传感器ch文件/thickness_sensor.c | 78 ++++++++++++++++++++++ 厚度传感器ch文件/thickness_sensor.h | 17 +++++ 2 files changed, 95 insertions(+) create mode 100644 厚度传感器ch文件/thickness_sensor.c create mode 100644 厚度传感器ch文件/thickness_sensor.h diff --git a/厚度传感器ch文件/thickness_sensor.c b/厚度传感器ch文件/thickness_sensor.c new file mode 100644 index 0000000..b815941 --- /dev/null +++ b/厚度传感器ch文件/thickness_sensor.c @@ -0,0 +1,78 @@ +/* + * thickness_sensor.c + * + * Created on: Mar 21, 2025 + * Author: SQ-X + */ + +#include "thickness_sensor.h" +#include "BHBF_ROBOT.h" +#include "bsp_Error.pb.h" + +void decode_thickness(uint8_t *buffer, uint16_t length); +void GF_TS_Inquiry(); + +int32_t* ThicknessValue; +struct UARTHandler *Thickness_sensor; +DispacherController *Thickness_sensor_dispacherController; +void thickness_sensor_intialize(struct UARTHandler *Handler) +{ + //uartHandler_intialize(&Force_sensor,Handler,10); + Thickness_sensor = Handler; + Thickness_sensor->UART_Decode=decode_thickness; + Thickness_sensor->Wait_time = 10; //等待10ms 最低不要低于4; + Thickness_sensor_dispacherController=Handler->dispacherController; + Thickness_sensor_dispacherController->DispacherCallTime = 50;//10 是100ms 难道这个2ms的定时器是10ms的? + LOG("angle_encoder_intialize"); + //log_info("angle_encoder_intialize"); + Thickness_sensor_dispacherController->Add_Dispatcher_List(Thickness_sensor_dispacherController,GF_TS_Inquiry); + + + HardWareErrorController->Add_PCOMHardWare(HardWareErrorController,"thickness_sensor",0,Thickness_sensor); + //uartHandler->Insert_HardWare_Entry_UART + LOG("steering_engine_intialize"); +} + +uint8_t Inquiry_Order1[40]={0XFE, 0XE1, 0X90, 0X0D, 0X00, 0X01, 0X00, 0X00,0x01,0x01,0x06, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00,0x0C, + 0x45,0x4D,0x32,0x34,0x31,0x31,0x31,0x38,0x53,0x30,0x30,0x31,0xC8,0x43,0x0D,0x90,0xE1,0xFE };//40个 +void GF_TS_Inquiry() +{ + +// MB_ReadHoldingReg(&Thickness_sensor->Tx_Buf, +// &Thickness_sensor->TxCount, 1, 0x07D0, 2); //03 command ; read 2 registers + for(int i=0;i<40;i++) + { + Thickness_sensor->Tx_Buf[i]=Inquiry_Order1[i]; + } + + Thickness_sensor->TxCount=40; + Thickness_sensor->UART_Tx(Thickness_sensor);//send the data from the modbus command; + LOG("GF_TS_Inquiry Second Version"); + +} + +uint8_t data1[42]; +void decode_thickness(uint8_t *buffer, uint16_t length) +{ + memcpy(data1,buffer,length); + LOG("start decoding and the length is %d",length); + /* CRC 校验 */ + uint16_t crc_check = ((buffer[36] << 8) | buffer[37]); + /* CRC 校验正确 */ + if (crc_check == MB_CRC16(&buffer[22], 14)) + { + *ThicknessValue= (int32_t)((int32_t)buffer[34]<<8|buffer[35]); + + HardWareErrorController->Set_PCOMHardWare(HardWareErrorController,"thickness_sensor",1); + LOG("decode_force succeeded and the thickness is %d",*ForceValue); + + } + else + { + //Decode Error; + //log_error("wire sensor decoding failed"); + LOGFF(DL_ERROR,"thickness_sensor decoding failed"); + + } + +} diff --git a/厚度传感器ch文件/thickness_sensor.h b/厚度传感器ch文件/thickness_sensor.h new file mode 100644 index 0000000..e6d2085 --- /dev/null +++ b/厚度传感器ch文件/thickness_sensor.h @@ -0,0 +1,17 @@ +/* + * thickness_sensor.h + * + * Created on: Mar 21, 2025 + * Author: SQ-X + */ + +#ifndef INC_THICKNESS_SENSOR_H_ +#define INC_THICKNESS_SENSOR_H_ + +#include "bsp_MB_host.h" +extern void thickness_sensor_intialize(struct UARTHandler *Handler); +extern int32_t* ThicknessValue; + + + +#endif /* INC_THICKNESS_SENSOR_H_ */