Skip to content

Commit c18c4a9

Browse files
committed
[WiFi][Shell] Simplify WiFi shell and add missing header to fix build
1 parent c0873fa commit c18c4a9

5 files changed

+14
-137
lines changed

src/include/platform/ConnectivityManager.h

-12
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,6 @@ class ConnectivityManager
182182
void MaintainOnDemandWiFiAP();
183183
System::Clock::Timeout GetWiFiAPIdleTimeout();
184184
void SetWiFiAPIdleTimeout(System::Clock::Timeout val);
185-
CHIP_ERROR GetNetworkSSID(MutableCharSpan & ssid);
186-
CHIP_ERROR GetNetworkPassword(MutableCharSpan & credentials);
187185
CHIP_ERROR DisconnectNetwork(void);
188186

189187
// Thread Methods
@@ -563,16 +561,6 @@ inline void ConnectivityManager::OnWiFiStationProvisionChange()
563561
static_cast<ImplClass *>(this)->_OnWiFiStationProvisionChange();
564562
}
565563

566-
inline CHIP_ERROR ConnectivityManager::GetNetworkSSID(MutableCharSpan & ssid)
567-
{
568-
return static_cast<ImplClass *>(this)->_GetNetworkSSID(ssid);
569-
}
570-
571-
inline CHIP_ERROR ConnectivityManager::GetNetworkPassword(MutableCharSpan & credentials)
572-
{
573-
return static_cast<ImplClass *>(this)->_GetNetworkPassword(credentials);
574-
}
575-
576564
inline CHIP_ERROR ConnectivityManager::DisconnectNetwork(void)
577565
{
578566
return static_cast<ImplClass *>(this)->_DisconnectNetwork();

src/include/platform/internal/GenericConfigurationManagerImpl.h

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class GenericConfigurationManagerImpl : public ConfigurationManager
103103
CHIP_ERROR GetUniqueId(char * buf, size_t bufSize) override;
104104
CHIP_ERROR StoreUniqueId(const char * uniqueId, size_t uniqueIdLen) override;
105105
CHIP_ERROR GenerateUniqueId(char * buf, size_t bufSize) override;
106+
CHIP_ERROR _DisconnectNetwork(void);
106107
#if CHIP_CONFIG_TEST
107108
void RunUnitTests() override;
108109
#endif

src/include/platform/internal/GenericConnectivityManagerImpl_NoWiFi.h

-14
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,6 @@ class GenericConnectivityManagerImpl_NoWiFi
7676
bool _CanStartWiFiScan();
7777
void _OnWiFiScanDone();
7878
void _OnWiFiStationProvisionChange();
79-
CHIP_ERROR _GetNetworkSSID(MutableCharSpan & ssid);
80-
CHIP_ERROR _GetNetworkPassword(MutableCharSpan & credentials);
8179
CHIP_ERROR _DisconnectNetwork(void);
8280
static const char * _WiFiStationModeToStr(ConnectivityManager::WiFiStationMode mode);
8381
static const char * _WiFiAPModeToStr(ConnectivityManager::WiFiAPMode mode);
@@ -226,18 +224,6 @@ inline const char * GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiAPSta
226224
return nullptr;
227225
}
228226

229-
template <class ImplClass>
230-
inline CHIP_ERROR GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetNetworkSSID(MutableCharSpan & ssid)
231-
{
232-
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
233-
}
234-
235-
template <class ImplClass>
236-
inline CHIP_ERROR GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetNetworkPassword(MutableCharSpan & credentials)
237-
{
238-
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
239-
}
240-
241227
template <class ImplClass>
242228
inline CHIP_ERROR GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_DisconnectNetwork(void)
243229
{

src/include/platform/internal/GenericConnectivityManagerImpl_WiFi.h

-14
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ class GenericConnectivityManagerImpl_WiFi
8282
#if CHIP_CONFIG_ENABLE_ICD_SERVER && !CHIP_DEVICE_CONFIG_ENABLE_THREAD
8383
CHIP_ERROR _SetPollingInterval(System::Clock::Milliseconds32 pollingInterval);
8484
#endif
85-
CHIP_ERROR _GetNetworkSSID(MutableCharSpan & ssid);
86-
CHIP_ERROR _GetNetworkPassword(MutableCharSpan & credentials);
8785
CHIP_ERROR _DisconnectNetwork(void);
8886
static const char * _WiFiStationModeToStr(ConnectivityManager::WiFiStationMode mode);
8987
static const char * _WiFiAPModeToStr(ConnectivityManager::WiFiAPMode mode);
@@ -198,18 +196,6 @@ inline CHIP_ERROR GenericConnectivityManagerImpl_WiFi<ImplClass>::_SetPollingInt
198196
}
199197
#endif
200198

201-
template <class ImplClass>
202-
inline CHIP_ERROR GenericConnectivityManagerImpl_WiFi<ImplClass>::_GetNetworkSSID(MutableCharSpan & ssid)
203-
{
204-
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
205-
}
206-
207-
template <class ImplClass>
208-
inline CHIP_ERROR GenericConnectivityManagerImpl_WiFi<ImplClass>::_GetNetworkPassword(MutableCharSpan & credentials)
209-
{
210-
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
211-
}
212-
213199
template <class ImplClass>
214200
inline CHIP_ERROR GenericConnectivityManagerImpl_WiFi<ImplClass>::_DisconnectNetwork(void)
215201
{

src/lib/shell/commands/WiFi.cpp

+13-97
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ static CHIP_ERROR WiFiModeHandler(int argc, char ** argv)
107107
return SetWiFiMode(argv[0]);
108108
}
109109

110-
static CHIP_ERROR WifiAddNetwork(char * ssid, char * password)
110+
static CHIP_ERROR WiFiConnectHandler(int argc, char ** argv)
111111
{
112112
CHIP_ERROR error = CHIP_NO_ERROR;
113113
uint8_t networkIndex;
@@ -117,78 +117,28 @@ static CHIP_ERROR WifiAddNetwork(char * ssid, char * password)
117117

118118
VerifyOrReturnError(GetWiFiDriver() != nullptr, error = CHIP_ERROR_NOT_IMPLEMENTED);
119119

120-
ssidSpan = ByteSpan(reinterpret_cast<const uint8_t *>(ssid), strlen(ssid));
121-
passwordSpan = ByteSpan(reinterpret_cast<const uint8_t *>(password), strlen(password));
120+
/* Command accepts running with SSID and password as parameters */
121+
VerifyOrReturnError((argc == 2), error = CHIP_ERROR_INVALID_ARGUMENT);
122+
123+
ssidSpan = ByteSpan(reinterpret_cast<const uint8_t *>(argv[0]), strlen(argv[0]));
124+
passwordSpan = ByteSpan(reinterpret_cast<const uint8_t *>(argv[1]), strlen(argv[1]));
122125

123126
if (IsSpanUsable(ssidSpan) && IsSpanUsable(passwordSpan))
124127
{
125128
ChipLogProgress(DeviceLayer, "[Shell] Adding/Updating network %s", ssidSpan.data());
126129

127130
/* AddOrUpdateNetwork() checks ssid length and password length. The network info is not persistent. */
128131
GetWiFiDriver()->AddOrUpdateNetwork(ssidSpan, passwordSpan, debugText, networkIndex);
129-
}
130-
else
131-
{
132-
error = CHIP_ERROR_INVALID_ARGUMENT;
133-
}
134-
135-
return error;
136-
}
137-
138-
static CHIP_ERROR WiFiConnectHandler(int argc, char ** argv)
139-
{
140-
CHIP_ERROR error = CHIP_NO_ERROR;
141-
bool connectToNetwork = false;
142-
ByteSpan ssidSpan;
143-
144-
VerifyOrReturnError(GetWiFiDriver() != nullptr, error = CHIP_ERROR_NOT_IMPLEMENTED);
145-
146-
/* Command accepts running either without arguments or either with SSID and password */
147-
/* Running without arguments implies that "wifi add ssid password" was executed before */
148-
VerifyOrReturnError((argc == 0) || (argc == 2), error = CHIP_ERROR_INVALID_ARGUMENT);
149-
150-
if (argc == 0)
151-
{
152-
/* Retrieve previously added SSID */
153-
char ssid[DeviceLayer::Internal::kMaxWiFiSSIDLength + 1] = { 0 };
154-
MutableCharSpan ssidMutableSpan(ssid);
155-
156-
VerifyOrReturnError(ConnectivityMgr().GetNetworkSSID(ssidMutableSpan) == CHIP_NO_ERROR, error = CHIP_ERROR_BUFFER_TOO_SMALL);
157-
158-
if (IsSpanUsable(ssidMutableSpan))
159-
{
160-
connectToNetwork = true;
161-
ssidSpan = ByteSpan(reinterpret_cast<const uint8_t *>(ssidMutableSpan.data()), ssidMutableSpan.size());
162-
}
163-
else
164-
{
165-
ChipLogError(
166-
DeviceLayer,
167-
"[Shell] No network credentials found! Please add using <wifi add ssid password> or <wifi connect ssid password>");
168-
error = CHIP_ERROR_INVALID_ARGUMENT;
169-
}
170-
}
171-
else if (argc == 2)
172-
{
173-
ssidSpan = ByteSpan(reinterpret_cast<const uint8_t *>(argv[0]), strlen(argv[0]));
174-
175-
if ((IsSpanUsable(ssidSpan)) && (WifiAddNetwork(argv[0], argv[1]) == CHIP_NO_ERROR))
176-
{
177-
connectToNetwork = true;
178-
}
179-
else
180-
{
181-
ChipLogError(DeviceLayer, "[Shell] Failed to add network credentials!");
182-
error = CHIP_ERROR_INVALID_ARGUMENT;
183-
}
184-
}
185132

186-
if (connectToNetwork == true)
187-
{
188133
ChipLogProgress(DeviceLayer, "[Shell] Progress: Connecting to network");
189134
/* Connection event will be returned in OnWiFiConnectivityChange from DeviceCallbacks.cpp */
190135
GetWiFiDriver()->ConnectNetwork(ssidSpan, nullptr);
191136
}
137+
else
138+
{
139+
ChipLogError(DeviceLayer, "[Shell] Failed to add network credentials!");
140+
error = CHIP_ERROR_INVALID_ARGUMENT;
141+
}
192142

193143
return error;
194144
}
@@ -200,38 +150,6 @@ static CHIP_ERROR WiFiDisconnectHandler(int argc, char ** argv)
200150
return ConnectivityMgr().DisconnectNetwork();
201151
}
202152

203-
static CHIP_ERROR WiFiAddNwkHandler(int argc, char ** argv)
204-
{
205-
VerifyOrReturnError((argc == 2), CHIP_ERROR_INVALID_ARGUMENT);
206-
207-
return WifiAddNetwork(argv[0], argv[1]);
208-
}
209-
210-
static CHIP_ERROR WiFiRemoveNwkHandler(int argc, char ** argv)
211-
{
212-
VerifyOrReturnError(GetWiFiDriver() != nullptr, CHIP_ERROR_NOT_IMPLEMENTED);
213-
214-
DeviceLayer::NetworkCommissioning::Status status;
215-
uint8_t networkIndex;
216-
ByteSpan ssidSpan;
217-
char ssid[DeviceLayer::Internal::kMaxWiFiSSIDLength + 1] = { 0 };
218-
MutableCharSpan debugText;
219-
MutableCharSpan ssidMutableSpan(ssid);
220-
221-
VerifyOrReturnError(ConnectivityMgr().GetNetworkSSID(ssidMutableSpan) == CHIP_NO_ERROR, CHIP_ERROR_BUFFER_TOO_SMALL);
222-
223-
ssidSpan = ByteSpan(reinterpret_cast<const uint8_t *>(ssidMutableSpan.data()), ssidMutableSpan.size());
224-
225-
status = GetWiFiDriver()->RemoveNetwork(ssidSpan, debugText, networkIndex);
226-
227-
if (status != DeviceLayer::NetworkCommissioning::Status::kSuccess)
228-
{
229-
ChipLogError(DeviceLayer, "[Shell] Error: RemoveNetwork: %u", (uint8_t) status);
230-
}
231-
232-
return CHIP_NO_ERROR;
233-
}
234-
235153
static CHIP_ERROR WiFiScanHandler(int argc, char ** argv)
236154
{
237155
ByteSpan ssidSpan;
@@ -281,11 +199,9 @@ void RegisterWiFiCommands()
281199
static const shell_command_t sWiFiSubCommands[] = {
282200
{ &WiFiHelpHandler, "help", "" },
283201
{ &WiFiModeHandler, "mode", "Get/Set wifi mode. Usage: wifi mode [disable|ap|sta]" },
284-
{ &WiFiConnectHandler, "connect", "Connect to AP. Usage: wifi connect <ssid> <psk>. ssid and psk are optional." },
202+
{ &WiFiConnectHandler, "connect", "Connect to AP. Usage: wifi connect <ssid> <psk>" },
285203
{ &WiFiDisconnectHandler, "disconnect", "Disconnect device from AP. Usage: wifi disconnect" },
286-
{ &WiFiAddNwkHandler, "add", "Add credentials for Wi-Fi network. Usage: wifi add <ssid> <psk>" },
287-
{ &WiFiRemoveNwkHandler, "remove", "Remove credentials for Wi-Fi network. Usage: wifi remove <ssid>" },
288-
{ &WiFiScanHandler, "scan", "Scan for Wi-Fi networks. Usage: wifi scan <ssid>. ssid is optional." },
204+
{ &WiFiScanHandler, "scan", "Scan for Wi-Fi networks. Usage: wifi scan <ssid>. ssid is optional" },
289205
};
290206
static const shell_command_t sWiFiCommand = { &WiFiDispatch, "wifi", "Usage: wifi <subcommand>" };
291207

0 commit comments

Comments
 (0)