1
- /* *
1
+ /* *
2
2
Nefry lib
3
3
4
4
Copyright (c) 2016 wami
@@ -8,29 +8,25 @@ This software is released under the MIT License.
8
8
*/
9
9
10
10
/*
11
- ConnectSSID : Nefryが接続するWiFiのSSIDを保存するときに使用する。5つまで保存。末端に数字が追加される String型 null文字の時リストに追加しない
12
- ConnectPass : Nefryが接続するWiFiのパスワードを保存するときに使用する。5つまで保存。末端に数字が追加される String型
13
- ConnectWiFi : 接続するWiFiを有効or無効化する
11
+ ConnectSSID : Nefryが接続するWiFiのSSIDを保存するときに使用する。5つまで保存。末端に数字が追加される String型 null文字の時リストに追加しない
12
+ ConnectPass : Nefryが接続するWiFiのパスワードを保存するときに使用する。5つまで保存。末端に数字が追加される String型
14
13
*/
15
14
16
15
#include " NefryWiFi.h"
17
- Preferences wifiPreferences;
18
- bool wifiEnable[5 ];
19
16
20
17
bool initflgWifi = false ;
21
- void Nefry_WiFi::begin () {
22
- deleteWifi (0 );
18
+ void Nefry_WiFi::begin () {
19
+ WiFi.persistent (false );
20
+ WiFi.mode (WIFI_AP_STA);
23
21
wifiMulti = WiFiMulti ();
24
- scanWiFi (); // WiFiを検索し、Webページに表示する
25
- setWifiTimeout (0 );// 無制限で自動接続する
22
+ dataCache ();
23
+ setWifiTimeout (0 ); // 無制限で自動接続する
26
24
Serial.println (" Saved WiFi List" );
27
25
Serial.println (getlistWifi ());
28
- WiFi.persistent (false );
29
- WiFi.mode (WIFI_AP_STA);
30
- deleteWifi (0 );
26
+
31
27
for (int i = 0 ; i < 5 ; i++) {
32
- if (!NefryDataStore. getConnectSSID (i) .equals (" " )) {
33
- wifiMulti.addAP (NefryDataStore. getConnectSSID (i) .c_str (), NefryDataStore. getConnectPass (i) .c_str ());
28
+ if (!_nefryssid[i] .equals (" " )) {
29
+ wifiMulti.addAP (_nefryssid[i] .c_str (), _nefrypwd[i] .c_str ());
34
30
}
35
31
}
36
32
wifiMulti.addAP (" NefryWiFi" , " NefryWiFi" );
@@ -50,7 +46,7 @@ void Nefry_WiFi::begin() {
50
46
delay (100 );
51
47
loopCounter++;
52
48
Serial.print (" ." );
53
- if (loopCounter >= 30 )break ;
49
+ if (loopCounter >= 6 )break ;
54
50
if (WiFi.status () == WL_CONNECTED)break ;
55
51
}
56
52
if (WiFi.status () == WL_CONNECTED) {
@@ -63,34 +59,34 @@ void Nefry_WiFi::begin() {
63
59
else {
64
60
Nefry.setLed (200 , 0 , 0 );
65
61
}
66
-
67
- /* Nefryが発信するWiFiの設定*/
62
+ scanWiFi (); // WiFiを検索し、Webページに表示する
63
+ /* Nefryが発信するWiFiの設定*/
68
64
if ( NefryDataStore.getBootSelector ()== 1 || NefryDataStore.getModulePass ().length () == 0 ) {
69
65
WiFi.softAP (NefryDataStore.getModuleID ().c_str ());
70
66
Serial.println (F (" \n Waiting for WiFi to connect" ));
71
67
}
72
68
else {
73
69
WiFi.softAP (NefryDataStore.getModuleID ().c_str (), NefryDataStore.getModulePass ().c_str ());
74
70
}
75
- setWifiTimeout (6 );// 6回目で自動接続をタイムアウトする
71
+ setWifiTimeout (6 );// 6回目で自動接続をタイムアウトする
76
72
setWifiTimeoutClear ();
77
73
delay (1000 );
78
74
}
79
75
80
76
uint8_t prevWifiStatus = WL_IDLE_STATUS;
81
77
int Nefry_WiFi::run () {
82
78
/*
83
- run関数で返す値
79
+ run関数で返す値
84
80
85
- -1 :不明なエラー
86
- 0 :接続済み
87
- 1 :自動接続しない
88
- 2 :タイムアウト
89
- 3 :ネットワークアイドル中
90
- 4 :SSID検出できず
91
- 5 :検索完了
92
- 6 :接続エラー
93
- 7 :切断
81
+ -1 :不明なエラー
82
+ 0 :接続済み
83
+ 1 :自動接続しない
84
+ 2 :タイムアウト
85
+ 3 :ネットワークアイドル中
86
+ 4 :SSID検出できず
87
+ 5 :検索完了
88
+ 6 :接続エラー
89
+ 7 :切断
94
90
95
91
*/
96
92
if (initflgWifi == false )return 1 ;
@@ -162,11 +158,11 @@ String Nefry_WiFi::beginWeb(String url)
162
158
content += network_list;
163
159
content += F (" </div><div><h1>Saved WiFi List</h1><p>Delete WiFi Select</p><form name=\" myForm\" method='get' action='delete_wifi'>" );
164
160
for (int i = 0 ; i < 5 ; i++) {
165
- if (!NefryDataStore. getConnectSSID (i) .equals (" " )){
161
+ if (!_nefryssid[i] .equals (" " )){
166
162
content += F (" <input type=\" checkbox\" value=\" 1\" name=\" " );
167
163
content += i;
168
164
content += F (" \" >" );
169
- content += NefryDataStore. getConnectSSID (i) ;
165
+ content += _nefryssid[i] ;
170
166
content += F (" <br>" );
171
167
}
172
168
}
@@ -186,58 +182,63 @@ String Nefry_WiFi::beginWeb(String url)
186
182
187
183
// WiFi
188
184
189
- void Nefry_WiFi::deleteWifi (int id)
185
+ String Nefry_WiFi::deleteWifi (int id)
190
186
{
191
- if (id < 0 || id >= 5 )return ;
192
- NefryDataStore.setConnectSSID (" " ,id);
193
- NefryDataStore.setConnectPass (" " ,id);
187
+ if (id < 0 || id >= 5 )return " " ;
188
+ String ssid = _nefryssid[id];
189
+ _nefryssid[id] = " " ;
190
+ _nefrypwd[id]=" " ;
191
+ return ssid;
194
192
}
195
193
196
- void Nefry_WiFi::addWifi (String ssid , String pwd )
194
+ void Nefry_WiFi::addWifi (String _ssid , String _pwd )
197
195
{
198
- Serial.print (" addwifi : " );
199
- Serial.println (ssid);
200
196
sortWifi ();
201
197
for (int i = 0 ; i < 5 ; i++) {
202
- if (NefryDataStore. getConnectSSID (i) .equals (" " )) {
203
- NefryDataStore. setConnectSSID (ssid, i) ;
204
- NefryDataStore. setConnectPass (pwd, i) ;
198
+ if (_nefryssid[i] .equals (" " )) {
199
+ _nefryssid[i] = _ssid ;
200
+ _nefrypwd[i]=_pwd ;
205
201
return ;
206
202
}
207
203
}
208
204
deleteWifi (0 );
209
205
sortWifi ();
210
- NefryDataStore. setConnectSSID (ssid, 4 ) ;
211
- NefryDataStore. setConnectPass (pwd, 4 ) ;
206
+ _nefryssid[ 4 ]=_ssid ;
207
+ _nefrypwd[ 4 ]=_pwd ;
212
208
}
213
- void Nefry_WiFi::sortWifi ()
209
+ int Nefry_WiFi::sortWifi ()
214
210
{
215
- for (int i = 0 ,j = 0 ; i < 4 ; i++) {
216
- if (NefryDataStore.getConnectSSID (i).equals (" " )) {
211
+ int i = 0 ;
212
+ for (int j = 0 ; i < 4 ; i++) {
213
+ if (_nefryssid[i].equals (" " )) {
217
214
for (j = i + 1 ; j < 5 ; j++) {
218
- if (!NefryDataStore.getConnectSSID (j).equals (" " )) {
219
- NefryDataStore.setConnectSSID (NefryDataStore.getConnectSSID (j), i);
220
- NefryDataStore.setConnectPass (NefryDataStore.getConnectPass (j), i);
221
- NefryDataStore.setConnectSSID (" " , j);
222
- NefryDataStore.setConnectPass (" " , j);
215
+ if (!_nefryssid[j].equals (" " )) {
216
+ _nefryssid[i] = _nefryssid[j];
217
+ _nefrypwd[i] = _nefrypwd[j];
218
+ deleteWifi (j);
223
219
break ;
224
220
}
225
221
}
226
- if (j == 5 )return ;
222
+ if (j == 5 )break ;
227
223
}
228
224
}
225
+ return i;
229
226
}
230
227
void Nefry_WiFi::saveWifi () {
231
228
sortWifi ();
229
+ for (int i = 0 ; i < 5 ; i++) {
230
+ NefryDataStore.setConnectSSID (_nefryssid[i],i);
231
+ NefryDataStore.setConnectPass (_nefrypwd[i],i);
232
+ }
232
233
}
233
234
String Nefry_WiFi::getlistWifi () {
234
235
String lisWifi = " " ;
235
236
for (int i = 0 ; i < 5 ; i++) {
236
- if (!NefryDataStore. getConnectSSID (i) .equals (" " )) {
237
+ if (!_nefryssid[i] .equals (" " )) {
237
238
lisWifi += " ID : " ;
238
239
lisWifi += i;
239
240
lisWifi += " SSID : " ;
240
- lisWifi += NefryDataStore. getConnectSSID (i) ;
241
+ lisWifi += _nefryssid[i] ;
241
242
lisWifi += " \n " ;
242
243
}
243
244
}
@@ -248,7 +249,7 @@ void Nefry_WiFi::scanWiFi(void) {
248
249
int founds = WiFi.scanNetworks ();
249
250
Serial.println ();
250
251
Serial.println (F (" scan done" ));
251
- if (founds = = 0 ) {
252
+ if (founds < = 0 ) {
252
253
Serial.println (F (" no networks found" ));
253
254
}
254
255
else {
@@ -279,7 +280,15 @@ void Nefry_WiFi::scanWiFi(void) {
279
280
network_list += F (" </datalist>" );
280
281
}
281
282
}
282
- /* 文字置換 */
283
+ void Nefry_WiFi::dataCache ()
284
+ {
285
+ for (int i = 0 ; i < 5 ; i++) {
286
+ _nefryssid[i] = NefryDataStore.getConnectSSID (i);
287
+ _nefrypwd[i] = NefryDataStore.getConnectPass (i);
288
+ }
289
+
290
+ }
291
+ /* 文字置換 */
283
292
String Nefry_WiFi::escapeParameter (String param) {
284
293
param.replace (" +" , " " );
285
294
param.replace (" %21" , " !" );
@@ -313,7 +322,7 @@ String Nefry_WiFi::escapeParameter(String param) {
313
322
return param;
314
323
}
315
324
316
- /* WiFiのタイムアウトの秒数を設定します。 */
325
+ /* WiFiのタイムアウトの秒数を設定します。 */
317
326
318
327
int Nefry_WiFi::getWifiTimeout ()
319
328
{
0 commit comments