BLE_TYQ_BJQ_CH584M/bsp/inc/bsp_valve.h

99 lines
2.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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