@@ -86,7 +86,7 @@ static rtw_result_t scan_result_handler( rtw_scan_handler_result_t* malloced_sca
86
86
}
87
87
88
88
RTWInterface::RTWInterface (bool debug)
89
- : _dhcp(true ), _ip_address(), _netmask(), _gateway()
89
+ : _dhcp(true ), _ssid(), _pass(), _ip_address(), _netmask(), _gateway()
90
90
{
91
91
emac_interface_t *emac;
92
92
int ret;
@@ -135,7 +135,7 @@ nsapi_error_t RTWInterface::set_dhcp(bool dhcp)
135
135
*/
136
136
nsapi_error_t RTWInterface::set_credentials (const char *ssid, const char *pass, nsapi_security_t security)
137
137
{
138
- if (!ssid) {
138
+ if (!ssid || ( strlen (ssid) == 0 ) ) {
139
139
return NSAPI_ERROR_PARAMETER;
140
140
}
141
141
@@ -149,6 +149,9 @@ nsapi_error_t RTWInterface::set_credentials(const char *ssid, const char *pass,
149
149
}
150
150
break ;
151
151
case NSAPI_SECURITY_NONE:
152
+ if (pass && strlen (pass) > 0 ) {
153
+ return NSAPI_ERROR_PARAMETER;
154
+ }
152
155
break ;
153
156
default :
154
157
return NSAPI_ERROR_PARAMETER;
@@ -166,7 +169,8 @@ nsapi_error_t RTWInterface::connect()
166
169
int ret;
167
170
rtw_security_t sec;
168
171
169
- if (!_ssid || (!_pass && _security != NSAPI_SECURITY_NONE)) {
172
+ if (!_ssid || (strlen (_ssid) == 0 ) ||
173
+ (!_pass && _security != NSAPI_SECURITY_NONE)) {
170
174
printf (" Invalid credentials\r\n " );
171
175
return NSAPI_ERROR_PARAMETER;
172
176
}
@@ -187,11 +191,6 @@ nsapi_error_t RTWInterface::connect()
187
191
return NSAPI_ERROR_PARAMETER;
188
192
}
189
193
190
- if (_channel > 0 && _channel < 14 ){
191
- uint8_t pscan_config = PSCAN_ENABLE;
192
- wifi_set_pscan_chan (&_channel, &pscan_config, 1 );
193
- }
194
-
195
194
ret = wifi_connect (_ssid, sec, _pass, strlen (_ssid), strlen (_pass), 0 , (void *)NULL );
196
195
if (ret != RTW_SUCCESS) {
197
196
printf (" failed: %d\r\n " , ret);
@@ -229,7 +228,10 @@ nsapi_error_t RTWInterface::scan(WiFiAccessPoint *res, unsigned count)
229
228
230
229
nsapi_error_t RTWInterface::set_channel (uint8_t channel)
231
230
{
232
- _channel = channel;
231
+ // Not supported for STA mode wifi driver
232
+ if (channel != 0 )
233
+ return NSAPI_ERROR_UNSUPPORTED;
234
+
233
235
return NSAPI_ERROR_OK;
234
236
}
235
237
@@ -244,8 +246,14 @@ int8_t RTWInterface::get_rssi()
244
246
nsapi_error_t RTWInterface::connect (const char *ssid, const char *pass,
245
247
nsapi_security_t security, uint8_t channel)
246
248
{
247
- set_credentials (ssid, pass, security);
248
- set_channel (channel);
249
+ nsapi_error_t ret;
250
+
251
+ ret = set_credentials (ssid, pass, security);
252
+ if (ret != NSAPI_ERROR_OK) return ret;
253
+
254
+ ret = set_channel (channel);
255
+ if (ret != NSAPI_ERROR_OK) return ret;
256
+
249
257
return connect ();
250
258
}
251
259
0 commit comments