wifi: Add Implementation of IWifiChip.requestChipDebugInfo

Bug: 31352200
Test: mmma -j32 hardware/interfaces/wifi/1.0/default
Change-Id: Id0c02e37dac66de6f830785881cb67f113c0fb19
This commit is contained in:
Roshan Pius 2016-10-03 12:49:58 -07:00
parent 908a69a53a
commit 4b26c832ed
3 changed files with 46 additions and 1 deletions

View file

@ -70,7 +70,29 @@ Return<uint32_t> WifiChip::getMode() {
Return<void> WifiChip::requestChipDebugInfo() {
if (!legacy_hal_.lock())
return Void();
// TODO add implementation
IWifiChipEventCallback::ChipDebugInfo result;
std::pair<wifi_error, std::string> ret =
legacy_hal_.lock()->getWlanDriverVersion();
if (ret.first != WIFI_SUCCESS) {
LOG(ERROR) << "Failed to get driver version: "
<< LegacyErrorToString(ret.first);
return Void();
}
result.driverDescription = ret.second.c_str();
ret = legacy_hal_.lock()->getWlanFirmwareVersion();
if (ret.first != WIFI_SUCCESS) {
LOG(ERROR) << "Failed to get firmware version: "
<< LegacyErrorToString(ret.first);
return Void();
}
result.firmwareDescription = ret.second.c_str();
for (const auto& callback : callbacks_) {
callback->onChipDebugInfoAvailable(result);
}
return Void();
}

View file

@ -49,6 +49,8 @@ namespace wifi {
namespace V1_0 {
namespace implementation {
const uint32_t WifiLegacyHal::kMaxVersionStringLength = 256;
WifiLegacyHal::WifiLegacyHal()
: global_handle_(nullptr),
wlan_interface_handle_(nullptr),
@ -102,6 +104,22 @@ wifi_error WifiLegacyHal::stop(
return WIFI_SUCCESS;
}
std::pair<wifi_error, std::string> WifiLegacyHal::getWlanDriverVersion() {
std::array<char, kMaxVersionStringLength> buffer;
buffer.fill(0);
wifi_error status = global_func_table_.wifi_get_driver_version(
wlan_interface_handle_, buffer.data(), buffer.size());
return std::make_pair(status, buffer.data());
}
std::pair<wifi_error, std::string> WifiLegacyHal::getWlanFirmwareVersion() {
std::array<char, kMaxVersionStringLength> buffer;
buffer.fill(0);
wifi_error status = global_func_table_.wifi_get_firmware_version(
wlan_interface_handle_, buffer.data(), buffer.size());
return std::make_pair(status, buffer.data());
}
wifi_error WifiLegacyHal::retrieveWlanInterfaceHandle() {
const std::string& ifname_to_find = getWlanInterfaceName();

View file

@ -39,8 +39,13 @@ class WifiLegacyHal {
wifi_error start();
// Deinitialize the legacy HAL and stop the event looper thread.
wifi_error stop(const std::function<void()>& on_complete_callback);
// Wrappers for all the functions in the legacy HAL function table.
std::pair<wifi_error, std::string> getWlanDriverVersion();
std::pair<wifi_error, std::string> getWlanFirmwareVersion();
private:
static const uint32_t kMaxVersionStringLength;
// Retrieve the interface handle to be used for the "wlan" interface.
wifi_error retrieveWlanInterfaceHandle();
// Run the legacy HAL event loop thread.