暂存,测试主从连接

This commit is contained in:
stark1898y 2024-12-14 18:40:24 +08:00
parent 6a8040ca2f
commit c932d616cd
7 changed files with 93 additions and 29 deletions

View File

@ -17,7 +17,9 @@
"shell.h": "c",
"ch59x_common.h": "c",
"flexible_button.h": "c",
"stdint.h": "c"
"stdint.h": "c",
"bsp_flash.h": "c",
"bsp_valve.h": "c"
},
"marscode.chatLanguage": "cn"
}

View File

@ -24,8 +24,11 @@
#include "bsp_uart.h"
#include "log.h"
#include "bsp_i2c.h"
#include "bsp_adc.h"
#undef LOG_ENABLE
#define LOG_ENABLE 0
#define LOG_ENABLE 1
#undef LOG_TAG
#define LOG_TAG "peripheral"
@ -52,7 +55,7 @@
#define SBP_PHY_UPDATE_DELAY 2400
// What is the advertising interval when device is discoverable (units of 625us, 80=50ms)
#define DEFAULT_ADVERTISING_INTERVAL (160 * 10)
#define DEFAULT_ADVERTISING_INTERVAL (160 * 1)
// Limited discoverable mode advertises for 30.72s, and then stops
// General discoverable mode advertises indefinitely
@ -759,14 +762,61 @@ static void UploadPeriodicTask(void)
// // peripheralChar4Notify(notiData, SIMPLEPROFILE_CHAR4_LEN);
// peripheralChar4Notify(notiData, 5);
// counter++;
TsRawFrameData RawData;
static uint8_t humi = 0;
humi++;
BSP_VALVE_Generate_Data(&RawData, 30, 25, humi);
if (humi > 99)
#if 1
// VBAT
uint32_t CountBat = 0;
uint16_t adcBuff[40];
uint8_t i = 0;
// uint32_t countadc = 0;
uint16_t min_number = 0;
uint16_t max_number = 0;
ADC_InterBATSampInit();
for (i = 0; i < 20; i++)
{
humi = 0;
adcBuff[i] = ADC_ExcutSingleConver(); // 连续采样20次
}
for (i = 0; i < 20; i++)
{
CountBat += adcBuff[i];
if (i == 0)
{
min_number = adcBuff[i];
max_number = adcBuff[i];
}
min_number = ((min_number > adcBuff[i]) ? adcBuff[i] : min_number); // 软件滤波
max_number = ((max_number < adcBuff[i]) ? adcBuff[i] : max_number);
}
logDebug("min_number = %d, max_number = %d", min_number, max_number);
CountBat = (CountBat - min_number - max_number) / 18; // 删除最小与最大值
logDebug("AverageCountBat = %d", CountBat);
#endif
int ret;
GXHTC3C_Wakeup();
DelayMs(20);
GXHTC3C_GetStart();
DelayMs(20);
float humi, temp;
ret = GXHTC3C_GetTempHumi(&humi, &temp);
if (ret == 0)
{
logDebug("humi %.2f %, temp %.2f C", humi, temp);
}
GXHTC3C_Sleep();
TsRawFrameData RawData;
// static uint8_t humi;
// humi++;
BSP_VALVE_Generate_Data(&RawData, 0, CountBat/100, temp, humi);
// if (humi > 99)
// {
// humi = 0;
// }
peripheralChar4Notify(&RawData.buf[0], RawData.len);
}

View File

@ -157,7 +157,7 @@ void Main_Circulation()
*/
void BLE_AdvertiseEventCB(uint32_t timeUs)
{
// logDebug("BLE_AdvertiseEventCB");
logDebug("BLE_AdvertiseEventCB");
}
/*********************************************************************

View File

@ -119,7 +119,10 @@ int i2c_write_to(uint8_t addr_7bit, const uint8_t *data, uint8_t length,
int i2c_read_from(uint8_t addr_7bit, uint8_t *data, uint8_t length,
uint8_t send_stop, int timeout);
void GXHTC3C_Sleep(void);
void GXHTC3C_Wakeup(void);
void GXHTC3C_GetStart(void);
uint8_t GXHTC3C_GetTempHumi(float *humi, float *temp);
void BSP_I2C_DeInit(void);

View File

@ -2,7 +2,7 @@
* @Author : stark1898y 1658608470@qq.com
* @Date : 2024-12-12 15:55:38
* @LastEditors : stark1898y 1658608470@qq.com
* @LastEditTime : 2024-12-12 19:08:06
* @LastEditTime : 2024-12-14 18:08:58
* @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_valve.h
* @Description :
*
@ -55,19 +55,18 @@ typedef enum
typedef struct __attribute__((packed))
{
uint8_t 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=打开
uint8_t switch_status; // 1B 阀门开关状态 0=未知 1=关闭 2=关闭过,未按按键恢复 3=关闭过,按下了恢复键 4=打开
int8_t temp; // 1B 阀门温度 有符号整数 25 ℃
// uint32_t in_pressure; // 4B 阀门入口压力 Pa
// uint32_t out_pressure; // 4B 阀门出口压力 Pa
// uint32_t atm_pressure; // 4B 阀门大气压力 Pa
uint32_t in_pressure; // 4B 阀门入口压力 Pa
uint32_t out_pressure; // 4B 阀门出口压力 Pa
uint32_t atm_pressure; // 4B 阀门大气压力 Pa
uint8_t type; // 阀门类型
uint8_t bat; // 1B 电池电压 30=3V,18=1.8V
uint8_t hum; // 1B 阀门湿度 %RH
uint8_t rssi;
} TsValveData;
uint8_t CheckSum(const uint8_t *data, size_t len);
@ -76,7 +75,9 @@ void BSP_VAVLE_Init(void);
TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint16_t len);
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t bat, int8_t temp, uint8_t hum);
uint8_t GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p_src, uint8_t src_len);
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t switch_status, uint8_t bat, int8_t temp, uint8_t hum);
void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd, uint8_t status);
#endif // ! __BSP_VALVE_H__

View File

@ -181,7 +181,7 @@ TsFrameData* BSP_VAVLE_GetFrameData(uint8_t *data, uint16_t len)
// }
}
uint8_t _GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p_src, uint8_t src_len)
uint8_t GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *p_src, uint8_t src_len)
{
// 0xAA CMD/DATA/ DATA_LEN (DATA) checksum 0x55
pRawData->len = src_len + 5;
@ -204,16 +204,24 @@ uint8_t _GenerateRawFrame(TsRawFrameData *pRawData, uint8_t cmd, const uint8_t *
return 0;
}
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t bat, int8_t temp, uint8_t hum)
void BSP_VALVE_Generate_Data(TsRawFrameData *pRawData, uint8_t switch_status, uint8_t bat, int8_t temp, uint8_t hum)
{
TsValveData ValveData;
ValveData.switch_status = 0;
ValveData.temp = temp; // 阀门温度 有符号整数 25 ℃
ValveData.in_pressure = 1.6 * 1000000;
ValveData.out_pressure = 3000;
ValveData.atm_pressure = 96000;
ValveData.type = kTyq; // 阀门类型
ValveData.bat = bat; // 电池电压 30=3V,18=1.8V
ValveData.temp = temp; // 阀门温度 有符号整数 25 ℃
ValveData.hum = hum; // 阀门湿度 %RH
_GenerateRawFrame(pRawData, kCmdData, (uint8_t*)&ValveData, sizeof(ValveData));
ValveData.rssi = 0;
GenerateRawFrame(pRawData, kCmdData, (uint8_t*)&ValveData, sizeof(ValveData));
// logHexDumpAll(&pRawData->buf[0], pRawData->len);
}
@ -221,7 +229,7 @@ void BSP_VALVE_Generate_ValveResponse(TsRawFrameData *pRawData, TeFrameCmd cmd,
{
uint8_t data = 0;
data = status;
_GenerateRawFrame(pRawData, cmd, &data, 1);
GenerateRawFrame(pRawData, cmd, &data, 1);
// logHexDumpAll(&pRawData->buf[0], pRawData->len);
}

View File

@ -124,7 +124,7 @@
#define CLK_OSC32K 1 // 该项请勿在此修改必须在工程配置里的预处理中修改如包含主机角色必须使用外部32K
#endif
#ifndef BLE_MEMHEAP_SIZE
#define BLE_MEMHEAP_SIZE (1024*4)
#define BLE_MEMHEAP_SIZE (1024*7)
#endif
#ifndef BLE_BUFF_MAX_LEN
#define BLE_BUFF_MAX_LEN 251