| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Author: NiuJiuRu
- // Email: niujiuru@qq.com
- // Date: 2025-08-19
- #ifndef __MCU_CTRL_BOARD_H__
- #define __MCU_CTRL_BOARD_H__
- #include "../swapi/include_swapiLib.h"
- // 告诉编译器使用一字节内存对齐
- #pragma pack(push, 1)
- // 传感器采集的环境数据(小端序)
- typedef struct
- {
- uint8_t timestamp[4]; // 本地时间(秒, 存在"2038-01-19 03:14:07 UTC"溢出风险)
- uint8_t temperature[2]; // 温度, 单位: 0.1°C
- uint8_t humidity[2]; // 湿度, 单位: 0.1%RH
- uint8_t illuminance[4]; // 光照, 单位: lux
- uint8_t voltage[2]; // 电压, 单位: 0.1V
- } SensorEnvData;
- // 恢复之前原有内存字节对齐方式
- #pragma pack(pop)
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- // 打开与MCU控制板的串口通讯, 返回: 0成功, <0时失败
- int MCBComInit();
- // 关闭与MCU控制板的串口通讯, 返回: 0成功, <0时失败
- int MCBComExit();
- // 配置单片机控制板-运行参数, 返回: 0成功, <0时失败
- 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);
- // 设置工作状态位图-固件运维, 返回: 0成功, <0时失败
- int MCBSetMNTStateBit(uint8_t state/*1bit位, 0x00:空闲, 0x01:运维中*/);
- // 设置工作状态位图-相机拍照, 返回: 0成功, <0时失败
- int MCBSetCamStateBit(uint8_t state/*2bit位, 0x00:空闲, 0x01:拍照中, 0x10:上传中, 0x11:保留*/);
- // 设置工作状态位图-环境数据, 返回: 0成功, <0时失败
- int MCBSetEnvStateBit(uint8_t state/*2bit位, 0x00:空闲, 0x01:收集中, 0x10:上传中, 0x11:保留*/);
- // 请求获取当前实时-环境数据, 返回: 0成功, <0时失败
- int MCBReqEnvCurData();
- #ifdef _DEBUG
- void *MCBGetSerialHandle(); // 仿真串口输入, 模拟单元测试时使用
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif // __MCU_CTRL_BOARD_H__
|