mcu_ctrl_board.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Author: NiuJiuRu
  2. // Email: niujiuru@qq.com
  3. // Date: 2025-08-19
  4. #ifndef __MCU_CTRL_BOARD_H__
  5. #define __MCU_CTRL_BOARD_H__
  6. #include "../swapi/include_swapiLib.h"
  7. // 告诉编译器使用一字节内存对齐
  8. #pragma pack(push, 1)
  9. // 传感器采集的环境数据(小端序)
  10. typedef struct
  11. {
  12. uint8_t timestamp[4]; // 本地时间(秒, 存在"​​2038-01-19 03:14:07 UTC​​"溢出风险)
  13. uint8_t temperature[2]; // 温度, 单位: 0.1°C
  14. uint8_t humidity[2]; // 湿度, 单位: 0.1%RH
  15. uint8_t illuminance[4]; // 光照, 单位: lux
  16. uint8_t voltage[2]; // 电压, 单位: 0.1V
  17. } SensorEnvData;
  18. // 恢复之前原有内存字节对齐方式
  19. #pragma pack(pop)
  20. #ifdef __cplusplus
  21. extern "C"
  22. {
  23. #endif
  24. // 打开与MCU控制板的串口通讯, 返回: 0成功, <0时失败
  25. int MCBComInit();
  26. // 关闭与MCU控制板的串口通讯, 返回: 0成功, <0时失败
  27. int MCBComExit();
  28. // 配置单片机控制板-运行参数, 返回: 0成功, <0时失败
  29. int MCBConfParameters(uint32_t version, uint8_t ctrl_mode, uint8_t light_duration, uint8_t start_hour, uint8_t end_hour, uint16_t tp_intvl_min);
  30. // 设置工作状态位图-固件运维, 返回: 0成功, <0时失败
  31. int MCBSetMNTStateBit(uint8_t state/*1bit位, 0x00:空闲, 0x01:运维中*/);
  32. // 设置工作状态位图-相机拍照, 返回: 0成功, <0时失败
  33. int MCBSetCamStateBit(uint8_t state/*2bit位, 0x00:空闲, 0x01:拍照中, 0x10:上传中, 0x11:保留*/);
  34. // 设置工作状态位图-环境数据, 返回: 0成功, <0时失败
  35. int MCBSetEnvStateBit(uint8_t state/*2bit位, 0x00:空闲, 0x01:收集中, 0x10:上传中, 0x11:保留*/);
  36. // 请求获取当前实时-环境数据, 返回: 0成功, <0时失败
  37. int MCBReqEnvCurData();
  38. #ifdef _DEBUG
  39. void *MCBGetSerialHandle(); // 仿真串口输入, 模拟单元测试时使用
  40. #endif
  41. #ifdef __cplusplus
  42. }
  43. #endif
  44. #endif // __MCU_CTRL_BOARD_H__