diff --git a/wifi/hisysevent.yaml b/wifi/hisysevent.yaml index b6115dc4dc95811948a2656303b5aa1f6d78e502..39047a974538dd61fb829bf6a803583ceff01ef8 100644 --- a/wifi/hisysevent.yaml +++ b/wifi/hisysevent.yaml @@ -95,6 +95,13 @@ SOFTAP_CONNECT_FAILED: __BASE: {type: FAULT, level: MINOR, desc: soft ap connect failed event} ERROR_CODE: {type: INT32, desc: error code} +SOFTAP_OPERATE_STATE: + __BASE: {type: STATISTIC, level: MINOR, desc: softap chr event} + CONNECTED_COUNT: {type: INT32, desc: softap connect success count} + CONNECT_TOTAL_COUNT: {type: INT32, desc: softap connect total count} + OPEN_COUNT: {type: INT32, desc: softap open count} + OPEN_SUCCESS_COUNT: {type: INT32, desc: softap open success count} + WIFI_CHR_EVENT: __BASE: {type: STATISTIC, level: MINOR, desc: Wifi chr event} EVENT_NAME: {type: STRING, desc: event name} diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn index aa798eea67523816fc81a777c3546f1327541b5c..1269ac211bfb4fc74bd0d471089134038c41334c 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn @@ -64,6 +64,7 @@ ohos_shared_library("wifi_ap_service") { "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common", "$WIFI_ROOT_DIR/services/wifi_standard/include", "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller", ] cflags = memory_optimization_cflags cflags_cc = memory_optimization_cflags_cc diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_started_state.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_started_state.cpp index 07eac18f8f4dabe58b821c1c10d50b1f4d22ae1b..8969b0078721798f29374f63b6fdab4733a711e3 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_started_state.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_started_state.cpp @@ -40,6 +40,7 @@ #include "wifi_randommac_helper.h" #include "wifi_battery_utils.h" #include "ap_define.h" +#include "wifi_controller_define.h" #define SET_DUAL_ANTENNAS 45 DEFINE_WIFILOG_HOTSPOT_LABEL("WifiApStartedState"); @@ -278,6 +279,7 @@ void ApStartedState::ProcessCmdStationJoin(InternalMessagePtr msg) WIFI_LOGE("sta has removed."); return; } + WriteSoftApOperateHiSysEvent(static_cast(SoftApChrEventType::SOFT_AP_CONN_CNT)); m_ApStateMachine.m_ApStationsManager.StationJoin(staInfo); } diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_stations_manager.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_stations_manager.cpp index aede7170c3de5d78a7606013d622ed1df253c4ee..a93c09783ef081281e7e2e40c5f69e91cdb278b3 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_stations_manager.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_ap/ap_stations_manager.cpp @@ -21,6 +21,7 @@ #include "ap_state_machine.h" #include "wifi_logger.h" #include "wifi_common_util.h" +#include "wifi_controller_define.h" DEFINE_WIFILOG_HOTSPOT_LABEL("WifiApStationsManager"); @@ -170,6 +171,7 @@ void ApStationsManager::StationJoin(const StationInfo &staInfo) const if (it == results.end() || it->ipAddr != staInfo.ipAddr) { if (m_stationChangeCallback) { m_stationChangeCallback(staInfoTemp, ApStatemachineEvent::CMD_STATION_JOIN); + WriteSoftApOperateHiSysEvent(static_cast(SoftApChrEventType::SOFT_AP_CONN_SUC_CNT)); } } return; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code/wifi_country_code_manager.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code/wifi_country_code_manager.cpp index b412ac95b56afaf49fcd232c05b759dc3eed3982..cb234e2fa2e5cc7ff553e4021b308172ad452bf3 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code/wifi_country_code_manager.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_common/wifi_country_code/wifi_country_code_manager.cpp @@ -26,6 +26,7 @@ #include "wifi_msg.h" #include "wifi_config_center.h" #include "wifi_common_util.h" +#include "wifi_controller_define.h" namespace OHOS { namespace Wifi { @@ -225,6 +226,7 @@ void WifiCountryCodeManager::DealApStateChanged(ApState state, int id, int hotsp } else if (state != ApState::AP_STATE_STARTING && state != ApState::AP_STATE_STARTED) { std::string moduleName = "ApService_" + std::to_string(id); WifiCountryCodeManager::GetInstance().UnregisterWifiCountryCodeChangeListener(moduleName); + WriteSoftApOperateHiSysEvent(static_cast(SoftApChrEventType::SOFT_AP_OPEN_SUC_CNT)); } } #endif diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller/wifi_controller_define.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller/wifi_controller_define.h index 77eee551d16803c853092c530f6675c4f4667e11..4169b75b05a3f6f44775894393a9b6b5de305e9c 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller/wifi_controller_define.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller/wifi_controller_define.h @@ -119,6 +119,13 @@ enum class SoftApperateType { CLOSE_SOFT_AP_FAILED = 1, }; +enum class SoftApChrEventType { + SOFT_AP_OPEN_CNT = 0, + SOFT_AP_OPEN_SUC_CNT, + SOFT_AP_CONN_CNT, + SOFT_AP_CONN_SUC_CNT, +}; + } // namespace Wifi } // namespace OHOS #endif diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sub_manage/wifi_toggler_manager.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sub_manage/wifi_toggler_manager.cpp index 2f4e21ae1851c073ffa724ff177c5da5990987cf..ff340913a961d0d027e784a29229f25296894fa5 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sub_manage/wifi_toggler_manager.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sub_manage/wifi_toggler_manager.cpp @@ -26,6 +26,7 @@ #include "netsys_native_service_proxy.h" #include "system_ability_definition.h" #endif +#include "wifi_controller_define.h" DEFINE_WIFILOG_LABEL("WifiTogglerManager") @@ -147,6 +148,7 @@ ErrCode WifiTogglerManager::SoftapToggled(int isOpen, int id) if (isOpen) { WIFI_LOGI("set softap toggled true"); WifiConfigCenter::GetInstance().SetSoftapToggledState(true); + WriteSoftApOperateHiSysEvent(static_cast(SoftApChrEventType::SOFT_AP_OPEN_CNT)); } else { WIFI_LOGI("set softap toggled false"); WifiConfigCenter::GetInstance().SetSoftapToggledState(false); diff --git a/wifi/test/fuzztest/wifi_sta/wifiap_fuzzer/BUILD.gn b/wifi/test/fuzztest/wifi_sta/wifiap_fuzzer/BUILD.gn index 32e105c73525e3d9a671657c1b2abda86aec1ca2..e2e9716d10218cc866aee2960c51c133efdb737d 100644 --- a/wifi/test/fuzztest/wifi_sta/wifiap_fuzzer/BUILD.gn +++ b/wifi/test/fuzztest/wifi_sta/wifiap_fuzzer/BUILD.gn @@ -43,6 +43,7 @@ ohos_fuzztest("WifiApFuzzTest") { "$WIFI_ROOT_DIR/utils/inc", "$WIFI_ROOT_DIR/services/wifi_standard/include", "$WIFI_ROOT_DIR/test/fuzztest/fuzz_common_func", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller", ] cflags = [ diff --git a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn index 942f3d686343308ec736546e1748a54ce9fe98f8..264c0e2bd2becf72e822807dea486ef68dabe2ba 100644 --- a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn +++ b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_ap/BUILD.gn @@ -110,6 +110,7 @@ ohos_unittest("WifiApServiceTest") { "$WIFI_ROOT_DIR/frameworks/native/src", "$WIFI_ROOT_DIR/test/wifi_standard/wifi_framework/wifi_manage/wifi_ap/Mock", "$WIFI_ROOT_DIR/base/state_machine/include", + "$WIFI_ROOT_DIR/services/wifi_standard/wifi_framework/wifi_manage/wifi_controller", ] ldflags = [ "-fPIC", diff --git a/wifi/utils/inc/wifi_hisysevent.h b/wifi/utils/inc/wifi_hisysevent.h index 25be062a0803254e356e2fa33fdfa668685d73e6..ce27e938e7613aa65a9f330047380068cd656c0d 100644 --- a/wifi/utils/inc/wifi_hisysevent.h +++ b/wifi/utils/inc/wifi_hisysevent.h @@ -177,6 +177,8 @@ void WriteWifiOpenAndCloseFailedHiSysEvent(int operateType, std::string failReas void WriteSoftApOpenAndCloseFailedEvent(int operateType, std::string failReason); +void WriteSoftApOperateHiSysEvent(int operateType); + void WriteWifiAccessIntFailedHiSysEvent(int operateRes, int failCnt, int selfCureResetState, std::string selfCureHistory); diff --git a/wifi/utils/src/wifi_hisysevent.cpp b/wifi/utils/src/wifi_hisysevent.cpp index 083fec09a6bcdb693a10d72e306f63faea72d336..36707621c08d1acfdd4abfb71538c6ba71506346 100644 --- a/wifi/utils/src/wifi_hisysevent.cpp +++ b/wifi/utils/src/wifi_hisysevent.cpp @@ -239,6 +239,25 @@ void WriteSoftApOpenAndCloseFailedEvent(int operateType, std::string failReason) cJSON_Delete(root); } +void WriteSoftApOperateHiSysEvent(int operateType) +{ + cJSON *root = cJSON_CreateObject(); + if (root == nullptr) { + WIFI_LOGE("Failed to create cJSON object"); + return; + } + cJSON_AddNumberToObject(root, "OPERATE_TYPE", operateType); + + char *jsonStr = cJSON_PrintUnformatted(root); + if (jsonStr == nullptr) { + cJSON_Delete(root); + return; + } + WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "SOFTAP_OPERATE_STATE", "EVENT_VALUE", std::string(jsonStr)); + free(jsonStr); + cJSON_Delete(root); +} + void WriteWifiAccessIntFailedHiSysEvent( int operateRes, int failCnt, int selfCureResetState, std::string selfCureHistory) {