/*************************************************************************** * * Copyright 2015-2019 BES. * All rights reserved. All unpublished rights reserved. * * No part of this work may be used or reproduced in any form or by any * means, or stored in a database or retrieval system, without prior written * permission of BES. * * Use of this work is governed by a license granted by BES. * This work contains confidential and proprietary information of * BES. which is protected by copyright, trade secret, * trademark and other intellectual property rights. * ****************************************************************************/ #include "app_ibrt_auto_test.h" #include "a2dp_decoder.h" #include "app_a2dp.h" #include "app_ai_if.h" #include "app_ai_manager_api.h" #include "app_anc.h" #include "app_audio.h" #include "app_battery.h" #include "app_ble_mode_switch.h" #include "app_bt.h" #include "app_bt_media_manager.h" #include "app_ibrt_if.h" #include "app_ibrt_keyboard.h" #include "app_ibrt_peripheral_manager.h" #include "app_ibrt_ui.h" #include "app_ibrt_ui_test.h" #include "app_key.h" #include "app_tws_ibrt_trace.h" #include "app_tws_if.h" #include "apps.h" #include "besbt.h" #include "factory_section.h" #include "hal_timer.h" #include "nvrecord_ble.h" #include "nvrecord_env.h" #include #if defined(IBRT) #include "btapp.h" extern struct BT_DEVICE_T app_bt_device; extern int hfp_volume_get(enum BT_DEVICE_ID_T id); int bt_sco_player_get_codetype(void); AUTO_TEST_STATE_T auto_test_state_t = {0}; uint16_t app_ibrt_auto_test_get_tws_page_timeout_value(void) { return app_ibrt_ui_get_tws_page_timeout_value(); } #ifdef BES_AUTOMATE_TEST void app_ibrt_auto_test_print_earphone_state(void const *n) { app_ibrt_ui_t *p_ibrt_ui = app_ibrt_ui_get_ctx(); ibrt_ctrl_t *p_ibrt_ctrl = app_tws_ibrt_get_bt_ctrl_ctx(); auto_test_state_t.head[0] = 0xE1; auto_test_state_t.head[1] = 0x38; auto_test_state_t.head[2] = 0x7C; auto_test_state_t.length = sizeof(auto_test_state_t); // a2dp & hfp state auto_test_state_t.bt_stream_state.local_volume = app_bt_stream_local_volume_get(); auto_test_state_t.bt_stream_state.a2dp_volume = a2dp_volume_get(BT_DEVICE_ID_1); auto_test_state_t.bt_stream_state.hfp_volume = hfp_volume_get(BT_DEVICE_ID_1); auto_test_state_t.bt_stream_state.a2dp_streamming = a2dp_is_music_ongoing(); auto_test_state_t.bt_stream_state.a2dp_codec_type = app_bt_device.codec_type[BT_DEVICE_ID_1]; auto_test_state_t.bt_stream_state.a2dp_sample_rate = app_bt_device.sample_rate[BT_DEVICE_ID_1]; auto_test_state_t.bt_stream_state.a2dp_sample_bit = app_bt_device.sample_bit[BT_DEVICE_ID_1]; auto_test_state_t.bt_stream_state.sco_streaming = is_sco_mode(); auto_test_state_t.bt_stream_state.sco_codec_type = (uint8_t)bt_sco_player_get_codetype(); app_ibrt_if_get_hfp_call_status( (AppIbrtCallStatus *)&auto_test_state_t.bt_stream_state.call_status); // media state auto_test_state_t.bt_media_state.media_active = bt_media_get_media_active(BT_DEVICE_ID_1); auto_test_state_t.bt_media_state.curr_active_media = bt_media_get_current_media(); auto_test_state_t.bt_media_state.promt_exist = app_audio_list_playback_exist(); // ui state auto_test_state_t.ui_state.current_ms = TICKS_TO_MS(hal_sys_timer_get()); auto_test_state_t.ui_state.cpu_freq = hal_sysfreq_get(); auto_test_state_t.ui_state.super_state = p_ibrt_ui->super_state; auto_test_state_t.ui_state.active_event = p_ibrt_ui->active_event; auto_test_state_t.ui_state.ibrt_sm_running = p_ibrt_ui->ibrt_sm_running; auto_test_state_t.ui_state.ui_state = p_ibrt_ui->box_state; if (IBRT_SLAVE != p_ibrt_ctrl->current_role) { auto_test_state_t.ui_state.mobile_link_bt_role = app_tws_ibrt_get_local_mobile_role(); auto_test_state_t.ui_state.mobile_link_bt_mode = p_ibrt_ctrl->mobile_mode; auto_test_state_t.ui_state.mobile_constate = p_ibrt_ctrl->mobile_constate; // auto_test_state_t.ui_state.mobile_connect = // app_tws_ibrt_mobile_link_connected(); } auto_test_state_t.ui_state.tws_role = p_ibrt_ctrl->current_role; auto_test_state_t.ui_state.tws_link_bt_role = app_tws_ibrt_get_local_tws_role(); auto_test_state_t.ui_state.tws_link_bt_mode = p_ibrt_ctrl->tws_mode; auto_test_state_t.ui_state.tws_constate = p_ibrt_ctrl->tws_constate; auto_test_state_t.ui_state.role_switch_state = (p_ibrt_ctrl->slave_tws_switch_pending || p_ibrt_ctrl->master_tws_switch_pending); #ifdef __IAG_BLE_INCLUDE__ auto_test_state_t.ui_state.ble_state = app_ble_get_current_state(); auto_test_state_t.ui_state.ble_operation = app_ble_get_current_operation(); auto_test_state_t.ui_state.ble_connection_state = 0; for (uint8_t i = 0; i < BLE_CONNECTION_MAX; i++) { if (app_ble_is_connection_on(i)) { auto_test_state_t.ui_state.ble_connection_state |= (1 << i); } } #endif // TRACE(1, "earphone len %d state :", auto_test_state_t.length); DUMP8("%02x", (uint8_t *)&auto_test_state_t, auto_test_state_t.length); } #define APP_AUTO_TEST_PRINT_STATE_TIME_IN_MS 500 osTimerDef(APP_AUTO_TEST_PRINT_STATE_TIMEOUT, app_ibrt_auto_test_print_earphone_state); osTimerId app_auto_test_print_state_timeout_timer_id = NULL; #endif void app_ibrt_auto_test_init(void) { #ifdef BES_AUTOMATE_TEST memset((uint8_t *)&auto_test_state_t, 0, sizeof(auto_test_state_t)); if (app_auto_test_print_state_timeout_timer_id == NULL) { app_auto_test_print_state_timeout_timer_id = osTimerCreate( osTimer(APP_AUTO_TEST_PRINT_STATE_TIMEOUT), osTimerPeriodic, NULL); osTimerStart(app_auto_test_print_state_timeout_timer_id, APP_AUTO_TEST_PRINT_STATE_TIME_IN_MS); } #endif } void app_ibrt_auto_test_inform_cmd_received(uint8_t group_code, uint8_t operation_code) { AUTO_TEST_TRACE(2, "AUTO_TEST_CMD received:%d:%d:", group_code, operation_code); } #endif