Skip to content

Commit 2581709

Browse files
arkqpull[bot]
authored andcommitted
[Tizen] Enable WiFi management from example app (#23633)
* [Tizen] Simplify WiFiManager::IsActivated usage * Apply clang-tidy modernize-redundant-void-arg * Fix incorrect feature flag for enabling WiFi * [Tizen] Implement WiFi started check function The IsWiFiManagementStarted is used by the example Linux applications to check whether CHIP applications is connected with wpa_supplicant WiFi manager. Since Tizen examples are based on Linux code and Tizen uses wpa_supplicant as well, Tizen should also implement such check function. * Activate/deactivate WiFi without async wrapper * Add network.set privilege required for WiFi management * Fix compilation failure after syncing with master
1 parent 304b0a9 commit 2581709

File tree

9 files changed

+57
-80
lines changed

9 files changed

+57
-80
lines changed

examples/all-clusters-app/tizen/tizen-manifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<privilege>http://tizen.org/privilege/bluetooth</privilege>
99
<privilege>http://tizen.org/privilege/internet</privilege>
1010
<privilege>http://tizen.org/privilege/network.get</privilege>
11+
<privilege>http://tizen.org/privilege/network.set</privilege>
1112
</privileges>
1213
<feature name="http://tizen.org/feature/network.bluetooth">true</feature>
1314
<feature name="http://tizen.org/feature/network.bluetooth.le">true</feature>

examples/all-clusters-minimal-app/tizen/tizen-manifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<privilege>http://tizen.org/privilege/bluetooth</privilege>
99
<privilege>http://tizen.org/privilege/internet</privilege>
1010
<privilege>http://tizen.org/privilege/network.get</privilege>
11+
<privilege>http://tizen.org/privilege/network.set</privilege>
1112
</privileges>
1213
<feature name="http://tizen.org/feature/network.bluetooth">true</feature>
1314
<feature name="http://tizen.org/feature/network.bluetooth.le">true</feature>

examples/lighting-app/tizen/tizen-manifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<privilege>http://tizen.org/privilege/bluetooth</privilege>
99
<privilege>http://tizen.org/privilege/internet</privilege>
1010
<privilege>http://tizen.org/privilege/network.get</privilege>
11+
<privilege>http://tizen.org/privilege/network.set</privilege>
1112
</privileges>
1213
<feature name="http://tizen.org/feature/network.bluetooth">true</feature>
1314
<feature name="http://tizen.org/feature/network.bluetooth.le">true</feature>

examples/platform/tizen/OptionsProxy.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static constexpr Option sOptions[] = {
3838
#if CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
3939
{ "ble-device", false },
4040
#endif
41-
#if CHIP_DEVICE_CONFIG_ENABLE_WPA
41+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
4242
{ "wifi", true },
4343
#endif
4444
#if CHIP_ENABLE_OPENTHREAD

src/platform/BUILD.gn

-2
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,6 @@ if (chip_device_platform != "none" && chip_device_platform != "external") {
191191
"CHIP_DEVICE_LAYER_TARGET=Tizen",
192192
"CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
193193
]
194-
defines -=
195-
[ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
196194
} else if (chip_device_platform == "nrfconnect") {
197195
defines += [
198196
"CHIP_DEVICE_LAYER_TARGET_NRFCONNECT=1",

src/platform/Tizen/ConnectivityManagerImpl.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -209,23 +209,21 @@ void ConnectivityManagerImpl::_SetWiFiAPIdleTimeout(System::Clock::Timeout val)
209209

210210
void ConnectivityManagerImpl::StartWiFiManagement()
211211
{
212-
SystemLayer().ScheduleWork(ActivateWiFiManager, nullptr);
212+
Internal::WiFiMgr().Activate();
213213
}
214214

215215
void ConnectivityManagerImpl::StopWiFiManagement()
216216
{
217-
SystemLayer().ScheduleWork(DeactivateWiFiManager, nullptr);
217+
Internal::WiFiMgr().Deactivate();
218218
}
219219

220-
void ConnectivityManagerImpl::ActivateWiFiManager(System::Layer * aLayer, void * aAppState)
220+
bool ConnectivityManagerImpl::IsWiFiManagementStarted()
221221
{
222-
Internal::WiFiMgr().Activate();
222+
bool isActivated = false;
223+
Internal::WiFiMgr().IsActivated(&isActivated);
224+
return isActivated;
223225
}
224226

225-
void ConnectivityManagerImpl::DeactivateWiFiManager(System::Layer * aLayer, void * aAppState)
226-
{
227-
Internal::WiFiMgr().Deactivate();
228-
}
229227
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
230228

231229
} // namespace DeviceLayer

src/platform/Tizen/ConnectivityManagerImpl.h

+3-5
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ class ConnectivityManagerImpl final : public ConnectivityManager,
8484

8585
public:
8686
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
87-
void StartWiFiManagement(void);
88-
void StopWiFiManagement(void);
87+
void StartWiFiManagement();
88+
void StopWiFiManagement();
89+
bool IsWiFiManagementStarted();
8990
#endif
9091

9192
private:
@@ -115,9 +116,6 @@ class ConnectivityManagerImpl final : public ConnectivityManager,
115116
void _MaintainOnDemandWiFiAP(void);
116117
System::Clock::Timeout _GetWiFiAPIdleTimeout(void);
117118
void _SetWiFiAPIdleTimeout(System::Clock::Timeout val);
118-
119-
static void ActivateWiFiManager(System::Layer * aLayer, void * aAppState);
120-
static void DeactivateWiFiManager(System::Layer * aLayer, void * aAppState);
121119
#endif
122120

123121
// ===== Members for internal use by the following friends.

src/platform/Tizen/WiFiManager.cpp

+33-53
Original file line numberDiff line numberDiff line change
@@ -601,41 +601,26 @@ void WiFiManager::Deinit()
601601

602602
CHIP_ERROR WiFiManager::IsActivated(bool * isWiFiActivated)
603603
{
604-
CHIP_ERROR err = CHIP_NO_ERROR;
605-
int wifiErr = WIFI_MANAGER_ERROR_NONE;
606-
607-
wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, isWiFiActivated);
608-
if (wifiErr == WIFI_MANAGER_ERROR_NONE)
609-
{
610-
ChipLogProgress(DeviceLayer, "WiFi is %s", *isWiFiActivated ? "activated" : "deactivated");
611-
}
612-
else
613-
{
614-
err = CHIP_ERROR_INCORRECT_STATE;
615-
ChipLogError(DeviceLayer, "FAIL: check whether WiFi is activated [%s]", get_error_message(wifiErr));
616-
}
617-
618-
return err;
604+
int wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, isWiFiActivated);
605+
VerifyOrReturnError(wifiErr == WIFI_MANAGER_ERROR_NONE, CHIP_ERROR_INCORRECT_STATE,
606+
ChipLogError(DeviceLayer, "FAIL: Check whether WiFi is activated: %s", get_error_message(wifiErr)));
607+
return CHIP_NO_ERROR;
619608
}
620609

621610
CHIP_ERROR WiFiManager::Activate()
622611
{
623612
CHIP_ERROR err = CHIP_NO_ERROR;
624-
int wifiErr = WIFI_MANAGER_ERROR_NONE;
625613
bool isWiFiActivated = false;
626614
bool dbusAsyncErr = false;
627615

628-
wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, &isWiFiActivated);
629-
VerifyOrExit(wifiErr == WIFI_MANAGER_ERROR_NONE, err = CHIP_ERROR_INCORRECT_STATE;
630-
ChipLogError(DeviceLayer, "FAIL: check whether WiFi is activated [%s]", get_error_message(wifiErr)));
631-
616+
VerifyOrExit((err = IsActivated(&isWiFiActivated)) == CHIP_NO_ERROR, );
632617
VerifyOrExit(isWiFiActivated == false, ChipLogProgress(DeviceLayer, "WiFi is already activated"));
633618

634619
dbusAsyncErr = MainLoop::Instance().AsyncRequest(_WiFiActivate);
635-
if (dbusAsyncErr == false)
636-
{
637-
err = CHIP_ERROR_INCORRECT_STATE;
638-
}
620+
VerifyOrExit(dbusAsyncErr == true, {
621+
ChipLogError(DeviceLayer, "FAIL: Async request: Activate WiFi");
622+
err = CHIP_ERROR_INTERNAL;
623+
});
639624

640625
exit:
641626
return err;
@@ -644,21 +629,17 @@ CHIP_ERROR WiFiManager::Activate()
644629
CHIP_ERROR WiFiManager::Deactivate()
645630
{
646631
CHIP_ERROR err = CHIP_NO_ERROR;
647-
int wifiErr = WIFI_MANAGER_ERROR_NONE;
648632
bool isWiFiActivated = false;
649633
bool dbusAsyncErr = false;
650634

651-
wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, &isWiFiActivated);
652-
VerifyOrExit(wifiErr == WIFI_MANAGER_ERROR_NONE, err = CHIP_ERROR_INCORRECT_STATE;
653-
ChipLogError(DeviceLayer, "FAIL: check whether WiFi is activated [%s]", get_error_message(wifiErr)));
654-
635+
VerifyOrExit((err = IsActivated(&isWiFiActivated)) == CHIP_NO_ERROR, );
655636
VerifyOrExit(isWiFiActivated == true, ChipLogProgress(DeviceLayer, "WiFi is already deactivated"));
656637

657638
dbusAsyncErr = MainLoop::Instance().AsyncRequest(_WiFiDeactivate);
658-
if (dbusAsyncErr == false)
659-
{
660-
err = CHIP_ERROR_INCORRECT_STATE;
661-
}
639+
VerifyOrExit(dbusAsyncErr == true, {
640+
ChipLogError(DeviceLayer, "FAIL: Async request: Deactivate WiFi");
641+
err = CHIP_ERROR_INTERNAL;
642+
});
662643

663644
exit:
664645
return err;
@@ -668,38 +649,37 @@ CHIP_ERROR WiFiManager::Connect(const char * ssid, const char * key,
668649
DeviceLayer::NetworkCommissioning::Internal::WirelessDriver::ConnectCallback * apCallback)
669650
{
670651
CHIP_ERROR err = CHIP_NO_ERROR;
671-
int wifiErr = WIFI_MANAGER_ERROR_NONE;
672652
bool isWiFiActivated = false;
673653
bool dbusAsyncErr = false;
674654
wifi_manager_ap_h foundAp = nullptr;
675655

676656
g_strlcpy(sInstance.mWiFiSSID, ssid, sizeof(sInstance.mWiFiSSID));
677657
g_strlcpy(sInstance.mWiFiKey, key, sizeof(sInstance.mWiFiKey));
678658

679-
wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, &isWiFiActivated);
680-
VerifyOrExit(wifiErr == WIFI_MANAGER_ERROR_NONE, err = CHIP_ERROR_INCORRECT_STATE;
681-
ChipLogError(DeviceLayer, "FAIL: check whether WiFi is activated [%s]", get_error_message(wifiErr)));
682-
683-
VerifyOrExit(isWiFiActivated == true, ChipLogProgress(DeviceLayer, "WiFi is deactivated"));
659+
VerifyOrExit((err = IsActivated(&isWiFiActivated)) == CHIP_NO_ERROR, );
660+
VerifyOrExit(isWiFiActivated == true, {
661+
ChipLogProgress(DeviceLayer, "WiFi is not activated");
662+
err = CHIP_ERROR_INCORRECT_STATE;
663+
});
684664

685665
sInstance.mpConnectCallback = apCallback;
686666

687667
foundAp = sInstance._WiFiGetFoundAP();
688668
if (foundAp != nullptr)
689669
{
690-
dbusAsyncErr = MainLoop::Instance().AsyncRequest(_WiFiConnect, static_cast<gpointer>(foundAp));
691-
if (dbusAsyncErr == false)
692-
{
693-
err = CHIP_ERROR_INCORRECT_STATE;
694-
}
670+
dbusAsyncErr = MainLoop::Instance().AsyncRequest(_WiFiConnect, foundAp);
671+
VerifyOrExit(dbusAsyncErr == true, {
672+
ChipLogError(DeviceLayer, "FAIL: Async request: Connect WiFi");
673+
err = CHIP_ERROR_INTERNAL;
674+
});
695675
}
696676
else
697677
{
698678
dbusAsyncErr = MainLoop::Instance().AsyncRequest(_WiFiScan);
699-
if (dbusAsyncErr == false)
700-
{
701-
err = CHIP_ERROR_INCORRECT_STATE;
702-
}
679+
VerifyOrExit(dbusAsyncErr == true, {
680+
ChipLogError(DeviceLayer, "FAIL: Async request: Scan WiFi");
681+
err = CHIP_ERROR_INTERNAL;
682+
});
703683
}
704684

705685
exit:
@@ -715,11 +695,11 @@ CHIP_ERROR WiFiManager::Disconnect(const char * ssid)
715695

716696
g_strlcpy(sInstance.mWiFiSSID, ssid, sizeof(sInstance.mWiFiSSID));
717697

718-
wifiErr = wifi_manager_is_activated(sInstance.mWiFiManagerHandle, &isWiFiActivated);
719-
VerifyOrExit(wifiErr == WIFI_MANAGER_ERROR_NONE, err = CHIP_ERROR_INCORRECT_STATE;
720-
ChipLogError(DeviceLayer, "FAIL: check whether WiFi is activated [%s]", get_error_message(wifiErr)));
721-
722-
VerifyOrExit(isWiFiActivated == true, ChipLogProgress(DeviceLayer, "WiFi is deactivated"));
698+
VerifyOrExit((err = IsActivated(&isWiFiActivated)) == CHIP_NO_ERROR, );
699+
VerifyOrExit(isWiFiActivated == true, {
700+
ChipLogProgress(DeviceLayer, "WiFi is not activated");
701+
err = CHIP_ERROR_INCORRECT_STATE;
702+
});
723703

724704
foundAp = sInstance._WiFiGetFoundAP();
725705
VerifyOrExit(foundAp != nullptr, );

src/platform/Tizen/WiFiManager.h

+11-11
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,16 @@ class WiFiManager
3737
friend class ConnectivityManagerImpl;
3838

3939
public:
40-
void Init(void);
41-
void Deinit(void);
40+
void Init();
41+
void Deinit();
4242

4343
CHIP_ERROR IsActivated(bool * isWiFiActivated);
44-
CHIP_ERROR Activate(void);
45-
CHIP_ERROR Deactivate(void);
44+
CHIP_ERROR Activate();
45+
CHIP_ERROR Deactivate();
4646
CHIP_ERROR Connect(const char * ssid, const char * key,
4747
NetworkCommissioning::Internal::WirelessDriver::ConnectCallback * apCallback = nullptr);
4848
CHIP_ERROR Disconnect(const char * ssid);
49-
CHIP_ERROR RemoveAllConfigs(void);
49+
CHIP_ERROR RemoveAllConfigs();
5050

5151
CHIP_ERROR GetDeviceMACAddress(uint8_t * macAddress, size_t macAddressLen);
5252
CHIP_ERROR GetDeviceState(wifi_manager_device_state_e * deviceState);
@@ -75,16 +75,16 @@ class WiFiManager
7575
static gboolean _WiFiScan(GMainLoop * mainLoop, gpointer userData);
7676
static gboolean _WiFiConnect(GMainLoop * mainLoop, gpointer userData);
7777

78-
void _WiFiDeinitialize(void);
79-
void _WiFiSetStates(void);
80-
void _WiFiSetCallbacks(void);
81-
void _WiFiUnsetCallbacks(void);
78+
void _WiFiDeinitialize();
79+
void _WiFiSetStates();
80+
void _WiFiSetCallbacks();
81+
void _WiFiUnsetCallbacks();
8282
void _WiFiSetDeviceState(wifi_manager_device_state_e deviceState);
8383
void _WiFiSetModuleState(wifi_manager_module_state_e moduleState);
8484
void _WiFiSetConnectionState(wifi_manager_connection_state_e connectionState);
85-
wifi_manager_ap_h _WiFiGetFoundAP(void);
85+
wifi_manager_ap_h _WiFiGetFoundAP();
8686

87-
friend WiFiManager & WiFiMgr(void);
87+
friend WiFiManager & WiFiMgr();
8888

8989
static WiFiManager sInstance;
9090

0 commit comments

Comments
 (0)