cun
This commit is contained in:
@ -191,6 +191,106 @@ static int state_machine(struct application *app, enum app_state state, struct i
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//handle
|
||||
void le_user_app_event(u8* buffer){
|
||||
if (buffer[0] == 0xBE && buffer[1] == 0xBB) {
|
||||
if(buffer[2] == 0x01){ //后面的数据长度 1
|
||||
switch (buffer[3]){
|
||||
case 0x01:
|
||||
// extern void gsensor_test(void);
|
||||
// create_process(&gsensor_test_id,"gsensor_test",NULL,gsensor_test,1000);
|
||||
xlog("ota_test");
|
||||
cpu_reset();
|
||||
break;
|
||||
case 0xff: //测试
|
||||
u8 device_buff[10];
|
||||
u8 founds = 0;
|
||||
extern void i2c_scanner_probe(u8* device_addr, u8* found_number);
|
||||
i2c_scanner_probe(device_buff,&founds);
|
||||
for(int i = 0;i < founds;i++){
|
||||
send_data_to_ble_client(&device_buff,founds);
|
||||
}
|
||||
break;
|
||||
case 0x02:
|
||||
extern void test_func(void);
|
||||
test_func();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else if(buffer[2] == 0x02){ //后面数据长度为2
|
||||
switch (buffer[3]){ //数据包类型
|
||||
case 0x00: //数据包类型为:指定传感器初始化
|
||||
u8 send2_0[5] = {0xBB,0xBE,0x02,0x00,0x00};
|
||||
if(buffer[4] == 0x01){ //六轴
|
||||
// stop_calibration();
|
||||
if (SL_SC7U22_Config() == 0) {
|
||||
SC7U22_init = 0x10;
|
||||
}else{
|
||||
SC7U22_init = 0x11;
|
||||
}
|
||||
send2_0[4] = SC7U22_init;
|
||||
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; //地磁初始化失败
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
return;
|
||||
}
|
||||
MMC5603nj_init = 0x21;
|
||||
send2_0[4] = MMC5603nj_init; //地磁初始化成功
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
}else if(buffer[4] == 0x03){ //气压计初始化
|
||||
if(bmp280_init() != 0){
|
||||
//初始化失败
|
||||
BMP280_init = 0x30;
|
||||
send2_0[4] = BMP280_init;
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
return;
|
||||
}
|
||||
BMP280_init = 0x31;
|
||||
send2_0[4] = BMP280_init; //气压计初始化成功
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
}
|
||||
break;
|
||||
case 0x01: //设置传感器采集对象:左脚or右脚
|
||||
u8 send2_1[9] = {0xBB,0xBE,0x06,0x05,0x00,0x00,0x00,0x00,0x00};
|
||||
if(buffer[4] == 0x01){ //设定数据来源是左脚
|
||||
foot_init = 0x41;
|
||||
}else if(buffer[4] == 0x02){//设定数据来源是右脚
|
||||
foot_init = 0x42;
|
||||
}
|
||||
send2_1[4] = foot_init;
|
||||
send_data_to_ble_client(&send2_1,9);
|
||||
break;
|
||||
case 0x02: //数据包类型为:获取指定传感器初始化状态
|
||||
u8 send2_2[5] = {0xBB,0xBE,0x02,0x00,0x00};
|
||||
if(buffer[4] == 0x01){ //六轴
|
||||
send2_2[4] = SC7U22_init;
|
||||
}else if(buffer[4] == 0x02){ //地磁
|
||||
send2_2[4] = MMC5603nj_init;
|
||||
}else if(buffer[4] == 0x03){ //气压计
|
||||
send2_2[4] = BMP280_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){ //传感器未进行初始化
|
||||
u8 send2_3[5] = {0xBB,0xBE,0x02,0x00,0x00};
|
||||
send_data_to_ble_client(&send2_3,5);
|
||||
return;
|
||||
}
|
||||
start_clloct();
|
||||
}else if(buffer[4] == 0x02){ //停止滑雪计算
|
||||
stop_clloct();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void le_user_app_send_event(size_t command, unsigned char* data, size_t size)
|
||||
@ -246,14 +346,15 @@ void le_user_app_event_handler(struct sys_event* event){
|
||||
case 0x00: //数据包类型为:指定传感器初始化
|
||||
u8 send2_0[5] = {0xBB,0xBE,0x02,0x00,0x00};
|
||||
if(event->u.app.buffer[4] == 0x01){ //六轴
|
||||
stop_calibration();
|
||||
// stop_calibration();
|
||||
if (SL_SC7U22_Config() == 0) {
|
||||
send2_0[4] = 0x00; //初始化失败
|
||||
SC7U22_init = 0x10;
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
return;
|
||||
SC7U22_init = 0x10; //初始化失败
|
||||
}else{
|
||||
SC7U22_init = 0x11;
|
||||
}
|
||||
start_calibration();
|
||||
send2_0[4] = SC7U22_init;
|
||||
send_data_to_ble_client(&send2_0,5);
|
||||
// start_calibration();
|
||||
}else if(event->u.app.buffer[4] == 0x02){ //地磁
|
||||
if(mmc5603nj_init() == 0){
|
||||
MMC5603nj_init = 0x20;
|
||||
|
||||
Reference in New Issue
Block a user