RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
Some of major API details are provided which is available under the header include/services/wifimanagerservice.h. Generally in case of each service, there are two common API for registering and un-registering particular service. When we register a service, we are making it available to the other application. And when we un-register it will no longer be accessible to the upper layer application.
Service Manager API List | Descriptions |
WifiManagerService() | Constructor, which will register for Wi-Fi service |
WifiManagerService::registerForEvents() | Register events for Wi-Fi manager service. |
WifiManagerService::unregisterEvents() | Unregister events for Wi-Fi manager service |
WifiManagerService::notifyEvent() | Notify the events received from netSrvMgr. |
WifiManagerService::getAvailableSSIDs() | Retrieves the array of strings representing SSIDs |
WifiManagerService::getCurrentState() | Retrieves the current state |
WifiManagerService::getPairedSSID() | Returns the paired SSIDs as string |
WifiManagerService::connect() | Connect with given or saved SSID and passphrase |
……. | ……. |
Wifi- network manager, which takes several responsibility for managing Wifi in Video device
...
Wi-Fi Network Manager - IARM Event & Calls
Lets see how the event notification mechanism works. Basically all the event related activity are done through a D-Bus messaging extension known as IARM. In our case the network manager will register few event names and their corresponding event handler function. When an application is interested to receive that event, he will be register as a listen to that event. Whenever the event occurs all the register listener that are connected to IARM will be able to receive the notification.
IARM Call | Descriptions |
IARM_BUS_WIFI_MGR_API_getAvailableSSIDs | Retrieves the List of available APs |
IARM_BUS_WIFI_MGR_API_getConnectedSSID | Returns the properties of the currently connected SSID |
IARM_BUS_WIFI_MGR_API_setEnabled | Enable the WIFI adapter on the box |
IARM_BUS_WIFI_MGR_API_connect | Connect with given or saved SSID and passphrase |
IARM_BUS_WIFI_MGR_API_getConnectionType | Retrieves the type based on active network interface |
IARM_BUS_WIFI_MGR_API_getRadioStatsProps | Retrieve the get radio stats properties |
IARM Call implementation:
...
RDK Wifi Specification mentions, all communication from network manager to the Wifi Driver has to be through WPA supplicant. So the basic requirement is to add WPA supplicant and its related packages such as netlink library and wireless tools. When all the dependency are added to the platform, we have to write a Wi-Fi HAL customized in our platform. Then we have to add the Wifi support in build framework via adding appropriate packages in image recipe as well as machine configuration file.
Looking at the below folder structure of the wifi HAL code in reference wifi & device specific wifi, We can see both follow similar naming conventions. We have 2 common files: wifi_common_hal.c and wifi_client_hal.c
...
...
TODO
...