@@ -51,7 +51,11 @@ bool NetworkConfiguratorClass::begin() {
51
51
if (_state != NetworkConfiguratorStates::END) {
52
52
return true ;
53
53
}
54
+ #if ZERO_TOUCH_ENABLED
55
+ _state = NetworkConfiguratorStates::ZERO_TOUCH_CONFIG;
56
+ #else
54
57
_state = NetworkConfiguratorStates::READ_STORED_CONFIG;
58
+ #endif
55
59
memset (&_networkSetting, 0x00 , sizeof (models::NetworkSetting));
56
60
LEDFeedbackClass::getInstance ().begin ();
57
61
#ifdef BOARD_HAS_WIFI
@@ -76,17 +80,6 @@ bool NetworkConfiguratorClass::begin() {
76
80
_connectionRetryTimer.begin (NC_CONNECTION_RETRY_TIMER_ms);
77
81
_resetInput->begin ();
78
82
79
- #ifdef BOARD_HAS_ETHERNET // TODO Generalize
80
- _networkSetting.type = NetworkAdapter::ETHERNET;
81
- _networkSetting.eth .timeout = 250 ;
82
- _networkSetting.eth .response_timeout = 500 ;
83
- if (!_connectionHandler->updateSetting (_networkSetting)) {
84
- return true ;
85
- }
86
- _connectionHandlerIstantiated = true ;
87
- _connectionTimeout.reload ();
88
- _state = NetworkConfiguratorStates::CHECK_ETH;
89
- #endif
90
83
return true ;
91
84
}
92
85
@@ -95,16 +88,16 @@ NetworkConfiguratorStates NetworkConfiguratorClass::poll() {
95
88
LEDFeedbackClass::getInstance ().poll ();// TODO rename in update
96
89
97
90
switch (_state) {
98
- #ifdef BOARD_HAS_ETHERNET
99
- case NetworkConfiguratorStates::CHECK_ETH : nextState = handleCheckEth (); break ;
91
+ #if ZERO_TOUCH_ENABLED
92
+ case NetworkConfiguratorStates::ZERO_TOUCH_CONFIG : nextState = handleZeroTouchConfig (); break ;
100
93
#endif
101
- case NetworkConfiguratorStates::READ_STORED_CONFIG: nextState = handleReadStorage (); break ;
102
- case NetworkConfiguratorStates::WAITING_FOR_CONFIG: nextState = handleWaitingForConf (); break ;
103
- case NetworkConfiguratorStates::CONNECTING: nextState = handleConnecting (); break ;
104
- case NetworkConfiguratorStates::CONFIGURED: nextState = handleConfigured (); break ;
105
- case NetworkConfiguratorStates::UPDATING_CONFIG: nextState = handleUpdatingConfig (); break ;
106
- case NetworkConfiguratorStates::ERROR: nextState = handleErrorState (); break ;
107
- case NetworkConfiguratorStates::END: break ;
94
+ case NetworkConfiguratorStates::READ_STORED_CONFIG: nextState = handleReadStorage (); break ;
95
+ case NetworkConfiguratorStates::WAITING_FOR_CONFIG: nextState = handleWaitingForConf (); break ;
96
+ case NetworkConfiguratorStates::CONNECTING: nextState = handleConnecting (); break ;
97
+ case NetworkConfiguratorStates::CONFIGURED: nextState = handleConfigured (); break ;
98
+ case NetworkConfiguratorStates::UPDATING_CONFIG: nextState = handleUpdatingConfig (); break ;
99
+ case NetworkConfiguratorStates::ERROR: nextState = handleErrorState (); break ;
100
+ case NetworkConfiguratorStates::END: break ;
108
101
}
109
102
110
103
if (_state != nextState){
@@ -429,22 +422,32 @@ void NetworkConfiguratorClass::startReconfigureProcedure() {
429
422
NVIC_SystemReset ();
430
423
}
431
424
432
- #ifdef BOARD_HAS_ETHERNET
433
- NetworkConfiguratorStates NetworkConfiguratorClass::handleCheckEth () {
434
- NetworkConfiguratorStates nextState = _state;
425
+ #if ZERO_TOUCH_ENABLED
426
+ NetworkConfiguratorStates NetworkConfiguratorClass::handleZeroTouchConfig () {
427
+ if (_networkSetting.type == NetworkAdapter::NONE) {
428
+ #ifdef BOARD_HAS_ETHERNET
429
+ defaultEthernetSettings ();
430
+ #endif
431
+ if (!_connectionHandler->updateSetting (_networkSetting)) {
432
+ return NetworkConfiguratorStates::READ_STORED_CONFIG;
433
+ }
434
+ _connectionHandlerIstantiated = true ;
435
+ _connectionTimeout.reload ();
436
+ }
437
+
435
438
StatusMessage err;
436
439
ConnectionResult connectionRes = connectToNetwork (&err);
437
440
if (connectionRes == ConnectionResult::SUCCESS) {
438
- nextState = NetworkConfiguratorStates::CONFIGURED;
441
+ return NetworkConfiguratorStates::CONFIGURED;
439
442
} else if (connectionRes == ConnectionResult::FAILED) {
440
443
DEBUG_VERBOSE (" NetworkConfiguratorClass::%s Connection eth fail" , __FUNCTION__);
441
444
if (disconnectFromNetwork () == ConnectionResult::FAILED) {
442
445
sendStatus (StatusMessage::ERROR);
443
446
}
444
447
_connectionHandlerIstantiated = false ;
445
- nextState = NetworkConfiguratorStates::READ_STORED_CONFIG;
448
+ return NetworkConfiguratorStates::READ_STORED_CONFIG;
446
449
}
447
- return nextState ;
450
+ return NetworkConfiguratorStates::ZERO_TOUCH_CONFIG ;
448
451
}
449
452
#endif
450
453
@@ -665,4 +668,13 @@ void NetworkConfiguratorClass::printNetworkSettings() {
665
668
break ;
666
669
}
667
670
}
668
- #endif // NETWORK_CONFIGURATOR_COMPATIBLE
671
+
672
+ #ifdef BOARD_HAS_ETHERNET
673
+ void NetworkConfiguratorClass::defaultEthernetSettings () {
674
+ _networkSetting.type = NetworkAdapter::ETHERNET;
675
+ _networkSetting.eth .timeout = 250 ;
676
+ _networkSetting.eth .response_timeout = 500 ;
677
+ }
678
+ #endif
679
+
680
+ #endif // NETWORK_CONFIGURATOR_COMPATIBLE
0 commit comments