This commit is contained in:
lmx
2025-12-09 16:30:25 +08:00
parent 3f02a9f9be
commit 2f4e1d7e5b
14 changed files with 647 additions and 42 deletions

View File

@ -49,6 +49,7 @@
#include "./sensor/MMC56.h"
#include "./sensor/BMP280.h"
#include "./sensor/AK8963.h"
#include "./sensor/WF282A.h"
#include "./calculate/skiing_tracker.h"
///////////////////////////////////////////////////////////////////////////////////////////////////
//宏定义
@ -83,13 +84,13 @@ extern u8 init_ok;
extern u8 sniff_out;
unsigned char xtell_bl_state=0; //存放经典蓝牙的连接状态0断开1是连接
u8 bt_newname =0;
unsigned char xt_ble_new_name[9] = "skiing_2F";
unsigned char xt_ble_new_name[9] = "skiing_D7";
static u16 play_poweron_ok_timer_id = 0;
// -- 初始化标志位 --
u8 SC7U22_init = 0x10; //六轴是否初始化
u8 MMC5603nj_init = 0x20; //地磁是否初始化
u8 BMP280_init = 0x30; //气压计初始化
u8 barometer_init = 0x30; //气压计初始化
u8 foot_init = 0x40; //数据来源初始化左脚0x41 or 右脚0x42
// -- 线程id --
@ -232,6 +233,7 @@ void le_user_app_event(u8* buffer){
send_data_to_ble_client(&send2_0,5);
// start_calibration();
}else if(buffer[4] == 0x02){ //地磁
if(mmc5603nj_init() == 0){
MMC5603nj_init = 0x20;
send2_0[4] = MMC5603nj_init; //地磁初始化失败
@ -242,16 +244,29 @@ void le_user_app_event(u8* buffer){
send2_0[4] = MMC5603nj_init; //地磁初始化成功
send_data_to_ble_client(&send2_0,5);
}else if(buffer[4] == 0x03){ //气压计初始化
if(bmp280_init() != 0){
#if BMP280
if(BMP280_init() != 0){
//初始化失败
BMP280_init = 0x30;
send2_0[4] = BMP280_init;
barometer_init = 0x30;
send2_0[4] = barometer_init;
send_data_to_ble_client(&send2_0,5);
return;
}
BMP280_init = 0x31;
send2_0[4] = BMP280_init; //气压计初始化成功
barometer_init = 0x31;
send2_0[4] = barometer_init; //气压计初始化成功
send_data_to_ble_client(&send2_0,5);
#else
if(WF_Init() != 0){
//初始化失败
barometer_init = 0x30;
send2_0[4] = barometer_init;
send_data_to_ble_client(&send2_0,5);
return;
}
barometer_init = 0x31;
send2_0[4] = barometer_init; //气压计初始化成功
send_data_to_ble_client(&send2_0,5);
#endif
}
break;
case 0x01: //设置传感器采集对象左脚or右脚
@ -271,13 +286,13 @@ void le_user_app_event(u8* buffer){
}else if(buffer[4] == 0x02){ //地磁
send2_2[4] = MMC5603nj_init;
}else if(buffer[4] == 0x03){ //气压计
send2_2[4] = BMP280_init;
send2_2[4] = barometer_init;
}
send_data_to_ble_client(&send2_2,5);
break;
case 0x03: //开始/停止滑雪计算
if(buffer[4] == 0x01){ //开始滑雪计算
if(SC7U22_init == 0x10 || MMC5603nj_init == 0x20 || BMP280_init == 0x30){ //传感器未进行初始化
if(SC7U22_init == 0x10 || MMC5603nj_init == 0x20 || barometer_init == 0x30){ //传感器未进行初始化
u8 send2_3[5] = {0xBB,0xBE,0x02,0x00,0x00};
send_data_to_ble_client(&send2_3,5);
return;
@ -366,15 +381,15 @@ void le_user_app_event_handler(struct sys_event* event){
send2_0[4] = MMC5603nj_init; //地磁初始化成功
send_data_to_ble_client(&send2_0,5);
}else if(event->u.app.buffer[4] == 0x03){ //气压计初始化
if(bmp280_init() != 0){
if(BMP280_init() != 0){
//初始化失败
BMP280_init = 0x30;
send2_0[4] = BMP280_init;
barometer_init = 0x30;
send2_0[4] = barometer_init;
send_data_to_ble_client(&send2_0,5);
return;
}
BMP280_init = 0x31;
send2_0[4] = BMP280_init; //气压计初始化成功
barometer_init = 0x31;
send2_0[4] = barometer_init; //气压计初始化成功
send_data_to_ble_client(&send2_0,5);
}
break;
@ -395,13 +410,13 @@ void le_user_app_event_handler(struct sys_event* event){
}else if(event->u.app.buffer[4] == 0x02){ //地磁
send2_2[4] = MMC5603nj_init;
}else if(event->u.app.buffer[4] == 0x03){ //气压计
send2_2[4] = BMP280_init;
send2_2[4] = barometer_init;
}
send_data_to_ble_client(&send2_2,5);
break;
case 0x03: //开始/停止滑雪计算
if(event->u.app.buffer[4] == 0x01){ //开始滑雪计算
if(SC7U22_init == 0x10 || MMC5603nj_init == 0x20 || BMP280_init == 0x30){ //传感器未进行初始化
if(SC7U22_init == 0x10 || MMC5603nj_init == 0x20 || barometer_init == 0x30){ //传感器未进行初始化
u8 send2_3[5] = {0xBB,0xBE,0x02,0x00,0x00};
send_data_to_ble_client(&send2_3,5);
return;