差气压计的蓝牙协议

This commit is contained in:
lmx
2025-11-21 17:10:36 +08:00
parent 591e7632d2
commit 91b08dbe47
9 changed files with 146 additions and 49 deletions

View File

@ -101,6 +101,7 @@ extern void SC7U22_static_calibration(void);
extern void create_process(u16* pid, const char* name, void *priv, void (*func)(void *priv), u32 msec);
extern void close_process(u16* pid,char* name);
extern void start_collect_fuc(void);
extern void BLE_send_fuc(void);
///////////////////////////////////////////////////////////////////////////////////////////////////
/*
* 模式状态机, 通过start_app()控制状态切换
@ -225,51 +226,55 @@ void le_user_app_event_handler(struct sys_event* event){
if (SL_SC7U22_Config() == 0) {
send2_0[4] = 0x00; //初始化失败
SC7U22_init = 0;
send_data_to_ble_client(&send2_0,strlen(send2_0));
break;
send_data_to_ble_client(&send2_0,5);
return;
}
create_process(&SC7U22_calibration_id,"SC7U22_calibration",NULL,SC7U22_static_calibration,10);
}else if(event->u.app.buffer[4] == 0x02){ //地磁
if(mmc5603nj_init() == 0){
MMC5603nj_init = 0;
break;
send2_0[4] = 0x02; //地磁初始化失败
send_data_to_ble_client(&send2_0,5);
return;
}
MMC5603nj_init = 1;
send2_0[4] = 0x03; //地磁初始化失败
send_data_to_ble_client(&send2_0,strlen(send2_0));
send2_0[4] = 0x03; //地磁初始化成功
send_data_to_ble_client(&send2_0,5);
}
break;
case 0x01: //数据包类型为:获取指定传感器初始化状态
u8 send2_1[5] = {0xBB,0xBE,0x02,0x01,0x00};
u8 send2_1[5] = {0xBB,0xBE,0x02,0x00,0x00};
if(event->u.app.buffer[4] == 0x01){ //六轴
send2_1[4] = SC7U22_init;
}else if(event->u.app.buffer[4] == 0x02){ //地磁
send2_1[4] = MMC5603nj_init + 2;
}
send_data_to_ble_client(&send2_1,strlen(send2_1));
send_data_to_ble_client(&send2_1,5);
break;
case 0x02: //开始/停止滑雪计算
case 0x02: //开始/停止滑雪计算
if(event->u.app.buffer[4] == 0x01){ //开始滑雪计算
if(SC7U22_init == 0 || MMC5603nj_init == 0){ //传感器未进行初始化
u8 send2_2[5] = {0xBB,0xBE,0x02,0x01,0x00};
send_data_to_ble_client(&send2_2,strlen(send2_2));
u8 send2_2[5] = {0xBB,0xBE,0x02,0x00,0x00};
send_data_to_ble_client(&send2_2,5);
send2_2[4] = 0x02;
send_data_to_ble_client(&send2_2,strlen(send2_2));
send_data_to_ble_client(&send2_2,5);
return;
}
create_process(&start_collect_fuc_id,"start_collect",NULL,start_collect_fuc,10);
create_process(&BLE_send_fuc_id,"BLE_send_fuc",NULL,BLE_send_fuc,1);
}else if(event->u.app.buffer[4] == 0x02){ //停止滑雪计算
close_process(&start_collect_fuc_id,"start_collect");
close_process(&BLE_send_fuc_id,"BLE_send_fuc");
}
break;
}
}
}
break;
break;
default:
xlog("%d\n",event->type);
break;
xlog("%d\n",event->type);
break;
}