99 lines
2.4 KiB
C
99 lines
2.4 KiB
C
/***
|
||
* @Author: mbw
|
||
* @Date: 2024-12-09 11:40:04
|
||
* @LastEditors: mbw && 1600520629@qq.com
|
||
* @LastEditTime: 2024-12-12 17:50:12
|
||
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\inc\bsp_valve.h
|
||
* @Description:
|
||
* @
|
||
* @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
|
||
*/
|
||
#ifndef __BSP_VALVE_H__
|
||
#define __BSP_VALVE_H__
|
||
|
||
#include "CH58x_common.h"
|
||
|
||
#define MAX_VALVE_NUM 8
|
||
|
||
typedef enum
|
||
{
|
||
kValveCmdCtr = 0X01,
|
||
kValveCmdReg,
|
||
kValveCmdRem,
|
||
kValveCmdRep,
|
||
kValveEventStatus,//阀门状态包
|
||
kValveCmdMax,
|
||
} ValveCmdType;
|
||
|
||
typedef enum
|
||
{
|
||
WirelessValveClose = 0x01,
|
||
WirelessValveOpen,
|
||
} WireLessState;
|
||
|
||
// 阀门类型
|
||
typedef enum
|
||
{
|
||
kTyq = 0X01,
|
||
kZbf,
|
||
kDcf,
|
||
} TeVavleType;
|
||
|
||
typedef enum
|
||
{
|
||
kCmdCfg = 0X01,
|
||
kCmdCloseVavle,
|
||
kCmdOpenVavle,
|
||
kCmdData,
|
||
} TeFrameCmd;
|
||
|
||
/*
|
||
无线调压阀编号
|
||
无线调压阀 MAC 地址
|
||
无线调压阀连接状态
|
||
无线调压阀开关状态
|
||
无线调压阀温度
|
||
无线调压阀进口压力
|
||
无线调压阀出口压力
|
||
无线调压阀大气压
|
||
*/
|
||
struct __attribute__((packed)) valve_data
|
||
{
|
||
uint8_t valve_id;
|
||
uint8_t valve_mac[6];
|
||
TeVavleType type; // 阀门类型
|
||
|
||
uint8_t bat; // 1B 电池电压 30=3V,18=1.8V
|
||
int8_t temp; // 1B 阀门温度 有符号整数 25 ℃
|
||
uint8_t hum; // 1B 阀门湿度 %RH
|
||
|
||
// uint8_t status; // 1B 阀门工作状态 超欠压、过流
|
||
// uint8_t connct_status; // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接
|
||
// uint8_t switch_status; // 1B 阀门开关状态 0=未知 1=关闭 2=关闭过,未按按键恢复 3=关闭过,按下了恢复键 4=打开
|
||
|
||
// uint32_t in_pressure; // 4B 阀门入口压力 Pa
|
||
// uint32_t out_pressure; // 4B 阀门出口压力 Pa
|
||
// uint32_t atm_pressure; // 4B 阀门大气压力 Pa
|
||
};
|
||
|
||
typedef struct valve_data_list
|
||
{
|
||
uint8_t valve_num;
|
||
struct valve_data valve_data[MAX_VALVE_NUM];
|
||
} valve_data_list_t;
|
||
|
||
extern valve_data_list_t valve_list;
|
||
|
||
void BSP_Valve_Init(void);
|
||
int BSP_Bt_Valve_Ctr(uint8_t *data, uint8_t len);
|
||
int BSP_Bt_Register_Valve(uint8_t *data, uint8_t len);
|
||
int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len);
|
||
int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len);
|
||
void BSP_Bt_Valve_Updata(void);
|
||
|
||
int BSP_Bt_Valve_Ctr_Resp(uint8_t id, uint8_t *mac_addr, WireLessState status);
|
||
|
||
int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state);
|
||
|
||
#endif // ! __BSP_VALVE_H__
|