| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- //
- // Created by EDZ on 25-9-11.
- //
- #ifndef E52_H
- #define E52_H
- #include "main.h"
- #include <stdio.h>
- #include <sys/types.h>
- #include "string.h"
- #include "stdlib.h"
- // 定义云端命令枚举,使命令含义更清晰
- typedef enum {
- IDLE = 0x00,
- REQUEST_BLUETOOTH_DATA = 0x03, // 请求发送蓝牙数据
- CONFIGURE_E52 = 0x07, // E52 配置命令
- E52_ENTER_SLEEP = 0x05, // E52 进入睡眠模式
- E52_HEARTBEAT = 0x08 // E52 心跳包命令
- } CloudCommand;
- typedef enum {
- TIMER_IDLE,
- TIMER_ENABLE,
- TIMER_DISABLE
- } TimerSTATUS;
- // 定义定时器操作类型
- typedef enum {
- TIMER_OP_START, // 启动定时器
- TIMER_OP_STOP // 停止定时器
- } Timer_Operation;
- typedef enum {
- BL_IDLE,
- BL_START,
- BL_STOP
- } BLSTATUS;
- // 设备信息结构体
- typedef struct __attribute__((packed)){
- uint8_t isReady; // 设备是否就绪
- 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 receivingNewDataFlag; //接收lora新数据
- //使能蓝牙收发数据
- uint8_t BlDataFlag; //发送蓝牙数据
- //lora接收到新的消息
- uint8_t newLoraDataFlag; //接收lora数据成功标志位。1:有新数据来。0.表示等待接收数据。后续可以改成队列类型。
- //后台的远程命令
- uint8_t commandFromCloud; //从云端接收到的命令 1.请求蓝牙数据,2.请求lora数据,3.睡眠 4,重新发送点卯数据
- //定时器相关
- uint8_t timerEnable; //定时器使能
- 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(uint8_t);
- // 发送SOS结构体
- 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 SOS_data; //蓝牙数据
- uint8_t finish_send; // 是否完成发送
- uint8_t target_addr_H; // 目标地址高字节
- uint8_t target_addr_L; // 目标地址低字节
- uint8_t frame_tail_H; // 帧尾高字节
- uint8_t frame_tail_L; // 帧尾低字节
- } SendSOS_structure;
- void E52_Send_SOS_Fun(void);
- void E52_Analyze_Data(void);
- #endif //E52_H
|