diff --git a/hi-sle/README.md b/hi-sle/README.md index 750993f39b1543cc0e325af04eecfcab40fecc4e..5c46424e9c3d2befe06e5e1029df9411fc78e47b 100644 --- a/hi-sle/README.md +++ b/hi-sle/README.md @@ -58,6 +58,9 @@ - [6. 测试说明](#6-测试说明) - [7. 硬件总装](#7-硬件总装) - [8. 软硬件调试](#8-软硬件调试) + - [ws63主控调试](#ws63主控调试) + - [遥控器整体调试](#遥控器整体调试) + - [控制第二辆小车(Hihope Car)](#控制第二辆小车hihope-car) - [星闪手柄实操展示](#星闪手柄实操展示) - [作者](#作者) - [特别鸣谢 「梅科尔工作室」](#特别鸣谢-梅科尔工作室) @@ -85,7 +88,7 @@ hi-sle ├── Autodesk_Fusion_360_Designs/ # Autodesk Fusion 360 模型设计文件夹 ├── Bill_of_Materials/ # 物料清单 ├── JLCPCB_Files/ # 立创PCB文件夹 -│── RemoteController_WS63E_Source_Code/ # NearLink_DK_WS63源代码 +│── RemoteController_WS63E_Source_Code/* # NearLink_DK_WS63源代码 │ ├── /SLE_OSPP_SERVER/ │ │ ├── inc/ # 头文件 │ │ └── src/ # 源文件 @@ -445,30 +448,42 @@ PDB电子元器件物料可直接由嘉立创EDA导出 ### 8. 软硬件调试 -启动遥控器,检查是否有异常现象,如有异常现象,及时断电检查。正常情况下,遥控器应该可以正常工作。 -同时启动EulerCar小车sle和ros节点即可。 + +#### ws63主控调试 + +- 程序:[RemoteController_WS63E_Source_Code_one](RemoteController_WS63E_Source_Code_one) +- 调试现象:ws63遥控小车前进、后退、左转、右转,每个控制指令中间间隔100ms; +- 如需调整控制时间,可在`eulercar_control.h`中修改宏定义`PRESS_RELEASE_INTERVAL`即可 +

+ +

+ + +#### 遥控器整体调试 + +- 程序:[RemoteController_WS63E_Source_Code_two](RemoteController_WS63E_Source_Code_two) +- 调试现象:左摇杆x轴控制小车左转、右转,右摇杆y轴控制小车前进、后退; +- usb连接遥控器上的主控ws63, 同时启动EulerCar小车sle和ros节点即可。 +

+ + + +

+ +#### 控制第二辆小车(Hihope Car) +

+ +

## 星闪手柄实操展示 -> 手柄操作方法: 1. 左摇杆:控制EulerCar前进、后退、左转、右转 2. 右摇杆:控制EulerCar夹爪:张开、闭合 3. 左右扭子开关:切换不同EulerCar小车 -前进 - -左转 - -右转 - -后退 - - Logo - Logo - Logo - Logo +4. ...持续更新中 ## 作者 diff --git a/hi-sle/RemoteController_WS63E_Source_Code_one/CMakeLists.txt b/hi-sle/RemoteController_WS63E_Source_Code_one/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..3c3b15d5dc2eddc3c7ff295f846ac3ed50ddb59f --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_one/CMakeLists.txt @@ -0,0 +1,3 @@ +set(SOURCES "${SOURCES}" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/src/eulercar_control.c" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/src/button.c" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/src/shake.c" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/src/SLE_OSPP_Server.c" "${CMAKE_CURRENT_SOURCE_DIR}/SLE_OSPP_Server/inc" PARENT_SCOPE) + + diff --git a/hi-sle/RemoteController_WS63E_Source_Code_one/Kconfig b/hi-sle/RemoteController_WS63E_Source_Code_one/Kconfig new file mode 100644 index 0000000000000000000000000000000000000000..66cd9aa2d0b5f3acd25333766f56c5bc7f1c97c1 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_one/Kconfig @@ -0,0 +1,22 @@ +#=============================================================================== +# SAMPLE_SUPPORT_SLE_LED_SERVER: +# 类型:布尔值(bool) +# 提示信息:Support SLE_LED_SERVER Sample. +# 默认值:n(不支持) +# 依赖项:SAMPLE_SUPPORT_SLE_LED +# 帮助信息:说明该选项表示支持 SLE_LED_SERVER 示例。 + +# SAMPLE_SUPPORT_SLE_LED_CLIENT: +# 类型:布尔值(bool) +# 提示信息:Support SLE_LED_CLIENT Sample. +# 默认值:n(不支持) +# 依赖项:SAMPLE_SUPPORT_SLE_LED +# 帮助信息:说明该选项表示支持 SLE_LED_CLIENT 示例。 +#=============================================================================== +config SAMPLE_SUPPORT_SLE_OSPP_SERVER + bool + prompt "使能星闪遥控器" + default n + depends on SAMPLE_SUPPORT_SLE_LED + help + This option means support SLE_LED_SERVER Sample. diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/SLE_OSPP_Server.h b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/SLE_OSPP_Server.h similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/SLE_OSPP_Server.h rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/SLE_OSPP_Server.h diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/button.h b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/button.h similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/button.h rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/button.h diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/eulercar_control.h b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/eulercar_control.h similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/eulercar_control.h rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/eulercar_control.h diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/shake.h b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/shake.h similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/inc/shake.h rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/inc/shake.h diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/log/log b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/log/log similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/log/log rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/log/log diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/log/log_old b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/log/log_old similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/log/log_old rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/log/log_old diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/SLE_OSPP_Server.c similarity index 59% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/SLE_OSPP_Server.c index c81bf10fb4727d1bbab3d50670c282f8d8ba9c0a..24e5aa6997e0944aaa15ad52075b45db03f8e2b0 100644 --- a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c +++ b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/SLE_OSPP_Server.c @@ -42,9 +42,9 @@ #define RIGHT_JOYSTICK_Z_PIN 6 // 定义ADC通道 #define LEFT_JOYSTICK_X_Channel 1 -#define LEFT_JOYSTICK_Y_Channel 3 //2 -#define RIGHT_JOYSTICK_X_Channel 0 -#define RIGHT_JOYSTICK_Y_Channel 3 +#define LEFT_JOYSTICK_Y_Channel 2 +#define RIGHT_JOYSTICK_X_Channel 3 +#define RIGHT_JOYSTICK_Y_Channel 0 #define ADC_AUTO_SAMPLE_TEST_TIMES 500 #define FILTER_WINDOW_SIZE 10 // 定义滤波窗口大小 @@ -76,412 +76,31 @@ uint16_t g_service_handle = 0; /* SLE 通知属性句柄 */ uint16_t g_property_handle = 0; -// 初始化摇杆引脚 -void Joystick_Init(void) +void eulercar_control_task(const char *arg) { - // 配置左摇杆Z轴引脚为GPIO模式并设置为输入 - uapi_pin_set_mode(LEFT_JOYSTICK_Z_PIN, HAL_PIO_FUNC_GPIO); - uapi_gpio_set_dir(LEFT_JOYSTICK_Z_PIN, GPIO_DIRECTION_INPUT); - uapi_pin_set_pull(LEFT_JOYSTICK_Z_PIN, PIN_PULL_TYPE_DOWN); - - // 配置右摇杆Z轴引脚为GPIO模式并设置为输入 - uapi_pin_set_mode(RIGHT_JOYSTICK_Z_PIN, HAL_PIO_FUNC_GPIO); - uapi_gpio_set_dir(RIGHT_JOYSTICK_Z_PIN, GPIO_DIRECTION_INPUT); - uapi_pin_set_pull(RIGHT_JOYSTICK_Z_PIN, PIN_PULL_TYPE_DOWN); -} - -gpio_level_t Left_Joystick_Read_Z(void) -{ - return uapi_gpio_get_val(LEFT_JOYSTICK_Z_PIN); -} - -// typedef struct -// { -// int xStatus; // 0: 暂停, 1: 左转, 2: 右转 -// int yStatus; // 0: 暂停, 1: 前进, 2: 后退 -// int lastXStatus; // 上次的X轴状态 -// int lastYStatus; // 上次的Y轴状态 -// } JoystickStatus; - -// void updateJoystickStatus(JoystickStatus *joystick, uint16_t xValue, uint16_t yValue) -// { -// // 更新X轴状态 -// if (xValue < 1000) -// { -// joystick->xStatus = 1; // 左转 -// printf("X轴左推\n"); -// } -// else if (xValue > 2000) -// { -// joystick->xStatus = 2; // 右转 -// printf("X轴右推\n"); -// } -// else -// { -// joystick->xStatus = 0; // 暂停 -// } - -// // 更新Y轴状态 -// if (yValue < 1000) -// { -// joystick->yStatus = 1; // 前进 -// printf("Y轴上推\n"); -// } -// else if (yValue > 2000) -// { -// joystick->yStatus = 2; // 后退 -// printf("Y轴下推\n"); -// } -// else -// { -// joystick->yStatus = 0; // 暂停 -// } - -// // 处理X轴状态变化 -// if (joystick->xStatus != joystick->lastXStatus) -// { -// if (joystick->xStatus == 1) -// { -// eulercar_control_left(); -// } -// else if (joystick->xStatus == 2) -// { -// eulercar_control_right(); -// } -// joystick->lastXStatus = joystick->xStatus; -// } - -// // 处理Y轴状态变化 -// if (joystick->yStatus != joystick->lastYStatus) -// { -// if (joystick->yStatus == 1) -// { -// eulercar_control_forward(); -// } -// else if (joystick->yStatus == 2) -// { -// eulercar_control_backward(); -// } -// joystick->lastYStatus = joystick->yStatus; -// } - -// // 检查是否需要暂停 -// if (joystick->xStatus == 0 && joystick->yStatus == 0 && -// (joystick->lastXStatus != 0 || joystick->lastYStatus != 0)) -// { -// eulercar_control_stop(); -// joystick->lastXStatus = 0; -// joystick->lastYStatus = 0; -// } -// } -// void test_adc_callback(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) -// { -// UNUSED(next); // 未使用的参数 - -// static JoystickStatus leftJoystick = {0, 0, -1, -1}; -// static JoystickStatus rightJoystick = {0, 0, -1, -1}; - -// uint16_t value = buffer[length - 1]; -// printf("channel: %d, Filtered voltage: %dmv\n", ch, value); - -// if (ch == LEFT_JOYSTICK_X_Channel) -// { -// updateJoystickStatus(&leftJoystick, value, leftJoystick.yStatus); -// } -// else if (ch == LEFT_JOYSTICK_Y_Channel) -// { -// updateJoystickStatus(&leftJoystick, leftJoystick.xStatus, value); -// } -// else if (ch == RIGHT_JOYSTICK_X_Channel) -// { -// updateJoystickStatus(&rightJoystick, value, rightJoystick.yStatus); -// } -// else if (ch == RIGHT_JOYSTICK_Y_Channel) -// { -// updateJoystickStatus(&rightJoystick, rightJoystick.xStatus, value); -// } -// } -// typedef struct -// { -// int xStatus; // 0: 暂停, 1: 左转, 2: 右转 -// int lastXStatus; // 上次的X轴状态 -// } JoystickStatus; - -// void updateJoystickStatus(JoystickStatus *joystick, uint16_t xValue, int joystickType) -// { -// // 更新X轴状态 -// if (xValue < 1000) -// { -// joystick->xStatus = 1; // 左转 -// printf("X轴左推\n"); -// } -// else if (xValue > 2000) -// { -// joystick->xStatus = 2; // 右转 -// printf("X轴右推\n"); -// } -// else -// { -// joystick->xStatus = 0; // 暂停 -// } - -// // 处理X轴状态变化 -// if (joystick->xStatus != joystick->lastXStatus) -// { -// if (joystickType == 0) // 左摇杆 -// { -// if (joystick->xStatus == 1) -// { -// eulercar_control_left(); -// } -// else if (joystick->xStatus == 2) -// { -// eulercar_control_right(); -// } -// } -// else if (joystickType == 1) // 右摇杆 -// { -// if (joystick->xStatus == 1) -// { -// eulercar_control_forward(); -// } -// else if (joystick->xStatus == 2) -// { -// eulercar_control_backward(); -// } -// } -// joystick->lastXStatus = joystick->xStatus; -// } - -// // 检查是否需要暂停 -// if (joystick->xStatus == 0 && joystick->lastXStatus != 0) -// { -// eulercar_control_stop(); -// joystick->lastXStatus = 0; -// } -// } - -// void test_adc_callback_X(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) -// { -// UNUSED(next); // 未使用的参数 - -// // static JoystickStatus leftJoystick = {0, -1}; - -// uint16_t value = buffer[length - 1]; -// printf("channel: %d, Filtered voltage: %dmv\n", ch, value); - -// if (ch == LEFT_JOYSTICK_X_Channel) -// { -// // updateJoystickStatus(&leftJoystick, value, 0); // 左摇杆 -// // // 更新X轴状态 -// if (value < 1000) -// { -// printf("X轴左推\n"); -// eulercar_control_left(); -// } -// else if (value > 2000) -// { -// printf("X轴右推\n"); -// eulercar_control_right(); -// } -// else -// { -// eulercar_control_stop(); -// } -// } -// // else if (ch == RIGHT_JOYSTICK_X_Channel) -// // { -// // updateJoystickStatus(&rightJoystick, value, 1); // 右摇杆 -// // } -// } - -#define ACTION 1 -#define NONE 0 - -int sum; -int num; -int fil_buffer = 0; - -int j = 1; -int *num_buff; - -int stop_x =0; -int stop_y = 0; -int stop = 1; - -void test_adc_callback_X(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) -{ - UNUSED(next); // 未使用的参数 - // static JoystickStatus rightJoystick = {0, -1}; - sum = 0; - num = 0; - if (ch == LEFT_JOYSTICK_X_Channel) - { - for (uint32_t i = 0; i < length; i++) - { - - // 打印ADC通道和电压值 - if(length > 2) - { - if((buffer[i] < 1500 || buffer[i] > 1900) && buffer[i] != 0) - { - sum += buffer[i]; - num +=1; - // osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); - } - } - } - if(num >= (signed int)length / 2) - { - fil_buffer = sum / num; - if(fil_buffer < 1) - { - fil_buffer = 0; - } - } - else - { - printf(" -number- \n"); - fil_buffer = 0; - } - printf("channel: %d, ---XXX-Filtered voltage: %dmv\n", ch, fil_buffer); - printf("length = %d\n",length); - - if (fil_buffer < 1000 && fil_buffer !=0 ) - { - printf("X轴左推\n"); - eulercar_control_left(); - stop = 0; - } - else if (fil_buffer > 2000 && fil_buffer !=0) - { - printf("X轴右推\n"); - eulercar_control_right(); - stop = 0; - } - else - { - // eulercar_control_stop(); - stop_x =1; - } - - } -} - + UNUSED(arg); -void test_adc_callback_Y(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) -{ - UNUSED(next); // 未使用的参数 - // static JoystickStatus rightJoystick = {0, -1}; - sum = 0; - num = 0; - if (ch == LEFT_JOYSTICK_Y_Channel) + while (1) { - for (uint32_t i = 0; i < length; i++) - { - - // 打印ADC通道和电压值 - // osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); - if(length > 2) - { - if((buffer[i] < 1000 || buffer[i] > 2000) && buffer[i] != 0) - { - sum += buffer[i]; - num +=1; - osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); - } - } - } - if(num >= (signed int)length / 2) - { - fil_buffer = sum / num; - if(fil_buffer < 1) - { - fil_buffer = 0; - } - } - else - { - printf(" -number- \n"); - fil_buffer = 0; - } - printf("channel: %d, ---YYY--Filtered voltage: %dmv\n", ch, fil_buffer); - printf("length = %d\n",length); - - - - if (fil_buffer < 1000 && fil_buffer !=0 ) - { - printf("Y轴上推\n"); - eulercar_control_forward(); - stop = 0; - } - else if (fil_buffer > 2000 && fil_buffer !=0) - { - printf("Y轴下推\n"); - eulercar_control_backward(); - stop = 0; - } - else - { - // eulercar_control_stop(); - stop_y =1; - } - } - - + eulercar_control_backward(); + eulercar_control_stop(); -} + eulercar_control_forward(); + eulercar_control_stop(); + eulercar_control_left(); + eulercar_control_stop(); -void joystick_task(const char *arg) -{ - UNUSED(arg); - osal_printk("start adc sample test"); - uapi_adc_init(ADC_CLOCK_500KHZ); - uapi_adc_power_en(AFE_SCAN_MODE_MAX_NUM, true); - adc_scan_config_t config = { - .type = 0, - .freq = 1, - }; - - while (1) - { - uapi_adc_auto_scan_ch_enable(LEFT_JOYSTICK_Y_Channel, config, test_adc_callback_Y); - uapi_adc_auto_scan_ch_disable(LEFT_JOYSTICK_Y_Channel); - - uapi_adc_auto_scan_ch_enable(LEFT_JOYSTICK_X_Channel, config, test_adc_callback_X); - uapi_adc_auto_scan_ch_disable(LEFT_JOYSTICK_X_Channel); - - if(stop == 0) - { - if(stop_x == 1 && stop_y == 1) - { - - eulercar_control_stop(); - printf("星闪小车停止!"); - stop_x = 0; - stop_y = 0; - stop = 1; - } - } - - - // if (Left_Joystick_Read_Z() == 1) - // { - // eulercar_control_stop(); - // osal_mdelay(10); - // } - - osal_msleep(ADC_AUTO_SAMPLE_TEST_TIMES); + eulercar_control_right(); + eulercar_control_stop(); } } -static void joystick_entry(void) +static void eulercar_test_entry(void) { osal_task *task_handle = NULL; // 任务句柄初始化为NULL osal_kthread_lock(); // 锁定内核线程,防止任务创建过程中被打断 - task_handle = osal_kthread_create((osal_kthread_handler)joystick_task, 0, "LedControlTask", + task_handle = osal_kthread_create((osal_kthread_handler)eulercar_control_task, 0, "EulerCarControlTask", ADC_TASK_STACK_SIZE); if (task_handle != NULL) // 如果任务创建成功 { @@ -494,9 +113,8 @@ static void joystick_entry(void) // 系统初始化函数,汇总所有初始化操作 void Controller_System_Init(void) { - Shake_Init(); // 初始化摇动传感器 - Joystick_Init(); // 初始化摇杆 - Key_Init(); // 初始化按键 + Shake_Init(); // 初始化摇动传感器 + Key_Init(); // 初始化按键 } // SLE UUID基准数组 static uint8_t sle_uuid_base[] = {0x37, 0xBE, 0xA8, 0x80, 0xFC, 0x70, 0x11, 0xEA, @@ -706,7 +324,7 @@ static void example_sle_pair_complete_cbk(uint16_t conn_id, const sle_addr_t *ad if (status == ERRCODE_SUCC) // 如果配对成功 { - joystick_entry(); + eulercar_test_entry(); } } diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/button.c b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/button.c similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/button.c rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/button.c diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/eulercar_control.c b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/eulercar_control.c similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/eulercar_control.c rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/eulercar_control.c diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/shake.c b/hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/shake.c similarity index 100% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/shake.c rename to hi-sle/RemoteController_WS63E_Source_Code_one/SLE_OSPP_Server/src/shake.c diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server.h b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server.h new file mode 100644 index 0000000000000000000000000000000000000000..ca56a47cbf15cff2be40f68cb5aff41def12b4ac --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server.h @@ -0,0 +1,25 @@ + +/** + * @defgroup + * @ingroup + * @{ + */ +#ifndef SLE_LED_SERVER_H +#define SLE_LED_SERVER_H + +#include "sle_ssap_server.h" +// #include "gpio.h" // GPIO操作相关的头文件 +// #include "pinctrl_porting.h" + +// 这些UUID的值是如何确定的? + +/* Service UUID 服务UUID*/ +#define SLE_UUID_SERVER_SERVICE 0xABCD + +/* Notify Repoert UUID 通知报告UUID*/ +#define SLE_UUID_SERVER_NTF_REPORT 0x1122 + +/* Property UUID 特征信息UUID*/ +#define SLE_UUID_SERVER_PROPERTY 0x3344 + +#endif diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h new file mode 100644 index 0000000000000000000000000000000000000000..c0222d3e0a97c60eff32469cd4d06cc17a69ed74 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/SLE_OSPP_Server_adv.h @@ -0,0 +1,96 @@ +/* +# 版权所有 (C) 2024 HiHope 开源组织。 +# 根据 Apache 许可证 2.0 版(“许可证”)授权; +# 除非遵守许可证,否则您不得使用此文件。 +# 您可以在以下位置获取许可证的副本 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# 除非适用法律要求或书面同意,否则根据许可证分发的软件 +# 以“原样”分发, +# 不附带任何明示或暗示的保证或条件。 +# 请参阅许可证,了解许可证下管理权限和 +# 限制的特定语言。 +*/ + +/** 这个注释是 Doxygen 风格的注释,用于生成文档 + * @defgroup + * @ingroup + * @{ + */ + +#ifndef SLE_LED_SERVER_ADV_H +#define SLE_LED_SERVER_ADV_H + +/** + * @if Eng + * @brief Definitaion of BLE ADV 通用广播结构. + * @else + * @brief SLE 广播普通数据结构。 + * @endif + */ +struct sle_adv_common_value { + uint8_t length; + uint8_t type; + uint8_t value; +}; + +/** + * @if Eng + * @brief Definitaion of BLE ADV Channel mapping. + * @else + * @brief SLE 广播信道映射。 + * @endif + */ +typedef enum { + SLE_ADV_CHANNEL_MAP_77 = 0x01, + SLE_ADV_CHANNEL_MAP_78 = 0x02, + SLE_ADV_CHANNEL_MAP_79 = 0x04, + SLE_ADV_CHANNEL_MAP_DEFAULT = 0x07 +} sle_adv_channel_map; + +/** + * @if Eng + * @brief Definitaion of SLE ADV Data Type. + * @else + * @brief SLE 广播数据类型 + * @endif + */ +typedef enum { + SLE_ADV_DATA_TYPE_DISCOVERY_LEVEL = 0x01, /*!< 发现等级 */ + SLE_ADV_DATA_TYPE_ACCESS_MODE = 0x02, /*!< 接入层能力 */ + SLE_ADV_DATA_TYPE_SERVICE_DATA_16BIT_UUID = 0x03, /*!< 标准服务数据信息 */ + SLE_ADV_DATA_TYPE_SERVICE_DATA_128BIT_UUID = 0x04, /*!< 自定义服务数据信息 */ + SLE_ADV_DATA_TYPE_COMPLETE_LIST_OF_16BIT_SERVICE_UUIDS = 0x05, /*!< 完整标准服务标识列表 */ + SLE_ADV_DATA_TYPE_COMPLETE_LIST_OF_128BIT_SERVICE_UUIDS = 0x06, /*!< 完整自定义服务标识列表 */ + SLE_ADV_DATA_TYPE_INCOMPLETE_LIST_OF_16BIT_SERVICE_UUIDS = 0x07, /*!< 部分标准服务标识列表 */ + SLE_ADV_DATA_TYPE_INCOMPLETE_LIST_OF_128BIT_SERVICE_UUIDS = 0x08, /*!< 部分自定义服务标识列表 */ + SLE_ADV_DATA_TYPE_SERVICE_STRUCTURE_HASH_VALUE = 0x09, /*!< 服务结构散列值 */ + SLE_ADV_DATA_TYPE_SHORTENED_LOCAL_NAME = 0x0A, /*!< 设备缩写本地名称 */ + SLE_ADV_DATA_TYPE_COMPLETE_LOCAL_NAME = 0x0B, /*!< 设备完整本地名称 */ + SLE_ADV_DATA_TYPE_TX_POWER_LEVEL = 0x0C, /*!< 广播发送功率 */ + SLE_ADV_DATA_TYPE_SLB_COMMUNICATION_DOMAIN = 0x0D, /*!< SLB通信域域名 */ + SLE_ADV_DATA_TYPE_SLB_MEDIA_ACCESS_LAYER_ID = 0x0E, /*!< SLB媒体接入层标识 */ + SLE_ADV_DATA_TYPE_EXTENDED = 0xFE, /*!< 数据类型扩展 */ + SLE_ADV_DATA_TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF /*!< 厂商自定义信息 */ +} sle_adv_data_type; + +/** + * @if Eng + * @brief sle adv config and announce. + * @attention NULL + * @retval ERRCODE_SLE_SUCCESS Excute successfully + * @retval ERRCODE_SLE_FAIL Execute fail + * @par Dependency: + * @li NULL + * @else + * @brief sle广播配置和公开。 + * @attention NULL + * @retval ERRCODE_SLE_SUCCESS 执行成功 + * @retval ERRCODE_SLE_FAIL 执行失败 + * @par 依赖: + * @li NULL + * @endif + */ +errcode_t example_sle_server_adv_init(void); +#endif \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/button.h b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/button.h new file mode 100644 index 0000000000000000000000000000000000000000..3eb03f8228809aba6c38936da10d9dccd7a87b1b --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/button.h @@ -0,0 +1,19 @@ +#ifndef BUTTON_H +#define BUTTON_H + +#include "pinctrl.h" +#include "hal_gpio.h" +#include "gpio.h" +#include "osal_task.h" + +// 定义按键引脚 +#define LEFT_BUTTON_PIN 2 +#define RIGHT_BUTTON_PIN 4 +#define LEFT_TOGGLE_PIN 5 +#define RIGHT_TOGGLE_PIN 3 + +// 初始化按键 +void Key_Init(void); + + +#endif // KEY_H \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/eulercar_control.h b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/eulercar_control.h new file mode 100644 index 0000000000000000000000000000000000000000..5b645b66af10e874e41d873b346f7d52f79e8df2 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/eulercar_control.h @@ -0,0 +1,26 @@ +#ifndef EULERCAR_CONTROL_H +#define EULERCAR_CONTROL_H + +#include + +// 宏定义延时参数(毫秒) +#define PRESS_RELEASE_INTERVAL 50 +#define LONG_PRESS_INTERVAL 100 + +// 键盘报告结构体定义 +typedef struct +{ + uint8_t kind; // 键盘报告类型 + uint8_t special_key; // 特殊按键 + uint8_t reserve; // 保留字段 + uint8_t key[6]; // 按键值数组 +} usb_hid_rcu_keyboard_report_t; + +// 函数声明 +void eulercar_control_forward(void); +void eulercar_control_backward(void); +void eulercar_control_left(void); +void eulercar_control_right(void); +void eulercar_control_stop(void); + +#endif // EULERCAR_CONTROL_H \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/shake.h b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/shake.h new file mode 100644 index 0000000000000000000000000000000000000000..2a9379b6bfced0e91686768e68e8327988b035cf --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/inc/shake.h @@ -0,0 +1,70 @@ +#ifndef SHAKE_H +#define SHAKE_H + +#define SHAKE_PIN 11 + +// 震动时长定义(单位:毫秒) +#define VIBRATION_DURATION_POWER_ON 250 // 开发板上电震动时长 +#define VIBRATION_DURATION_CONN_CHANGE 500 // 星闪连接状态改变震动时长 +#define VIBRATION_DURATION_GRIPPER_LIMIT 100 // 夹爪行程极限震动时长 +#define VIBRATION_DURATION_CAR_CONTROL 100 // 控制小车震动时长 + +/** + * @brief 开发板上电震动函数 + * + * 该函数用于在开发板上电时触发震动马达震动。 + */ +void Vibration_PowerOn(void); + +/** + * @brief 星闪连接状态改变震动函数 + * + * 该函数用于在星闪连接状态改变(连接上或断连)时触发震动马达震动。 + */ +void Vibration_ConnChange(void); + +/** + * @brief 夹爪行程极限震动函数 + * + * 该函数用于在夹爪达到行程极限时触发震动马达震动。 + */ +void Vibration_GripperLimit(void); + +/** + * @brief 控制小车震动函数 + * + * 该函数用于在控制小车前进、后退、左转或右转时触发震动马达震动。 + */ +void Vibration_CarControl(void); + +/** + * @brief 震动马达初始化函数 + * + * 该函数用于初始化震动马达的相关硬件和软件资源。 + */ +void Shake_Init(void); + +/** + * @brief 启动震动马达函数 + * + * 该函数用于启动震动马达,使其开始震动。 + */ +void Shake_Start(void); + +/** + * @brief 停止震动马达函数 + * + * 该函数用于停止震动马达,使其停止震动。 + */ +void Shake_Stop(void); + +/** + * @brief 震动马达震动函数 + * + * @param duration 震动时长(单位:毫秒) + * + * 该函数用于使震动马达震动指定时长。 + */ +void Shake_Buzz(unsigned int duration); + +#endif // SHAKE_H \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log new file mode 100644 index 0000000000000000000000000000000000000000..c71b80f23a83cbf807e32a5312c02d1684793713 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log @@ -0,0 +1,548 @@ +./service.sh +[INFO] [launch]: All log files can be found below /root/.ros/log/2018-03-09-12-45-23-878167-hieulerpi1-2403 +[INFO] [launch]: Default logging verbosity is set to INFO +[INFO] [nearlink_robot_node-1]: process started with pid [2404] +[INFO] [bs21_ws73_ros2-2]: process started with pid [2406] +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.412] [uapi gle_init] +[bs21_ws73_ros2-2] [bts][info] btsrv_task_init btsrv_init: task create success +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.412] ssapc client init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.412] ssapc register inter cbk +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [uapi gle_enable] +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [gle manger enable]enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle dd init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle cm init enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [GLE DM][DM init] transmission management module init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [GLE TM][TM init] transmission management module init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle ssap init ok +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [GLE SM] start init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [GLE DM][DM init] security management module init +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hadm init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle factory init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle glp init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [gle manager_enable]enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle read maximum adv data len +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] read access filter list size +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [GLE SM] read support cryptography algorithm +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci struct to stream opcode:0xc06, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] hci command encode send tl paramlen=0x0 opcode:0xc06 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci internal command send core send opcode=0xc06 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci internal command send core send opcode=0x40a +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci internal command send core send opcode=0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci internal command send core send opcode=0x402 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.413] gle hci internal command send core send opcode=0x1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle execute command cbk evindex:c06 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] opcode = 0x0c06, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] max_adv_data_len = 0x00fb +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle read maximum adv data len +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle hci struct to stream opcode:0x40a, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] hci command encode send tl paramlen=0x0 opcode:0x40a +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] gle hci internal command send core send opcode=0xc07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.414] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle execute command cbk evindex:40a +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] opcode = 0x040a, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] read access filter list size = 16 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] [TIMRE_ADD][STACK_TIMER] TIMER=0xb00011e0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle hci struct to stream opcode:0x406, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] hci command encode send tl paramlen=0x0 opcode:0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] [TIMER_DEL][STACK_TIMER] TIMER=0xb00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle execute command cbk evindex:406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] opcode = 0x0406, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] get addr:0xb0:66:**:**:**:00 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle hci struct to stream opcode:0x402, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] hci command encode send tl paramlen=0x0 opcode:0x402 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.415] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle execute command cbk evindex:402 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle hci read buffer size cfm result:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] [gle manger enable]result = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] [GLE DM] event = 0x0 +[bs21_ws73_ros2-2] [ACore] sle enable cbk in, result:0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] dev enable ret:0. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] recover key fail, there is no key +[bs21_ws73_ros2-2] sle enable +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.416] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] sle_set_local_addr 0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] [gle hci read buffer size] result = 0x0, opindex: 0x00000402 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] [gle hci read buffer size] acb data len: 254 num: 5, icb data len: 0 num: 0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001340, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci struct to stream opcode:0x1c07, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] hci command encode send tl paramlen=0x0 opcode:0x1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci internal command send core send opcode=0x405 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.420] gle hci internal command send core send opcode=0x1001 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001340 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] gle execute command cbk evindex:1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] opcode = 0x1c07, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] [GLE SM] algo: 0x02 0x02 0x02 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.437] gle hci struct to stream opcode:0xc07, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] hci command encode send tl paramlen=0x0 opcode:0xc07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] gle execute command cbk evindex:c07 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] opcode = 0x0c07, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.438] supported_adv_sets_num = 0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001130, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] gle hci struct to stream opcode:0x405, stream_len=0x6 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] hci command encode send tl paramlen=0x6 opcode:0x405 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 + + +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001130 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] gle execute command cbk evindex:405 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] opcode = 0x0405, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.439] gle set public address status success. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] gle hci struct to stream opcode:0x1001, stream_len=0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] hci command encode send tl paramlen=0x8 opcode:0x1001 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] [HCI]gle hci internal evt cbk unreg table->id = 0x405 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.440] gle hci internal command send core send opcode=0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] gle execute command cbk evindex:1001 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] opcode = 0x1001, cmd_result = 0xb +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] [dd]event = 0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] [SLE SCAN CBK] event: 8. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] start device seek. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] gle hci struct to stream opcode:0x406, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] hci command encode send tl paramlen=0x0 opcode:0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.457] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] [HCI]gle hci internal evt cbk unreg table->id = 0x1400 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] scan_enable = 0x1, filter_duplicates = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle hci internal command send core send opcode=0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle execute command cbk evindex:406 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] opcode = 0x0406, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] get addr:0xb0:66:**:**:**:00 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001370, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle hci struct to stream opcode:0x1002, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] hci command encode send tl paramlen=0x2 opcode:0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.458] [HCI]gle hci internal evt cbk unreg table->id = 0x1400 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001370 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] gle execute command cbk evindex:1002 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] opcode = 0x1002, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] gle dd set scan enable cfm scan enabled +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] [dd]event = 0x9 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] [SLE SCAN CBK] event: 9. +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:45:24.459] [HCI]gle hci internal evt cbk unreg table->id = 0x1002 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:5 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] op_ev = 0x180B +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] cfm_type = 0x1e +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] [dd]event = 0xb +[bs21_ws73_ros2-2] [adv_report] event_type: 0x03, addr_type: 0x0000, addr: 3c:**:**:**:4e:33 +[bs21_ws73_ros2-2] [adv_report] data length: 6, data: 0x02 0x01 0x01 0x02 0x02 0x00 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:7 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] stop device seek. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] scan_enable = 0x0, filter_duplicates = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] gle hci struct to stream opcode:0x1002, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] hci command encode send tl paramlen=0x2 opcode:0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.23] gle hci internal command send core send opcode=0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.37] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.37] gle execute command cbk evindex:1002 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.37] opcode = 0x1002, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle dd set scan enable cfm scan disabled +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [dd]event = 0xa +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [SLE SCAN CBK] event: 10. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:6 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] create conn node, addr 3c:4a:xx:xx:xx:33 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle device link add node->status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle hci struct to stream opcode:0x1401, stream_len=0x1b +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] hci command encode send tl paramlen=0x1b opcode:0x1401 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle hci internal command send core send opcode=0x1401 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1401 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] gle hci ev command status restart ertx opcode=0x1401, timeout:0x2710 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.38] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.39] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=10000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.39] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.39] gle hci ev command status in opcode=0x1401, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle access link status report in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [gle connect cfm] result:0x0 status = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [GLE TM][LCID init] LCID = 0x0000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [GLE SM] init new remote device. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle ssap create tl link by addr add dev onaddr:0x3c:**:**:**:4e:33 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [cm]event = 0x0 +[bs21_ws73_ros2-2] [Connected] +[bs21_ws73_ros2-2] addr:3c:**:**:**:4e:33, handle:00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] remote(0x3c:**:**:**:4e:33) conn_id(0) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] remote(0x3c:**:**:**:4e:33) state(1) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle hci struct to stream opcode:0x1801, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] hci command encode send tl paramlen=0x2 opcode:0x1801 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] gle hci internal command send core send opcode=0x1801 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.84] [GLE SM] pairing start, role: 0x0. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.94] [GLE SM] sm pairing request. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.94] [GLE SM] io_ability: 3, oob_flag 0, psk_flag: 0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000da0, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0134, len: 10.[2018-03-09 12:46:03.95] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1801 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci ev command status restart ertx opcode=0x1801, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci ev command status in opcode=0x1801, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci struct to stream opcode:0x1812, stream_len=0xf +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] hci command encode send tl paramlen=0xf opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.95] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0134.[2018-03-09 12:46:03.96] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.96] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] gle read remote features complete. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] cfm_type = 0x11 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] gle set data len, lcid: 0x0000, tx octets: 0xfe +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.100] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.101] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.101] gle hci struct to stream opcode:0x1802, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] hci command encode send tl paramlen=0x2 opcode:0x1802 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle hci internal command send core send opcode=0x1802 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle hci internal command send core send opcode=0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1802 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] gle hci ev command status restart ertx opcode=0x1802, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.102] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] gle hci struct to stream opcode:0x1804, stream_len=0x4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] hci command encode send tl paramlen=0x4 opcode:0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.103] gle hci ev command status in opcode=0x1802, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.104] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.104] gle execute command cbk evindex:1804 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.104] [GLE HCI] set data len result = 0x0, opindex: 0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.104] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.104] [HCI]gle hci internal evt cbk unreg table->id = 0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.125] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.125] gle read remote version complete. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.125] cfm_type = 0x12 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.125] [cm]event = 0x7 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.125] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [GLE SM] data recv, lcid: 0x0000, len: 10, opcode: 0x0135 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [GLE SM] algorithm negotiate: 2 2 2 0[2018-03-09 12:46:03.138] [GLE SM] sm pairing confirm, authentication method: 1. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000da0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000da0, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0136, len: 70.[2018-03-09 12:46:03.138] [GLE SM] event = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] [TIMRE_ADD][STACK_TIMER] TIMER=0xb00011e0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.138] gle hci struct to stream opcode:0x1812, stream_len=0x4b +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] hci command encode send tl paramlen=0x4b opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] [TIMER_DEL][STACK_TIMER] TIMER=0xb00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.139] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.140] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.140] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.140] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.140] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0136.[2018-03-09 12:46:03.140] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.140] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.163] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.163] [GLE SM] data recv, lcid: 0x0000, len: 64, opcode: 0x0137 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x0138 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000da0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000da0, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0139, len: 16.[2018-03-09 12:46:03.175] [GLE SM] authentication pdu send, opcode 0x0139. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001760, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] gle hci struct to stream opcode:0x1812, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] hci command encode send tl paramlen=0x15 opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.175] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001760 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0139.[2018-03-09 12:46:03.176] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.176] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.225] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.225] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x013a +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.225] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.234] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000da0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000da0, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0141, len: 16.[2018-03-09 12:46:03.235] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle hci struct to stream opcode:0x1812, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] hci command encode send tl paramlen=0x15 opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0141.[2018-03-09 12:46:03.235] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.235] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x0142 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [GLE SM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle acore config data write:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle acore set product type sys_config 0x:0! +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle acore save sm key write_index:00! +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle acore config data write:2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [GLE SM] enable encryption +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [GLE AA] enable encryption, crypt 1, key_deriv 1, integr_chk 0. +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] remote(0x3c:**:**:**:0x4e:0x33) conn_id(0) +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.250] [2018-03-09 12:46:03.250] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] auth status:0, crypto algo:2, key deriv algo:2, integr chk ind:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.251] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000fb0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.251] gle hci struct to stream opcode:0x1c03, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.251] hci command encode send tl paramlen=0x15 opcode:0x1c03 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.251] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.251] gle hci internal command send core send opcode=0x1c03 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1c03 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] gle hci ev command status restart ertx opcode=0x1c03, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000fb0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] [TIMRE_ADD][STACK_TIMER] TIMER=0xa8000fb0, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.252] gle hci ev command status in opcode=0x1c03, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000fb0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] op_ev = 0x0011 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] cfm_type = 0x27 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [GLE SM] encrypt change, lcid: 0x0000, status: 0x0, encryption change: 0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [TIMER_DEL][STACK_TIMER] TIMER=0xa8000da0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [GLE SM] timer repeated attempts, job: 1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [GLE SM] event = 0x3 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] conn_id(0) pair result:3 +[bs21_ws73_ros2-2] [ssap client] pair complete conn_id:0, addr:3c:4a:83:2f:4e:33 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [uapi ssapc_exchange_info_req]mtu = 300 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [gle ssapc_exchange_mtu]mtu = 0x12c +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] [ssapc exchange_info_req_handle]mtu = 300, version = 0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] mtu = 300, version = 0x0001 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.312] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.313] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] tl task[1] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] tl trans done trans->op:[0x03] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.325] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] tl task[1] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] op_code[0x03], control_code[0x03], mtu[300], version[0x0001] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] tl->mtu[300] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] task[1] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] task[0x01] complete, err_code = 0x00 +[bs21_ws73_ros2-2] ssapc exchange info, conn_id:0, err_code:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] tl done err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] ssapc handle msg type:7 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] sample ssapc indication cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] ssapc find structure conn_id:0, type:1, start hdl:1, end hdl:ffff +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] ssapc find structure uuid len:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] addr:3c:**:**:**:4e:33, type = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] ssap discovery service all +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] ssapc discovery services conn_handle = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] task->type = 0x1, task->hdl = 0x1ffff, task->uuid.len = 0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] task_id = 0x82, task_type = 0x1, op_code = 0x04 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] dicovery task send uuid.len = 0, uuid:0x0000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] dicovery task send start_hdl: 0x0001, end_hdl: 0xffff +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] data_len = 6 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.337] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001130, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.362] ssap check type by opcode trans->op:0x05 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.362] tl task[130] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.362] tl trans done trans->op:[0x05] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001130 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] data_len = 9 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] control_code.fragment:0x03, mode:0x00, task->type:0x01, task_id:0x82, task->uuid.len:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] curent_idx:0, data_len:7 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] uuid_len: 2, service->uuid.len: 2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] ssapc discovery service event handle +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] con_hdl:[0x00], hdl:[0x01], end_hdl:[0x02], svc->type_indication:[0x02] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [disc_srv_rsp]start_hdl:[0x01], end_hdl:[0x02] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] uuid:[0x00][0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] discovery service start hdl:1, end hdl:2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] sample ssapc discovery services cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] uuid_len = 2, last_hdl = 0x0002, idx = 7 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] cur_hdl:[0x0001ffff], last_hdl:[0x0002] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] task[130] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] task[0x82] complete, err_code = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] ssapc handle msg type:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] sample ssapc discovery service cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] op_code:0x04, type:0x01, uuid.len:0, err_code:0x00 +[bs21_ws73_ros2-2] discovery character cbk complete in +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [internal_discovery_services] op_code:0x04, type:0x01, uuid.len:0, err_code:0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] ssapc handle msg type:2 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] sample ssapc discovery service cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [ssap client] ssapc_write_req, conn_id:0 data_len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] ssapc write req conn_id:0, hdl:1, data len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] ssapc write req addr:0x3c:**:**:**:0x4e:0x33 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] handle = 0x01, type = 0x00, len = 4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] tl done err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [ssapc write_value_req]data_type = 0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] write_data_len = 4, data_len = 4, mtu = 295 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.363] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001370, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] ssap check type by opcode trans->op:0x0e +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] tl task[8] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] tl trans done trans->op:[0x0e] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001370 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] [write rsp]hdl[0x0001], data_type[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] ssapc write rsp op_code[0x0e], control_code[0x03], value_len[7] +[bs21_ws73_ros2-2] ssapc write rsp handle:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] task[8] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] task[0x08] complete, err_code = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] [write_req_complete]err_code:0x00 +[bs21_ws73_ros2-2] [sle write_req_complete_cbk]conn_id:0, err_code:0 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] ssapc handle msg type:5 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] [2018-03-09 12:46:03.387] tl done err_code:[0x00] +[bs21_ws73_ros2-2] sample ssapc write cfm cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] ssapc read req conn_id:0, hdl:1, type:0 + +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] ssapc read req addr:0x3c:**:**:**:0x4e:0x33 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.387] handle = 0x01, type = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.388] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.388] [TIMRE_ADD][STACK_TIMER] TIMER=0xb0001290, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] ssap check type by opcode trans->op:0x09 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] tl trans done trans->op:[0x09] +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] [TIMER_DEL][STACK_TIMER] TIMER=0xb0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] op_code[0x09], control_code[0x03], data_len[4] +[bs21_ws73_ros2-2] ssapc read rsp handle:0, data len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] ssapc handle msg type:4 +[bs21_ws73_ros2-2] [2018-03-09 12:46:03.412] sample ssapc read cfm cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:46:05.337] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:05.337] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:05.337] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:07.362] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:07.362] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:07.362] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:09.350] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:09.350] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:09.350] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:11.362] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:11.362] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:11.362] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:13.375] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:13.375] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:13.375] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:46:15.387] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:46:15.387] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:46:15.387] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log_old b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log_old new file mode 100644 index 0000000000000000000000000000000000000000..ea0f0649dff899505c80e437376f26aa7fd131a5 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/log/log_old @@ -0,0 +1,549 @@ + ./service.sh +[INFO] [launch]: All log files can be found below /root/.ros/log/2018-03-09-12-40-15-200889-hieulerpi1-2216 +[INFO] [launch]: Default logging verbosity is set to INFO +[INFO] [nearlink_robot_node-1]: process started with pid [2219] +[INFO] [bs21_ws73_ros2-2]: process started with pid [2221] +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.753] [uapi gle_init] +[bs21_ws73_ros2-2] [bts][info] btsrv_task_init btsrv_init: task create success +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] ssapc client init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] ssapc register inter cbk +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [uapi gle_enable] +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [gle manger enable]enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle dd init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle cm init enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [GLE DM][DM init] transmission management module init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [GLE TM][TM init] transmission management module init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle ssap init ok +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [GLE SM] start init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [GLE DM][DM init] security management module init +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hadm init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle factory init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle glp init enter. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [gle manager_enable]enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle read maximum adv data len +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] read access filter list size +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [GLE SM] read support cryptography algorithm +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci struct to stream opcode:0xc06, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] hci command encode send tl paramlen=0x0 opcode:0xc06 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci internal command send core send opcode=0xc06 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci internal command send core send opcode=0x40a +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci internal command send core send opcode=0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci internal command send core send opcode=0x402 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.754] gle hci internal command send core send opcode=0x1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] gle execute command cbk evindex:c06 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] opcode = 0x0c06, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] max_adv_data_len = 0x00fb +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] gle read maximum adv data len +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.755] gle hci struct to stream opcode:0x40a, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] hci command encode send tl paramlen=0x0 opcode:0x40a +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle hci internal command send core send opcode=0xc07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle execute command cbk evindex:40a +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] opcode = 0x040a, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] read access filter list size = 16 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] [TIMRE_ADD][STACK_TIMER] TIMER=0xa00011e0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle hci struct to stream opcode:0x406, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] hci command encode send tl paramlen=0x0 opcode:0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] [TIMER_DEL][STACK_TIMER] TIMER=0xa00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] gle execute command cbk evindex:406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] opcode = 0x0406, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.756] get addr:0xb0:66:**:**:**:00 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle hci struct to stream opcode:0x402, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] hci command encode send tl paramlen=0x0 opcode:0x402 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle execute command cbk evindex:402 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle hci read buffer size cfm result:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [gle hci read buffer size] result = 0x0, opindex: 0x00000402 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [gle hci read buffer size] acb data len: 254 num: 5, icb data len: 0 num: 0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001340, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle hci struct to stream opcode:0x1c07, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] hci command encode send tl paramlen=0x0 opcode:0x1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.757] [HCI]gle hci internal evt cbk unreg table->id = 0x18a0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001340 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] gle execute command cbk evindex:1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] opcode = 0x1c07, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] [GLE SM] algo: 0x02 0x02 0x02 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001340, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] gle hci struct to stream opcode:0xc07, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] hci command encode send tl paramlen=0x0 opcode:0xc07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.758] [HCI]gle hci internal evt cbk unreg table->id = 0x1c07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001340 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] gle execute command cbk evindex:c07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] opcode = 0x0c07, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] supported_adv_sets_num = 0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.759] [HCI]gle hci internal evt cbk unreg table->id = 0xc07 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] [gle manger enable]result = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] [GLE DM] event = 0x0 +[bs21_ws73_ros2-2] [ACore] sle enable cbk in, result:0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] dev enable ret:0. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] recover key fail, there is no key +[bs21_ws73_ros2-2] sle enable +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle acore smp keys memcmp err, data all zero! +[bs21_ws73_ros2-2] sle_set_local_addr 0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle hci struct to stream opcode:0x405, stream_len=0x6 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] hci command encode send tl paramlen=0x6 opcode:0x405 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle hci internal command send core send opcode=0x405 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.763] gle hci internal command send core send opcode=0x1001 + + +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle execute command cbk evindex:405 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] opcode = 0x0405, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle set public address status success. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle hci struct to stream opcode:0x1001, stream_len=0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] hci command encode send tl paramlen=0x8 opcode:0x1001 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.764] gle hci internal command send core send opcode=0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle execute command cbk evindex:1001 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] opcode = 0x1001, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [dd]event = 0x8 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [SLE SCAN CBK] event: 8. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] start device seek. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001290, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle hci struct to stream opcode:0x406, stream_len=0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] hci command encode send tl paramlen=0x0 opcode:0x406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [HCI]gle hci internal evt cbk unreg table->id = 0x1710 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] scan_enable = 0x1, filter_duplicates = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle hci internal command send core send opcode=0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001290 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] gle execute command cbk evindex:406 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] opcode = 0x0406, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] get addr:0xb0:66:**:**:**:00 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.765] [TIMRE_ADD][STACK_TIMER] TIMER=0xbf65e9a0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] gle hci struct to stream opcode:0x1002, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] hci command encode send tl paramlen=0x2 opcode:0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] [HCI]gle hci internal evt cbk unreg table->id = 0x1710 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] [TIMER_DEL][STACK_TIMER] TIMER=0xbf65e9a0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] gle execute command cbk evindex:1002 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] opcode = 0x1002, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] gle dd set scan enable cfm scan enabled +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] [dd]event = 0x9 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] [SLE SCAN CBK] event: 9. +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:40:15.766] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:5 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.843] op_ev = 0x180B +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.843] cfm_type = 0x1e +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.843] [dd]event = 0xb +[bs21_ws73_ros2-2] [adv_report] event_type: 0x03, addr_type: 0x0000, addr: 3c:**:**:**:4e:33 +[bs21_ws73_ros2-2] [adv_report] data length: 6, data: 0x01 0x02 0x01 0x02 0x02 0x00 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:7 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.843] stop device seek. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] scan_enable = 0x0, filter_duplicates = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] [TIMRE_ADD][STACK_TIMER] TIMER=0xbf65e9a0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] gle hci struct to stream opcode:0x1002, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] hci command encode send tl paramlen=0x2 opcode:0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.844] gle hci internal command send core send opcode=0x1002 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [TIMER_DEL][STACK_TIMER] TIMER=0xbf65e9a0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle execute command cbk evindex:1002 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] opcode = 0x1002, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle dd set scan enable cfm scan disabled +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [dd]event = 0xa +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [SLE SCAN CBK] event: 10. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [HCI]gle hci internal evt cbk unreg table->id = 0x0 +[bs21_ws73_ros2-2] [ACore] sle device discovery in, action:6 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] create conn node, addr 3c:4a:xx:xx:xx:33 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle device link add node->status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle hci struct to stream opcode:0x1401, stream_len=0x1b +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] hci command encode send tl paramlen=0x1b opcode:0x1401 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.858] gle hci internal command send core send opcode=0x1401 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1401 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] gle hci ev command status restart ertx opcode=0x1401, timeout:0x2710 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=10000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.859] gle hci ev command status in opcode=0x1401, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle access link status report in +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [gle connect cfm] result:0x0 status = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [GLE TM][LCID init] LCID = 0x0000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [GLE SM] init new remote device. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle ssap create tl link by addr add dev onaddr:0x3c:**:**:**:4e:33 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [cm]event = 0x0 +[bs21_ws73_ros2-2] [Connected] +[bs21_ws73_ros2-2] addr:3c:**:**:**:4e:33, handle:00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] remote(0x3c:**:**:**:4e:33) conn_id(0) +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] remote(0x3c:**:**:**:4e:33) state(1) +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle hci struct to stream opcode:0x1801, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] hci command encode send tl paramlen=0x2 opcode:0x1801 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] gle hci internal command send core send opcode=0x1801 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.880] [GLE SM] pairing start, role: 0x0. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.890] [GLE SM] sm pairing request. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.890] [GLE SM] io_ability: 3, oob_flag 0, psk_flag: 0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] [TIMRE_ADD][STACK_TIMER] TIMER=0x98000da0, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0134, len: 10.[2018-03-09 12:41:40.891] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1801 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci ev command status restart ertx opcode=0x1801, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci ev command status in opcode=0x1801, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci struct to stream opcode:0x1812, stream_len=0xf +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] hci command encode send tl paramlen=0xf opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.891] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0134.[2018-03-09 12:41:40.897] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.897] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] gle read remote features complete. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] cfm_type = 0x11 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] gle set data len, lcid: 0x0000, tx octets: 0xfe +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.912] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci struct to stream opcode:0x1802, stream_len=0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] hci command encode send tl paramlen=0x2 opcode:0x1802 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci internal command send core send opcode=0x1802 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci internal command send core send opcode=0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1802 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.913] gle hci ev command status restart ertx opcode=0x1802, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] gle hci struct to stream opcode:0x1804, stream_len=0x4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] hci command encode send tl paramlen=0x4 opcode:0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.914] gle hci ev command status in opcode=0x1802, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.915] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.915] gle execute command cbk evindex:1804 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.915] [GLE HCI] set data len result = 0x0, opindex: 0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.915] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.915] [HCI]gle hci internal evt cbk unreg table->id = 0x1804 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.937] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.937] gle read remote version complete. +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.937] cfm_type = 0x12 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.937] [cm]event = 0x7 +[bs21_ws73_ros2-2] [2018-03-09 12:41:40.937] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [GLE SM] data recv, lcid: 0x0000, len: 10, opcode: 0x0135 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [GLE SM] algorithm negotiate: 2 2 2 0[2018-03-09 12:41:41.474] [GLE SM] sm pairing confirm, authentication method: 1. +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [TIMER_DEL][STACK_TIMER] TIMER=0x98000da0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0136, len: 70.[2018-03-09 12:41:41.474] [GLE SM] event = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001450, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.474] gle hci struct to stream opcode:0x1812, stream_len=0x4b +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] hci command encode send tl paramlen=0x4b opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001450 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0136.[2018-03-09 12:41:41.475] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.475] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.500] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.500] [GLE SM] data recv, lcid: 0x0000, len: 64, opcode: 0x0137 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x0138 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0139, len: 16.[2018-03-09 12:41:41.537] [GLE SM] authentication pdu send, opcode 0x0139. +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] [TIMRE_ADD][STACK_TIMER] TIMER=0xbf65e9a0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] gle hci struct to stream opcode:0x1812, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] hci command encode send tl paramlen=0x15 opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.537] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] [TIMER_DEL][STACK_TIMER] TIMER=0xbf65e9a0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0139.[2018-03-09 12:41:41.538] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:41.538] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.624] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.624] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x013a +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.624] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001790, TIME=30000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] [GLE AA] controller data send, co_hdl: 0x0000, data_index: 0x0141, len: 16.[2018-03-09 12:41:42.634] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] [TIMRE_ADD][STACK_TIMER] TIMER=0xa00011e0, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] gle hci struct to stream opcode:0x1812, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] hci command encode send tl paramlen=0x15 opcode:0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.634] gle hci internal command send core send opcode=0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] [TIMER_DEL][STACK_TIMER] TIMER=0xa00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] gle read remote cs caps status(18) +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] [GLE DM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] [ACore] gle manager general event report opcode[05] +[bs21_ws73_ros2-2] general event report opcode[05] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] gle execute command cbk evindex:1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] opcode = 0x1812, cmd_result = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] gle send controller data cfm, co_handle: 0x0000, data_index: 0x0141.[2018-03-09 12:41:42.635] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.635] [HCI]gle hci internal evt cbk unreg table->id = 0x1812 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle access controller data cbk in +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE SM] data recv, lcid: 0x0000, len: 16, opcode: 0x0142 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE SM] gle sm authentication procedure in, method: 0x1. +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE SM] event = 0x2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle acore config data write:1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle acore set product type sys_config 0x:0! +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle acore save sm key write_index:00! +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle acore config data write:2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE SM] enable encryption +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE AA] enable encryption, crypt 1, key_deriv 1, integr_chk 0. +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle execute command send enter +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [GLE HCI] free hci cbk +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] remote(0x3c:**:**:**:0x4e:0x33) conn_id(0) +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] auth status:0, crypto algo:2, key deriv algo:2, integr chk ind:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] [TIMRE_ADD][STACK_TIMER] TIMER=0x98000f60, TIME=2000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle hci struct to stream opcode:0x1c03, stream_len=0x15 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] hci command encode send tl paramlen=0x15 opcode:0x1c03 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle hci command check send check and send, cmd_num:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.725] gle hci internal command send core send opcode=0x1c03 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] [HCI]gle hci ev command status num_hci_command_packets(0x1) command_opcode:0x1c03 status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] gle hci ev command status restart ertx opcode=0x1c03, timeout:0x2904 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] [TIMER_DEL][STACK_TIMER] TIMER=0x98000f60 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] [TIMRE_ADD][STACK_TIMER] TIMER=0x98000f60, TIME=10500 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.726] gle hci ev command status in opcode=0x1c03, status:0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [TIMER_DEL][STACK_TIMER] TIMER=0x98000f60 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] op_ev = 0x0011 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] cfm_type = 0x27 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [GLE SM] encrypt change, lcid: 0x0000, status: 0x0, encryption change: 0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001790 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [GLE SM] timer repeated attempts, job: 1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [GLE SM] event = 0x3 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] gle hci command check send check and send, cmd_num:0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] conn_id(0) pair result:3 +[bs21_ws73_ros2-2] [ssap client] pair complete conn_id:0, addr:3c:4a:83:2f:4e:33 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [uapi ssapc_exchange_info_req]mtu = 300 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [gle ssapc_exchange_mtu]mtu = 0x12c +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] [ssapc exchange_info_req_handle]mtu = 300, version = 0x1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] mtu = 300, version = 0x0001 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.799] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.800] [TIMRE_ADD][STACK_TIMER] TIMER=0xa00011e0, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssap check type by opcode trans->op:0x03 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] tl task[1] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] tl trans done trans->op:[0x03] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] [TIMER_DEL][STACK_TIMER] TIMER=0xa00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] op_code[0x03], control_code[0x03], mtu[300], version[0x0001] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] tl->mtu[300] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] task[1] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] task[0x01] complete, err_code = 0x00 +[bs21_ws73_ros2-2] ssapc exchange info, conn_id:0, err_code:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] tl done err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssapc handle msg type:7 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] sample ssapc indication cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssapc find structure conn_id:0, type:1, start hdl:1, end hdl:ffff +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssapc find structure uuid len:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] addr:3c:**:**:**:4e:33, type = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssap discovery service all +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] ssapc discovery services conn_handle = 0x0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] task->type = 0x1, task->hdl = 0x1ffff, task->uuid.len = 0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] task_id = 0x82, task_type = 0x1, op_code = 0x04 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] dicovery task send uuid.len = 0, uuid:0x0000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] dicovery task send start_hdl: 0x0001, end_hdl: 0xffff +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] data_len = 6 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.824] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001340, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.849] ssap check type by opcode trans->op:0x05 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.849] tl task[130] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.849] tl trans done trans->op:[0x05] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001340 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] data_len = 9 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] control_code.fragment:0x03, mode:0x00, task->type:0x01, task_id:0x82, task->uuid.len:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] curent_idx:0, data_len:7 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] uuid_len: 2, service->uuid.len: 2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] ssapc discovery service event handle +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] con_hdl:[0x00], hdl:[0x01], end_hdl:[0x02], svc->type_indication:[0x02] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [disc_srv_rsp]start_hdl:[0x01], end_hdl:[0x02] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] uuid:[0x00][0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] discovery service start hdl:1, end hdl:2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] sample ssapc discovery services cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] uuid_len = 2, last_hdl = 0x0002, idx = 7 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] cur_hdl:[0x0001ffff], last_hdl:[0x0002] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] task[130] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] task[0x82] complete, err_code = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] ssapc handle msg type:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] sample ssapc discovery service cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] op_code:0x04, type:0x01, uuid.len:0, err_code:0x00 +[bs21_ws73_ros2-2] discovery character cbk complete in +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [internal_discovery_services] op_code:0x04, type:0x01, uuid.len:0, err_code:0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] tl done err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] ssapc handle msg type:2 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] sample ssapc discovery service cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [ssap client] ssapc_write_req, conn_id:0 data_len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] ssapc write req conn_id:0, hdl:1, data len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] ssapc write req addr:0x3c:**:**:**:0x4e:0x33 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] handle = 0x01, type = 0x00, len = 4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [ssapc write_value_req]data_type = 0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] task create tl connection tl->status = 0x2, tl->mask = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] write_data_len = 4, data_len = 4, mtu = 295 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.850] [TIMRE_ADD][STACK_TIMER] TIMER=0xa0001130, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] ssap check type by opcode trans->op:0x0e +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] tl task[8] trans done +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] tl trans done trans->op:[0x0e] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] [TIMER_DEL][STACK_TIMER] TIMER=0xa0001130 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] [write rsp]hdl[0x0001], data_type[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] ssapc write rsp op_code[0x0e], control_code[0x03], value_len[7] +[bs21_ws73_ros2-2] ssapc write rsp handle:1 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] task[8] complete, err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] task[0x08] complete, err_code = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] [write_req_complete]err_code:0x00 +[bs21_ws73_ros2-2] [sle write_req_complete_cbk]conn_id:0, err_code:0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] tl done err_code:[0x00] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] ssapc handle msg type:5 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] sample ssapc write cfm cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] ssapc read req conn_id:0, hdl:1, type:0 + +[nearlink_robot_node-1] [INFO] [1520599455.450516387] [nearlink_robot]: recv ws73 keycode 0x67 +[nearlink_robot_node-1] [INFO] [1520599469.713003727] [nearlink_robot]: recv ws73 keycode 0x67 +[nearlink_robot_node-1] [INFO] [1520599470.612993769] [nearlink_robot]: recv ws73 keycode 0x67 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] ssapc read req addr:0x3c:**:**:**:0x4e:0x33 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] handle = 0x01, type = 0x00 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.874] need wait for response +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.875] [TIMRE_ADD][STACK_TIMER] TIMER=0xa00011e0, TIME=12000 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.899] ssap check type by opcode trans->op:0x09 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.899] tl trans done trans->op:[0x09] +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.900] [TIMER_DEL][STACK_TIMER] TIMER=0xa00011e0 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.900] op_code[0x09], control_code[0x03], data_len[4] +[bs21_ws73_ros2-2] ssapc read rsp handle:0, data len:4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.900] ssapc handle msg type:4 +[bs21_ws73_ros2-2] [2018-03-09 12:41:42.900] sample ssapc read cfm cbk success +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.275] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.275] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.275] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.450] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.450] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:15.450] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x00 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:0 +[bs21_ws73_ros2-2] [sle ws73] nearlink_mq attr mq_curmsgs 0 mq_maxmsg 10 +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.512] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.512] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.512] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.712] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.712] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:29.712] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x00 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:0 +[bs21_ws73_ros2-2] [sle ws73] nearlink_mq attr mq_curmsgs 0 mq_maxmsg 10 +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.400] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.400] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.400] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x52 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:1 +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.612] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.612] ssapc handle msg type:8 +[bs21_ws73_ros2-2] [2018-03-09 12:44:30.612] sample ssapc notification cbk success +[bs21_ws73_ros2-2] [sle ws73] sle_rcu_notification_cb ok +[bs21_ws73_ros2-2] [sle ws73] sle rcu recive notification +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.kind = [1] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.special_key = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.reversed = [0] +[bs21_ws73_ros2-2] [sle ws73] recv_usb_hid_rcu_keyboard.key = 0x00 0x00 0x00 0x00 0x00 0x00 +[bs21_ws73_ros2-2] code:0x67,value:0 +[bs21_ws73_ros2-2] [sle ws73] nearlink_mq attr mq_curmsgs 0 mq_maxmsg 10 +[bs21_ws73_ros2-2] [2018-03-09 12:44:31.775] op_code[0x0f], control_code[0x03], data_len[13] +[bs21_ws73_ros2-2] [2018-03-09 12:44:31.775] ssapc handle msg type:8 +[nearlink_robot_node-1] [INFO] [1520599471.938074520] [nearlink_robot]: recv ws73 keycode 0x67 \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c.bak2 b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server.c similarity index 78% rename from hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c.bak2 rename to hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server.c index 53c45f9036eeb5e5bf7f31249c824ebd270710e3..2471ca4567349112f5baf7875e20e0910fa7d065 100644 --- a/hi-sle/RemoteController_WS63E_Source_Code/SLE_OSPP_Server/src/SLE_OSPP_Server.c.bak2 +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server.c @@ -17,7 +17,7 @@ #include "i2c.h" // I2C接口,提供I2C通信的实现和接口 #include "osal_debug.h" // OS抽象层调试,提供调试相关的操作函数 #include "cmsis_os2.h" // CMSIS-RTOS v2 API,提供RTOS的API接口(重复包含) -#include "watchdog.h" + #include "adc.h" #include "adc_porting.h" @@ -32,7 +32,7 @@ #define OCTET_BIT_LEN 8 // 八位字节长度 #define UUID_LEN_2 2 // UUID 长度为 2 字节 - +// 定义左摇杆引脚 #define LEFT_JOYSTICK_X_PIN 9 #define LEFT_JOYSTICK_Y_PIN 8 #define LEFT_JOYSTICK_Z_PIN 14 @@ -42,11 +42,11 @@ #define RIGHT_JOYSTICK_Z_PIN 6 // 定义ADC通道 #define LEFT_JOYSTICK_X_Channel 1 -#define LEFT_JOYSTICK_Y_Channel 2 -#define RIGHT_JOYSTICK_X_Channel 3 -#define RIGHT_JOYSTICK_Y_Channel 0 +#define LEFT_JOYSTICK_Y_Channel 3 // 2 +#define RIGHT_JOYSTICK_X_Channel 0 +#define RIGHT_JOYSTICK_Y_Channel 3 -#define ADC_AUTO_SAMPLE_TEST_TIMES 100 +#define ADC_AUTO_SAMPLE_TEST_TIMES 500 #define FILTER_WINDOW_SIZE 10 // 定义滤波窗口大小 #define ADC_TASK_STACK_SIZE 0x1000 @@ -90,136 +90,189 @@ void Joystick_Init(void) uapi_pin_set_pull(RIGHT_JOYSTICK_Z_PIN, PIN_PULL_TYPE_DOWN); } -// 全局变量,用于存储LED的状态 -static int g_ledState = 0; - -// GPIO中断回调函数,当按钮被按下时调用 -static void gpio_callback_func(pin_t pin, uintptr_t param) +gpio_level_t Left_Joystick_Read_Z(void) { - UNUSED(param); // 未使用的参数 - if (pin == LEFT_JOYSTICK_Z_PIN) - { - g_ledState = 1; - eulercar_control_stop(); - printf("中断信号:%d\n", g_ledState); - } - else if (pin == LEFT_BUTTON_PIN) - { - g_ledState = 2; - eulercar_control_forward(); - printf("中断信号:%d\n", g_ledState); - } - else if (pin == RIGHT_BUTTON_PIN) - { - g_ledState = 3; - eulercar_control_backward(); - printf("中断信号:%d\n", g_ledState); - } - else if (pin == LEFT_TOGGLE_PIN) - { - g_ledState = 4; - eulercar_control_left(); - printf("中断信号:%d\n", g_ledState); - } - else if (pin == RIGHT_TOGGLE_PIN) - { - g_ledState = 5; - eulercar_control_right(); - printf("中断信号:%d\n", g_ledState); - } - printf("Button pressed.\r\n"); // 打印按钮按下的信息 + return uapi_gpio_get_val(LEFT_JOYSTICK_Z_PIN); } -// 按钮任务函数 -static void *button_task(const char *arg) -{ - unused(arg); // 未使用的参数 +#define ACTION 1 +#define NONE 0 - // 注册GPIO中断回调函数,当按钮引脚检测到下降沿时触发中断 - // 注册GPIO中断服务函数 - errcode_t ret0 = uapi_gpio_register_isr_func(14, GPIO_INTERRUPT_RISING_EDGE, gpio_callback_func); - if (ret0 != 0) - { - printf("Failed to register ISR for 14\n"); - } - errcode_t ret1 = uapi_gpio_register_isr_func(LEFT_BUTTON_PIN, GPIO_INTERRUPT_RISING_EDGE, gpio_callback_func); - if (ret1 != 0) - { - printf("Failed to register ISR for LEFT_BUTTON_PIN\n"); - } +int sum; +int num; +int fil_buffer = 0; - errcode_t ret2 = uapi_gpio_register_isr_func(RIGHT_BUTTON_PIN, GPIO_INTERRUPT_RISING_EDGE, gpio_callback_func); - if (ret2 != 0) - { - printf("Failed to register ISR for RIGHT_BUTTON_PIN\n"); - } +int j = 1; +int *num_buff; + +int stop_x = 0; +int stop_y = 0; +int stop = 1; - errcode_t ret3 = uapi_gpio_register_isr_func(LEFT_TOGGLE_PIN, GPIO_INTERRUPT_FALLING_EDGE, gpio_callback_func); - if (ret3 != 0) +void test_adc_callback_X(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) +{ + UNUSED(next); // 未使用的参数 + // static JoystickStatus rightJoystick = {0, -1}; + sum = 0; + num = 0; + if (ch == LEFT_JOYSTICK_X_Channel) { - printf("Failed to register ISR for LEFT_TOGGLE_PIN\n"); + for (uint32_t i = 0; i < length; i++) + { + + // 打印ADC通道和电压值 + if (length > 2) + { + if ((buffer[i] < 1500 || buffer[i] > 1900) && buffer[i] != 0) + { + sum += buffer[i]; + num += 1; + // osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); + } + } + } + if (num >= (signed int)length / 2) + { + fil_buffer = sum / num; + if (fil_buffer < 1) + { + fil_buffer = 0; + } + } + else + { + printf(" -number- \n"); + fil_buffer = 0; + } + printf("channel: %d, ---XXX-Filtered voltage: %dmv\n", ch, fil_buffer); + printf("length = %d\n", length); + + if (fil_buffer < 1000 && fil_buffer != 0) + { + printf("X轴左推\n"); + eulercar_control_left(); + stop = 0; + } + else if (fil_buffer > 2000 && fil_buffer != 0) + { + printf("X轴右推\n"); + eulercar_control_right(); + stop = 0; + } + else + { + // eulercar_control_stop(); + stop_x = 1; + } } +} - errcode_t ret4 = uapi_gpio_register_isr_func(RIGHT_TOGGLE_PIN, GPIO_INTERRUPT_RISING_EDGE, gpio_callback_func); - if (ret4 != 0) +void test_adc_callback_Y(uint8_t ch, uint32_t *buffer, uint32_t length, bool *next) +{ + UNUSED(next); // 未使用的参数 + // static JoystickStatus rightJoystick = {0, -1}; + sum = 0; + num = 0; + if (ch == LEFT_JOYSTICK_Y_Channel) { - printf("Failed to register ISR for RIGHT_TOGGLE_PIN\n"); + for (uint32_t i = 0; i < length; i++) + { + + // 打印ADC通道和电压值 + // osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); + if (length > 2) + { + if ((buffer[i] < 1000 || buffer[i] > 2000) && buffer[i] != 0) + { + sum += buffer[i]; + num += 1; + osal_printk("[IRQ]channel: %d, voltage: %dmv\r\n", ch, buffer[i]); + } + } + } + if (num >= (signed int)length / 2) + { + fil_buffer = sum / num; + if (fil_buffer < 1) + { + fil_buffer = 0; + } + } + else + { + printf(" -number- \n"); + fil_buffer = 0; + } + printf("channel: %d, ---YYY--Filtered voltage: %dmv\n", ch, fil_buffer); + printf("length = %d\n", length); + + if (fil_buffer < 1000 && fil_buffer != 0) + { + printf("Y轴上推\n"); + eulercar_control_forward(); + stop = 0; + } + else if (fil_buffer > 2000 && fil_buffer != 0) + { + printf("Y轴下推\n"); + eulercar_control_backward(); + stop = 0; + } + else + { + // eulercar_control_stop(); + stop_y = 1; + } } +} + +void joystick_task(const char *arg) +{ + UNUSED(arg); + osal_printk("start adc sample test"); + uapi_adc_init(ADC_CLOCK_500KHZ); + uapi_adc_power_en(AFE_SCAN_MODE_MAX_NUM, true); + adc_scan_config_t config = { + .type = 0, + .freq = 1, + }; - // 无限循环,持续执行任务 while (1) { - uapi_watchdog_kick(); // 喂狗,防止程序出现异常系统挂死 + uapi_adc_auto_scan_ch_enable(LEFT_JOYSTICK_Y_Channel, config, test_adc_callback_Y); + uapi_adc_auto_scan_ch_disable(LEFT_JOYSTICK_Y_Channel); + + uapi_adc_auto_scan_ch_enable(LEFT_JOYSTICK_X_Channel, config, test_adc_callback_X); + uapi_adc_auto_scan_ch_disable(LEFT_JOYSTICK_X_Channel); + + if (stop == 0) + { + if (stop_x == 1 && stop_y == 1) + { + + eulercar_control_stop(); + printf("星闪小车停止!"); + stop_x = 0; + stop_y = 0; + stop = 1; + } + } + + // if (Left_Joystick_Read_Z() == 1) + // { + // eulercar_control_stop(); + // osal_mdelay(10); + // } + + osal_msleep(ADC_AUTO_SAMPLE_TEST_TIMES); } - return NULL; // 返回NULL表示任务结束 } -// void joystick_task(const char *arg) -// { -// UNUSED(arg); - -// while (1) -// { - -// gpio_level_t z_button_state = uapi_gpio_get_val(LEFT_JOYSTICK_Z_PIN); -// gpio_level_t left_button_state = uapi_gpio_get_val(LEFT_BUTTON_PIN); -// gpio_level_t right_button_state = uapi_gpio_get_val(RIGHT_BUTTON_PIN); -// gpio_level_t left_toggle_state = uapi_gpio_get_val(LEFT_TOGGLE_PIN); -// gpio_level_t right_toggle_state = uapi_gpio_get_val(LEFT_TOGGLE_PIN); - -// printf("z Button State: %d\n", z_button_state); -// printf("Left Button State: %d\n", left_button_state); -// printf("Right Button State: %d\n", right_button_state); -// printf("Left Toggle State: %d\n", left_toggle_state); -// printf("Right Toggle State: %d\n", right_toggle_state); -// osal_mdelay(1000); -// // if (uapi_gpio_get_val(LEFT_JOYSTICK_Z_PIN) == 1) -// // { -// // eulercar_control_stop(); -// // } -// // else if (uapi_gpio_get_val(LEFT_BUTTON_PIN) == 1) -// // { -// // eulercar_control_forward(); -// // } -// // else if (uapi_gpio_get_val(RIGHT_BUTTON_PIN) == 1) -// // { -// // eulercar_control_backward(); -// // } -// // else if (uapi_gpio_get_val(LEFT_TOGGLE_PIN) == 1) -// // { -// // eulercar_control_left(); -// // } -// // else if (uapi_gpio_get_val(RIGHT_TOGGLE_PIN) == 1) -// // { -// // eulercar_control_right(); -// // } -// } -// } static void joystick_entry(void) { osal_task *task_handle = NULL; // 任务句柄初始化为NULL osal_kthread_lock(); // 锁定内核线程,防止任务创建过程中被打断 - task_handle = osal_kthread_create((osal_kthread_handler)button_task, 0, "LedControlTask", + task_handle = osal_kthread_create((osal_kthread_handler)joystick_task, 0, "LedControlTask", ADC_TASK_STACK_SIZE); if (task_handle != NULL) // 如果任务创建成功 { diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c new file mode 100644 index 0000000000000000000000000000000000000000..4246e1c6b214aa6f9a3615e6b2ee81de55bbfb09 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/SLE_OSPP_Server_adv.c @@ -0,0 +1,292 @@ +/* +# Copyright (C) 2024 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + */ +#include "securec.h" // 安全C库,用于安全的内存操作 +#include "errcode.h" // 错误码定义 +#include "osal_addr.h" // OS抽象层地址操作 +#include "sle_common.h" // SLE通用定义 +#include "sle_device_discovery.h" // SLE设备发现功能 +#include "sle_errcode.h" // SLE错误码定义 +#include "../inc/SLE_OSPP_Server_adv.h" // SLE LED服务器广播头文件 + +#include "cmsis_os2.h" // CMSIS-RTOS API +#include "debug_print.h" // 调试打印功能 + +/* sle device name */ +#define NAME_MAX_LENGTH 16 // 设备名称的最大长度 +/* 连接调度间隔12.5ms,单位125us */ +#define SLE_CONN_INTV_MIN_DEFAULT 0x64 // 最小连接间隔默认值 +/* 连接调度间隔12.5ms,单位125us */ +#define SLE_CONN_INTV_MAX_DEFAULT 0x64 // 最大连接间隔默认值 +/* 连接调度间隔25ms,单位125us */ +#define SLE_ADV_INTERVAL_MIN_DEFAULT 0xC8 // 最小广播间隔默认值 +/* 连接调度间隔25ms,单位125us */ +#define SLE_ADV_INTERVAL_MAX_DEFAULT 0xC8 // 最大广播间隔默认值 +/* 超时时间5000ms,单位10ms */ +#define SLE_CONN_SUPERVISION_TIMEOUT_DEFAULT 0x1F4 // 连接监督超时默认值 +/* 超时时间4990ms,单位10ms */ +#define SLE_CONN_MAX_LATENCY 0x1F3 // 最大连接延迟默认值 +/* 广播发送功率 */ +#define SLE_ADV_TX_POWER 10 // 广播发送功率 +/* 广播ID */ +#define SLE_ADV_HANDLE_DEFAULT 1 // 广播句柄默认值 +/* 最大广播数据长度 */ +#define SLE_ADV_DATA_LEN_MAX 251 // 最大广播数据长度 +/* 广播名称 */ +static uint8_t sle_local_name[NAME_MAX_LENGTH] = {'S', 'L', 'E', '_', 'O', 'S', 'P', 'P', '_', + 'S', 'E', 'R', 'V', 'E', 'R', '\0'}; // 本地设备名称 + +// 设置广播本地名称 +static uint16_t example_sle_set_adv_local_name(uint8_t *adv_data, uint16_t max_len) +{ + errno_t ret = -1; // 错误码初始化为-1 + uint8_t index = 0; // 广播数据索引初始化为0 + + uint8_t *local_name = sle_local_name; // 获取本地设备名称 + uint8_t local_name_len = (uint8_t)strlen((char *)local_name); // 获取本地设备名称长度 + for (uint8_t i = 0; i < local_name_len; i++) + { + PRINT("[SLE Adv] local_name[%d] = 0x%02x\r\n", i, local_name[i]); // 打印本地设备名称的每个字符 + } + + adv_data[index++] = local_name_len + 1; // 设置广播数据长度 + adv_data[index++] = SLE_ADV_DATA_TYPE_COMPLETE_LOCAL_NAME; // 设置广播数据类型为完整本地名称 + ret = memcpy_s(&adv_data[index], max_len - index, local_name, local_name_len); // 复制本地名称到广播数据中 + if (ret != EOK) + { // 检查复制是否成功 + PRINT("[SLE Adv] memcpy fail\r\n"); // 打印复制失败信息 + return 0; // 返回0表示失败 + } + return (uint16_t)index + local_name_len; // 返回广播数据的总长度 +} + +// 设置广播数据 +static uint16_t example_sle_set_adv_data(uint8_t *adv_data) +{ + size_t len = 0; // 数据长度初始化为0 + uint16_t idx = 0; // 广播数据索引初始化为0 + errno_t ret = 0; // 错误码初始化为0 + + len = sizeof(struct sle_adv_common_value); // 获取通用广播数据结构体的长度 + struct sle_adv_common_value adv_disc_level = { + .length = len - 1, // 设置数据长度 + .type = SLE_ADV_DATA_TYPE_DISCOVERY_LEVEL, // 设置数据类型为发现级别 + .value = SLE_ANNOUNCE_LEVEL_NORMAL, // 设置数据值为正常级别 + }; + ret = memcpy_s(&adv_data[idx], SLE_ADV_DATA_LEN_MAX - idx, &adv_disc_level, len); // 复制发现级别数据到广播数据中 + if (ret != EOK) + { // 检查复制是否成功 + PRINT("[SLE Adv] adv_disc_level memcpy fail\r\n"); // 打印复制失败信息 + return 0; // 返回0表示失败 + } + idx += len; // 更新广播数据索引 + + len = sizeof(struct sle_adv_common_value); // 获取通用广播数据结构体的长度 + struct sle_adv_common_value adv_access_mode = { + .length = len - 1, // 设置数据长度 + .type = SLE_ADV_DATA_TYPE_ACCESS_MODE, // 设置数据类型为访问模式 + .value = 0, // 设置数据值为0 + }; + ret = memcpy_s(&adv_data[idx], SLE_ADV_DATA_LEN_MAX - idx, &adv_access_mode, len); // 复制访问模式数据到广播数据中 + if (ret != EOK) + { // 检查复制是否成功 + PRINT("[SLE Adv] memcpy fail\r\n"); // 打印复制失败信息 + return 0; // 返回0表示失败 + } + idx += len; // 更新广播数据索引 + return idx; // 返回广播数据的总长度 +} + +// 设置扫描响应数据 +static uint16_t example_sle_set_scan_response_data(uint8_t *scan_rsp_data) +{ + uint16_t idx = 0; // 扫描响应数据索引初始化为0 + errno_t ret = -1; // 错误码初始化为-1 + size_t scan_rsp_data_len = sizeof(struct sle_adv_common_value); // 获取通用广播数据结构体的长度 + + struct sle_adv_common_value tx_power_level = { + .length = scan_rsp_data_len - 1, // 设置数据长度 + .type = SLE_ADV_DATA_TYPE_TX_POWER_LEVEL, // 设置数据类型为发送功率级别 + .value = SLE_ADV_TX_POWER, // 设置数据值为广播发送功率 + }; + ret = memcpy_s(scan_rsp_data, SLE_ADV_DATA_LEN_MAX, &tx_power_level, scan_rsp_data_len); // 复制发送功率级别数据到扫描响应数据中 + if (ret != EOK) + { // 检查复制是否成功 + PRINT("[SLE Adv] sle scan response data memcpy fail\r\n"); // 打印复制失败信息 + return 0; // 返回0表示失败 + } + idx += scan_rsp_data_len; // 更新扫描响应数据索引 + + /* set local name */ + idx += example_sle_set_adv_local_name(&scan_rsp_data[idx], SLE_ADV_DATA_LEN_MAX - idx); // 设置本地名称到扫描响应数据中 + return idx; // 返回扫描响应数据的总长度 +} + +static uint8_t g_sle_local_addr[SLE_ADDR_LEN] = {0x3c, 0x4a, 0x83, 0x2f, 0x4e, 0x33}; // 要遥控器设备地址 + +// 设置本地设备地址 +static void example_sle_set_addr(void) +{ + uint8_t *addr = g_sle_local_addr; // 获取本地设备地址 + + sle_addr_t sle_addr = {0}; // 初始化SLE地址结构体 + sle_addr.type = 0; // 设置地址类型为0 + if (memcpy_s(sle_addr.addr, SLE_ADDR_LEN, addr, SLE_ADDR_LEN) != EOK) + { // 复制本地设备地址到SLE地址结构体中 + PRINT("[SLE Adv] addr memcpy fail \r\n"); // 打印复制失败信息 + } + + if (sle_set_local_addr(&sle_addr) == ERRCODE_SUCC) + { // 设置本地设备地址并检查是否成功 + PRINT("[SLE Adv] set sle addr SUCC \r\n"); // 打印设置成功信息 + } +} + +static uint8_t g_local_device_name[] = {'s', 'l', 'e', '_', 'l', 'e', 'd', '_', 's', 'e', 'r', 'v', 'e', 'r'}; // 本地设备名称 + +// 设置本地设备名称 +static void example_sle_set_name(void) +{ + errcode_t ret = ERRCODE_SUCC; // 错误码初始化为成功 + ret = sle_set_local_name(g_local_device_name, sizeof(g_local_device_name)); // 设置本地设备名称并获取返回码 + if (ret != ERRCODE_SUCC) + { // 检查设置是否成功 + PRINT("[SLE Adv] set local name fail, ret:%x\r\n", ret); // 打印设置失败信息 + } +} + +// 设置默认的广播参数 +static errcode_t example_sle_set_default_announce_param(void) +{ + sle_announce_param_t param = {0}; // 初始化广播参数结构体 + param.announce_mode = SLE_ANNOUNCE_MODE_CONNECTABLE_SCANABLE; // 设置广播模式为可连接可扫描 + param.announce_handle = SLE_ADV_HANDLE_DEFAULT; // 设置广播句柄为默认值 + param.announce_gt_role = SLE_ANNOUNCE_ROLE_T_CAN_NEGO; // 设置广播角色为可协商 + param.announce_level = SLE_ANNOUNCE_LEVEL_NORMAL; // 设置广播级别为正常 + param.announce_channel_map = SLE_ADV_CHANNEL_MAP_DEFAULT; // 设置广播信道映射为默认值 + param.announce_interval_min = SLE_ADV_INTERVAL_MIN_DEFAULT; // 设置最小广播间隔为默认值 + param.announce_interval_max = SLE_ADV_INTERVAL_MAX_DEFAULT; // 设置最大广播间隔为默认值 + param.conn_interval_min = SLE_CONN_INTV_MIN_DEFAULT; // 设置最小连接间隔为默认值 + param.conn_interval_max = SLE_CONN_INTV_MAX_DEFAULT; // 设置最大连接间隔为默认值 + param.conn_max_latency = SLE_CONN_MAX_LATENCY; // 设置最大连接延迟为默认值 + param.conn_supervision_timeout = SLE_CONN_SUPERVISION_TIMEOUT_DEFAULT; // 设置连接监督超时为默认值 + + if (memcpy_s(param.own_addr.addr, SLE_ADDR_LEN, g_sle_local_addr, SLE_ADDR_LEN) != EOK) + { // 复制本地设备地址到广播参数中 + PRINT("[SLE Adv] set sle adv param addr memcpy fail\r\n"); // 打印复制失败信息 + return ERRCODE_MEMCPY; // 返回内存复制错误码 + } + + return sle_set_announce_param(param.announce_handle, ¶m); // 设置广播参数并返回状态码 +} + +// 设置默认的广播数据 +static errcode_t example_sle_set_default_announce_data(void) +{ + errcode_t ret = ERRCODE_FAIL; // 错误码初始化为失败 + uint8_t announce_data_len = 0; // 广播数据长度初始化为0 + uint8_t seek_data_len = 0; // 扫描响应数据长度初始化为0 + sle_announce_data_t data = {0}; // 初始化广播数据结构体 + uint8_t adv_handle = SLE_ADV_HANDLE_DEFAULT; // 广播句柄初始化为默认值 + uint8_t announce_data[SLE_ADV_DATA_LEN_MAX] = {0}; // 初始化广播数据数组 + uint8_t seek_rsp_data[SLE_ADV_DATA_LEN_MAX] = {0}; // 初始化扫描响应数据数组 + + PRINT("[SLE Adv] set adv data default\r\n"); // 打印设置默认广播数据信息 + announce_data_len = example_sle_set_adv_data(announce_data); // 设置广播数据并获取长度 + data.announce_data = announce_data; // 设置广播数据 + data.announce_data_len = announce_data_len; // 设置广播数据长度 + + seek_data_len = example_sle_set_scan_response_data(seek_rsp_data); // 设置扫描响应数据并获取长度 + data.seek_rsp_data = seek_rsp_data; // 设置扫描响应数据 + data.seek_rsp_data_len = seek_data_len; // 设置扫描响应数据长度 + + ret = sle_set_announce_data(adv_handle, &data); // 设置广播数据并获取返回码 + if (ret == ERRCODE_SUCC) + { // 检查设置是否成功 + PRINT("[SLE Adv] set announce data success."); // 打印设置成功信息 + } + else + { + PRINT("[SLE Adv] set adv param fail."); // 打印设置失败信息 + } + return ERRCODE_SUCC; // 返回成功码 +} + +// 广播启用回调函数 +void example_sle_announce_enable_cbk(uint32_t announce_id, errcode_t status) +{ + PRINT("[SLE Adv] sle announce enable id:%02x, state:%02x\r\n", announce_id, status); // 打印广播启用信息 +} + +// 广播禁用回调函数 +void example_sle_announce_disable_cbk(uint32_t announce_id, errcode_t status) +{ + PRINT("[SLE Adv] sle announce disable id:%02x, state:%02x\r\n", announce_id, status); // 打印广播禁用信息 +} + +// 广播终止回调函数 +void example_sle_announce_terminal_cbk(uint32_t announce_id) +{ + PRINT("[SLE Adv] sle announce terminal id:%02x\r\n", announce_id); // 打印广播终止信息 +} + +// SLE启用回调函数 +void example_sle_enable_cbk(errcode_t status) +{ + PRINT("[SLE Adv] sle enable status:%02x\r\n", status); // 打印SLE启用状态信息 +} + +// 注册广播相关的回调函数 +// 注册SLE广播相关的回调函数 +void example_sle_announce_register_cbks(void) +{ + sle_announce_seek_callbacks_t seek_cbks = {0}; // 初始化广播回调函数结构体 + + // 注册广播启用回调函数 + seek_cbks.announce_enable_cb = example_sle_announce_enable_cbk; + + // 注册广播禁用回调函数 + seek_cbks.announce_disable_cb = example_sle_announce_disable_cbk; + + // 注册广播终止回调函数 + seek_cbks.announce_terminal_cb = example_sle_announce_terminal_cbk; + + // 注册SLE启用回调函数 + seek_cbks.sle_enable_cb = example_sle_enable_cbk; + + // 注册所有广播回调函数 + sle_announce_seek_register_callbacks(&seek_cbks); +} + +// 初始化SLE服务器广播的函数 +errcode_t example_sle_server_adv_init(void) +{ + PRINT("[SLE Adv] example_sle_server_adv_init in\r\n"); // 打印初始化开始信息 + + example_sle_announce_register_cbks(); // 注册广播相关的回调函数 + + example_sle_set_default_announce_param(); // 设置默认的广播参数 + + example_sle_set_default_announce_data(); // 设置默认的广播数据 + + example_sle_set_addr(); // 设置设备地址 + + example_sle_set_name(); // 设置设备名称 + + sle_start_announce(SLE_ADV_HANDLE_DEFAULT); // 启动广播 + + PRINT("[SLE Adv] example_sle_server_adv_init out\r\n"); // 打印初始化结束信息 + + return ERRCODE_SUCC; // 返回成功码 +} \ No newline at end of file diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/button.c b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/button.c new file mode 100644 index 0000000000000000000000000000000000000000..d07ee44ca507563ca1bfc772e7ede7a01534ca2f --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/button.c @@ -0,0 +1,31 @@ +#include "../inc/button.h" + +// 定义按键引脚 +#define LEFT_BUTTON_PIN 2 +#define RIGHT_BUTTON_PIN 4 +#define LEFT_TOGGLE_PIN 5 +#define RIGHT_TOGGLE_PIN 3 + +#define DEBOUNCE_DELAY 5 // 消抖延时,单位为毫秒 +#define DEBOUNCE_READS 5 // 消抖读取次数 + +// 初始化按键引脚 +void Key_Init(void) +{ + // 配置左按钮引脚为GPIO模式并设置为输入 + uapi_pin_set_mode(LEFT_BUTTON_PIN, HAL_PIO_FUNC_GPIO); + gpio_select_core(LEFT_BUTTON_PIN, CORES_APPS_CORE); + uapi_gpio_set_dir(LEFT_BUTTON_PIN, GPIO_DIRECTION_INPUT); + + // 配置右按钮引脚为GPIO模式并设置为输入 + uapi_pin_set_mode(RIGHT_BUTTON_PIN, HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(RIGHT_BUTTON_PIN, GPIO_DIRECTION_INPUT); + + // 配置左切换开关引脚为GPIO模式并设置为输入 + uapi_pin_set_mode(LEFT_TOGGLE_PIN, HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(LEFT_TOGGLE_PIN, GPIO_DIRECTION_INPUT); + + // 配置右切换开关引脚为GPIO模式并设置为输入 + uapi_pin_set_mode(RIGHT_TOGGLE_PIN, HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(RIGHT_TOGGLE_PIN, GPIO_DIRECTION_INPUT); +} diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/eulercar_control.c b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/eulercar_control.c new file mode 100644 index 0000000000000000000000000000000000000000..f3f3115551a43696d0cbf03cb16774ad0478eb46 --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/eulercar_control.c @@ -0,0 +1,148 @@ +#include "../inc/eulercar_control.h" +#include "debug_print.h" +#include "sle_ssap_server.h" // SLE SSAP服务端,提供SSAP服务端的实现和接口 +#include "osal_task.h" +#include "../inc/shake.h" + +extern uint16_t g_property_handle; +extern uint16_t g_server_id; +extern uint16_t g_conn_id; + +// 向上键报告 +usb_hid_rcu_keyboard_report_t EulerCarUp = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x52, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 向下键报告 +usb_hid_rcu_keyboard_report_t EulerCarDown = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x51, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 向左键报告 +usb_hid_rcu_keyboard_report_t EulerCarLeft = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x50, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 向右键报告 +usb_hid_rcu_keyboard_report_t EulerCarRight = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x4f, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 释放键报告 +usb_hid_rcu_keyboard_report_t EulerCarStop = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x28, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 释放键报告 +usb_hid_rcu_keyboard_report_t EulerCarRelease = { + .kind = 1, // 键盘报告类型 + .special_key = 0, // 特殊按键 + .reserve = 0, // 保留字段 + .key = {0x0, 0x00, 0x00, 0x00, 0x00, 0x00} // 按键值数组 +}; + +// 辅助函数:发送键盘报告通知 +void send_keyboard_report(usb_hid_rcu_keyboard_report_t *report) +{ + ssaps_ntf_ind_t param = {0}; // 初始化通知参数结构体 + param.handle = g_property_handle; // 设置通知的句柄 + param.type = 0; // 设置通知类型为0 + param.value = (uint8_t *)report; // 将键盘报告数据转换为 uint8_t 指针 + param.value_len = sizeof(*report); // 设置通知数据的长度 + ssaps_notify_indicate(g_server_id, g_conn_id, ¶m); // 发送通知 +} + +/** + * @brief 控制小车前进 + * + * 该函数通过发送键盘报告通知来控制小车前进。首先发送前进键报告, + * 然后延时一段时间,再发送释放键报告。最后打印一条日志信息并延时一段时间。 + */ +void eulercar_control_forward(void) +{ + send_keyboard_report(&EulerCarUp); // 发送前进键报告 + (void)osal_msleep(PRESS_RELEASE_INTERVAL); // 延时 + send_keyboard_report(&EulerCarRelease); // 发送释放键报告 + Vibration_CarControl(); + PRINT("[SLE Server] 星闪小车前进! \r\n"); + (void)osal_msleep(LONG_PRESS_INTERVAL); // 延时,等待响应 +} + +/** + * @brief 控制小车后退 + * + * 该函数通过发送键盘报告通知来控制小车后退。首先发送后退键报告, + * 然后延时一段时间,再发送释放键报告。最后打印一条日志信息并延时一段时间。 + */ +void eulercar_control_backward(void) +{ + send_keyboard_report(&EulerCarDown); // 发送后退键报告 + (void)osal_msleep(PRESS_RELEASE_INTERVAL); // 延时 + send_keyboard_report(&EulerCarRelease); // 发送释放键报告 + Vibration_CarControl(); + PRINT("[SLE Server] 星闪小车后退! \r\n"); + (void)osal_msleep(LONG_PRESS_INTERVAL); // 延时,等待响应 +} + +/** + * @brief 控制小车左转 + * + * 该函数通过发送键盘报告通知来控制小车左转。首先发送左转键报告, + * 然后延时一段时间,再发送释放键报告。最后打印一条日志信息并延时一段时间。 + */ +void eulercar_control_left(void) +{ + send_keyboard_report(&EulerCarLeft); // 发送左转键报告 + (void)osal_msleep(PRESS_RELEASE_INTERVAL); // 延时 + send_keyboard_report(&EulerCarRelease); // 发送释放键报告 + Vibration_CarControl(); + PRINT("[SLE Server] 星闪小车左转! \r\n"); + (void)osal_msleep(LONG_PRESS_INTERVAL); // 延时,等待响应 +} + +/** + * @brief 控制小车右转 + * + * 该函数通过发送键盘报告通知来控制小车右转。首先发送右转键报告, + * 然后延时一段时间,再发送释放键报告。最后打印一条日志信息并延时一段时间。 + */ +void eulercar_control_right(void) +{ + send_keyboard_report(&EulerCarRight); // 发送右转键报告 + (void)osal_msleep(PRESS_RELEASE_INTERVAL); // 延时 + send_keyboard_report(&EulerCarRelease); // 发送释放键报告 + Vibration_CarControl(); + PRINT("[SLE Server] 星闪小车右转! \r\n"); + (void)osal_msleep(LONG_PRESS_INTERVAL); // 延时,等待响应 +} + +/** + * @brief 控制小车暂停 + * + * 该函数通过发送键盘报告通知来控制小车暂停。发送释放键报告, + * 然后打印一条日志信息并延时一段时间。 + */ +void eulercar_control_stop(void) +{ + send_keyboard_report(&EulerCarStop); // 发送停止键报告 + (void)osal_msleep(PRESS_RELEASE_INTERVAL); // 延时 + send_keyboard_report(&EulerCarRelease); // 发送释放键报告 + Vibration_CarControl(); + PRINT("[SLE Server] 星闪小车暂停! \r\n"); + (void)osal_msleep(LONG_PRESS_INTERVAL); // 延时,等待响应 +} diff --git a/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/shake.c b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/shake.c new file mode 100644 index 0000000000000000000000000000000000000000..7f25251c029d7dfa850f8ef94a5ca1f5960742fc --- /dev/null +++ b/hi-sle/RemoteController_WS63E_Source_Code_two/SLE_OSPP_Server/src/shake.c @@ -0,0 +1,57 @@ +#include "../inc/shake.h" +#include "pinctrl.h" +#include "hal_gpio.h" +#include "gpio.h" +#include "tcxo.h" + + +void Shake_Init(void) +{ + // 配置SHAKE_PIN为输出,默认不震动 + uapi_pin_set_mode(SHAKE_PIN, HAL_PIO_FUNC_GPIO); + uapi_gpio_set_dir(SHAKE_PIN, GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(SHAKE_PIN, GPIO_LEVEL_LOW); +} + +void Shake_Start(void) +{ + // 设置SHAKE_PIN为高电平,启动震动马达 + uapi_gpio_set_val(SHAKE_PIN, GPIO_LEVEL_HIGH); +} + +void Shake_Stop(void) +{ + // 设置SHAKE_PIN为低电平,停止震动马达 + uapi_gpio_set_val(SHAKE_PIN, GPIO_LEVEL_LOW); +} + +void Shake_Buzz(unsigned int duration) +{ + Shake_Start(); + uapi_tcxo_delay_ms((uint32_t)duration);// 延时指定的毫秒数 + Shake_Stop(); +} + +// 开发板上电震动函数 +void Vibration_PowerOn(void) +{ + Shake_Buzz(VIBRATION_DURATION_POWER_ON); +} + +// 星闪连接状态改变震动函数 +void Vibration_ConnChange(void) +{ + Shake_Buzz(VIBRATION_DURATION_CONN_CHANGE); +} + +// 夹爪行程极限震动函数 +void Vibration_GripperLimit(void) +{ + Shake_Buzz(VIBRATION_DURATION_GRIPPER_LIMIT); +} + +// 控制小车震动函数 +void Vibration_CarControl(void) +{ + Shake_Buzz(VIBRATION_DURATION_CAR_CONTROL); +} \ No newline at end of file diff --git "a/hi-sle/images/10ms\345\273\266\346\227\266.gif" "b/hi-sle/images/10ms\345\273\266\346\227\266.gif" new file mode 100644 index 0000000000000000000000000000000000000000..84c2d085d96e152d66d466705c57253c3c6bfdde Binary files /dev/null and "b/hi-sle/images/10ms\345\273\266\346\227\266.gif" differ diff --git "a/hi-sle/images/1ms\345\273\266\346\227\266.gif" "b/hi-sle/images/1ms\345\273\266\346\227\266.gif" new file mode 100644 index 0000000000000000000000000000000000000000..a409868e3a6c09237e91d4a5bf9a10085bfb6048 Binary files /dev/null and "b/hi-sle/images/1ms\345\273\266\346\227\266.gif" differ diff --git a/hi-sle/images/board_debugging.gif b/hi-sle/images/board_debugging.gif new file mode 100644 index 0000000000000000000000000000000000000000..2078779317f4177aa60a36d1a28ca6769a669d31 Binary files /dev/null and b/hi-sle/images/board_debugging.gif differ diff --git a/hi-sle/images/handle_debugging.gif b/hi-sle/images/handle_debugging.gif new file mode 100644 index 0000000000000000000000000000000000000000..4520dd01df5acb939e5c9035c64af12a17679ba5 Binary files /dev/null and b/hi-sle/images/handle_debugging.gif differ diff --git a/hi-sle/images/hihope_car.gif b/hi-sle/images/hihope_car.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d8deee4f4c5654c3b466975b073f685895e03cc Binary files /dev/null and b/hi-sle/images/hihope_car.gif differ