sensor_handle.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "sensor_handle.h"
  2. #include "modbus_handle.h"
  3. //#include <gpiod.h>
  4. /// @brief 获取温湿度值
  5. /// @param manger
  6. /// @param saddr
  7. /// @param temp
  8. /// @param humi
  9. /// @return
  10. int _g_sensor_get_temperature_value(void* manger,int saddr,float* temp,float* humi)
  11. {
  12. int ret = 0 ;
  13. unsigned short data_temp[2] = {0};
  14. ret = g_modbus_read_x_reg(manger,saddr,0,2,data_temp);
  15. if(ret<=0)
  16. return -1 ;
  17. //解算湿度值
  18. *humi = data_temp[0]/10.0 ;
  19. //解算温度值
  20. *temp = data_temp[1]/10.0 ;
  21. return 0;
  22. }
  23. // int _gsensor_io_init(char* port_name,int saddr)
  24. // {
  25. // int val;
  26. // struct gpiod_chip *chip;
  27. // struct gpiod_line *line;
  28. // chip = gpiod_chip_open_by_number(0); // 0是设备编号,根据实际情况修改
  29. // line = gpiod_chip_get_line(chip, X); // 替换X为引脚编号
  30. // //设置GPIO引脚的方向
  31. // gpiod_line_request_output(line, "gpio-example", GPIOD_LINE_ACTIVE_STATE_HIGH);
  32. // //设置GPIO引脚的值
  33. // gpiod_line_set_value(line, 1); // 设置为高电平
  34. // //读取GPIO引脚的值
  35. // val = gpiod_line_get_value(line);
  36. // printf("GPIO value: %d\n", val);
  37. // // 关闭GPIO设备
  38. // gpiod_line_release(line);
  39. // gpiod_chip_close(chip);
  40. // }