// 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__