// // Created by EDZ on 25-9-11. // #ifndef E52_H #define E52_H #include "main.h" #include #include #include "string.h" #include "stdlib.h" // 设备信息结构体 typedef struct __attribute__((packed)){ uint8_t broadcast_type; // 广播类型 01:单波 02:广播 03:多播 uint8_t loraDeviceAddress_H; //设备地址高位 默认0 uint8_t loraDeviceAddress_L; //设备地址低位 默认0 uint8_t target_addr_H; // 目标地址高字节 默认FF uint8_t target_addr_L; // 目标地址低字节 默认FF uint8_t powerValue; //电量 默认0 uint8_t workMode; //工作模式 大概区分,发送模式,接受模式。 // uint8_t receivingNewDataFlag; //接收lora新数据 uint8_t sendBlDataFlag; //发送蓝牙数据 uint8_t newLoraDataFlag; //接收lora数据成功标志位。1:有新数据来。0.表示等待接收数据。后续可以改成队列类型。 uint16_t timeCount; //定时器计数 uint16_t forwardBLAndLoraDataDuration; //转发蓝牙数据持续时间高位ms } Device_structure; // 只声明变量,不定义变量,使用extern关键字 extern Device_structure deviceInfo; // 心跳数据结构体 typedef struct __attribute__((packed)){ uint8_t frame_header_H; // 帧头高字节 uint8_t frame_header_L; // 帧头低字节 uint8_t function_code; // 功能码 uint8_t badge_addr_high; //胸牌地址高字节 uint8_t badge_addr_low; //胸牌地址低字节 uint8_t broadcast_type; // 广播类型 uint8_t target_addr_H; // 目标地址高字节 uint8_t target_addr_L; // 目标地址低字节 uint8_t frame_tail_H; // 帧尾高字节 uint8_t frame_tail_L; // 帧尾低字节 } Heartbeat_structure; void E52_Heartbeat_Fun(void); // 发送蓝牙结构体 typedef struct __attribute__((packed)){ uint8_t frame_header_H; // 帧头高字节 uint8_t frame_header_L; // 帧头低字节 uint8_t function_code; // 功能码 uint8_t badge_addr_high; //胸牌地址高字节 uint8_t badge_addr_low; //胸牌地址低字节 uint8_t bl_data[8]; //蓝牙数据 uint8_t finish_send; // 是否完成发送 // uint8_t target_addr_H; // 目标地址高字节 // uint8_t target_addr_L; // 目标地址低字节 uint8_t frame_tail_H; // 帧尾高字节 uint8_t frame_tail_L; // 帧尾低字节 } SendBlData_structure; void E52_Send_Bl_Data_Fun(void); void E52_Analyze_Data(void); #endif //E52_H