GScanCommandEventHandler::GScanCommandEventHandler(wifi_handle handle, int id, u32 vendor_id, u32 subcmd, GScanCallbackHandler handler) : WifiVendorCommand(handle, id, vendor_id, subcmd) { int ret = 0; ALOGD("GScanCommandEventHandler %p constructed", this); mRequestId = id; mHandler = handler; mSubCommandId = subcmd; mHotlistApFoundResults = NULL; mHotlistApFoundNumResults = 0; mHotlistApFoundMoreData = false; mSignificantChangeResults = NULL; mSignificantChangeNumResults = 0; mSignificantChangeMoreData = false; switch(mSubCommandId) { case QCA_NL80211_VENDOR_SUBCMD_GSCAN_START: { /* Register handlers for northbound asychronous scan events. */ ALOGD("%s: wait for GSCAN_RESULTS_AVAILABLE, " "FULL_SCAN_RESULT, and SCAN EVENT events. \n", __func__); ret = registerVendorHandler(mVendor_id, QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_RESULTS_AVAILABLE) || registerVendorHandler(mVendor_id, QCA_NL80211_VENDOR_SUBCMD_GSCAN_FULL_SCAN_RESULT) || registerVendorHandler(mVendor_id, QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_EVENT); if (ret < 0) ALOGD("%s: Error in registering handler for " "GSCAN_START. \n", __func__); } break; case QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_SIGNIFICANT_CHANGE: { ret = registerVendorHandler(mVendor_id, QCA_NL80211_VENDOR_SUBCMD_GSCAN_SIGNIFICANT_CHANGE); if (ret < 0) ALOGD("%s: Error in registering handler for " "GSCAN_SIGNIFICANT_CHANGE. \n", __func__); } break; case QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_BSSID_HOTLIST: { ret = registerVendorHandler(mVendor_id, QCA_NL80211_VENDOR_SUBCMD_GSCAN_HOTLIST_AP_FOUND); if (ret < 0) ALOGD("%s: Error in registering handler for" " GSCAN_HOTLIST_AP_FOUND. \n", __func__); } break; } }
int start() { ALOGD("1) GScan Setting configuration: "); WifiRequest request(familyId(), ifaceId()); int result = createSetupRequest(request); if (result != WIFI_SUCCESS) { ALOGE("failed to create setup request; result = %d", result); return result; } result = requestResponse(request); if (result != WIFI_SUCCESS) { ALOGE("failed to configure setup; result = %d", result); return result; } request.destroy(); result = createScanConfigRequest(request); if (result != WIFI_SUCCESS) { ALOGE("failed to create scan config request; result = %d", result); return result; } result = requestResponse(request); if (result != WIFI_SUCCESS) { ALOGE("failed to configure scan; result = %d", result); return result; } ALOGD("2) Enable GScan: "); result = createStartRequest(request); if (result != WIFI_SUCCESS) { ALOGE("failed to create start request; result = %d", result); return result; } registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_SCAN_RESULTS_AVAILABLE); registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_COMPLETE_SCAN); result = requestResponse(request); if (result != WIFI_SUCCESS) { ALOGE("failed to start scan; result = %d", result); registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_COMPLETE_SCAN); unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_SCAN_RESULTS_AVAILABLE); return result; } result = enableFullScanResultsIfRequired(); return result; }
int start() { ALOGD("[WIFI HAL]Set significant wifi change config"); WifiRequest request(familyId(), ifaceId()); int result = createSetupRequest(request); if (result < 0) { return result; } result = requestResponse(request); if (result < 0) { ALOGE("failed to set significant wifi change config %d", result); return result; } ALOGI("successfully set significant wifi change config"); result = createFeatureRequest(request, GSCAN_SUBCMD_ENABLE_GSCAN, 1); if (result < 0) { return result; } registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_SIGNIFICANT_CHANGE_RESULTS); result = requestResponse(request); if (result < 0) { ALOGE("failed to start scan; result = %d", result); unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_SIGNIFICANT_CHANGE_RESULTS); return result; } ALOGI("successfully restarted the scan"); return result; }
int LLStatsCommand::setCallbackHandler(LLStatsCallbackHandler nHandler, u32 event) { int res = 0; mHandler = nHandler; res = registerVendorHandler(mVendor_id, event); if (res != 0) { //error case should not happen print log ALOGE("%s: Unable to register Vendor Handler Vendor Id=0x%x subcmd=%u", __func__, mVendor_id, mSubcmd); } return res; }
int start() { ALOGD("[WIFI HAL]Executing hotlist setup request, num = %d", mParams.num_ap); WifiRequest request(familyId(), ifaceId()); int result = createSetupRequest(request); if (result < 0) { return result; } result = requestResponse(request); if (result < 0) { ALOGI("Failed to execute hotlist setup request, result = %d", result); //unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_FOUND); //unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_LOST); return result; } ALOGI("Successfully set %d APs in the hotlist", mParams.num_ap); result = createFeatureRequest(request, GSCAN_SUBCMD_ENABLE_GSCAN, 1); if (result < 0) { return result; } registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_FOUND); registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_LOST); result = requestResponse(request); if (result < 0) { ALOGE("failed to start scan; result = %d", result); unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_FOUND); unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_HOTLIST_RESULTS_LOST); return result; } ALOGI("successfully restarted the scan"); return result; }
int start() { WifiRequest request(familyId(), ifaceId()); int result = createRequest(request, GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS, 1); if (result != WIFI_SUCCESS) { ALOGE("failed to create request; result = %d", result); return result; } registerVendorHandler(GOOGLE_OUI, GSCAN_EVENT_FULL_SCAN_RESULTS); result = requestResponse(request); if (result != WIFI_SUCCESS) { ALOGE("failed to enable full scan results; result = %d", result); unregisterVendorHandler(GOOGLE_OUI, GSCAN_EVENT_FULL_SCAN_RESULTS); return result; } return result; }
int start() { ALOGV("Start Alerting"); registerVendorHandler(GOOGLE_OUI, GOOGLE_DEBUG_MEM_DUMP_EVENT); return WIFI_SUCCESS; }
int start() { ALOGV("Register loghandler"); registerVendorHandler(GOOGLE_OUI, GOOGLE_DEBUG_RING_EVENT); return WIFI_SUCCESS; }