#include "sensor_handle.h" #include "modbus_handle.h" //#include #define ANDERSON_temp1 0x0400 #define ANDERSON_temp2 0x0401 /// @brief 获取温湿度值 /// @param manger /// @param saddr /// @param temp /// @param humi /// @return int _g_sensor_get_temperature_value(void* manger,int saddr,float* temp,float* humi) { int ret = 0 ; unsigned short data_temp[2] = {0}; ret = g_modbus_read_x_reg(manger,saddr,0,2,data_temp); if(ret<=0) return -1 ; //解算湿度值 *humi = data_temp[0]/10.0 ; //解算温度值 *temp = data_temp[1]/10.0 ; return 0; } int _g_sensor_get_temperature_value_ANDERSON(void* manger,int saddr,float* temp,float* humi) { int ret = 0 ; unsigned short data_temp[2] = {0}; ret = g_modbus_read_input_reg(manger,saddr,0,2,data_temp); if (ret <= 0) { return -1; } //解算湿度值 *humi = data_temp[1]/10.0 ; //解算温度值 *temp = data_temp[0]/10.0 ; return 0; } int _g_sensor_get_D_temperature_value_ANDERSON(void* manger,int saddr,float* temp1,float* temp2) { int ret = 0 ; unsigned short data_temp[1] = {0}; ret = g_modbus_read_input_reg(manger,saddr,ANDERSON_temp1,1,data_temp); if (ret <= 0) { return -1; } //解算湿度值 *temp1 = data_temp[0]/10.0 ; ret = g_modbus_read_input_reg(manger,saddr,ANDERSON_temp2,1,data_temp); if (ret <= 0) { return -1; } //解算温度值 *temp2 = data_temp[0]/10.0 ; return 0; } /// @brief 获取IO状态 /// @param saadr /// @param sts /// @return int _gsensor_get_io_status(int saddr,unsigned char* sts) { int val; struct gpiod_line *line; //获取系统IO状态 int ret = 0 ; //获取GPIO引脚的值 //val = gpiod_line_get_value(line); return 0; } /// @brief 设置IO输出状态 /// @param saadr /// @param sts /// @return int _gsensor_set_io_status(int saddr,unsigned char sts) { int val; return 0; } // int _gsensor_io_init(char* port_name,int saddr) // { // int val; // struct gpiod_chip *chip; // struct gpiod_line *line; // chip = gpiod_chip_open_by_number(0); // 0是设备编号,根据实际情况修改 // line = gpiod_chip_get_line(chip, X); // 替换X为引脚编号 // //设置GPIO引脚的方向 // gpiod_line_request_output(line, "gpio-example", GPIOD_LINE_ACTIVE_STATE_HIGH); // //设置GPIO引脚的值 // gpiod_line_set_value(line, 1); // 设置为高电平 // //读取GPIO引脚的值 // val = gpiod_line_get_value(line); // printf("GPIO value: %d\n", val); // // 关闭GPIO设备 // gpiod_line_release(line); // gpiod_chip_close(chip); // }