@@ -33,8 +33,10 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
33
33
JsonArray aps = data[" wifi" ][" AP" ].as <JsonArray>();
34
34
for (JsonVariant v : aps) {
35
35
Configuration::Wifi::AP ap;
36
- ap.SSID = v[" SSID" ].as <String>();
37
- ap.password = v[" password" ].as <String>();
36
+ if (v.containsKey (" SSID" ))
37
+ ap.SSID = v[" SSID" ].as <String>();
38
+ if (v.containsKey (" password" ))
39
+ ap.password = v[" password" ].as <String>();
38
40
conf.wifi .APs .push_back (ap);
39
41
}
40
42
if (data.containsKey (" beacon" ) && data[" beacon" ].containsKey (" message" ))
@@ -44,14 +46,16 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
44
46
conf.beacon .use_gps = data[" beacon" ][" use_gps" ] | false ;
45
47
conf.beacon .timeout = data[" beacon" ][" timeout" ] | 15 ;
46
48
conf.aprs_is .active = data[" aprs_is" ][" active" ] | true ;
49
+
47
50
if (data.containsKey (" aprs_is" ) && data[" aprs_is" ].containsKey (" passcode" ))
48
51
conf.aprs_is .passcode = data[" aprs_is" ][" passcode" ].as <String>();
49
52
if (data.containsKey (" aprs_is" ) && data[" aprs_is" ].containsKey (" server" ))
50
53
conf.aprs_is .server = data[" aprs_is" ][" server" ].as <String>();
51
54
conf.aprs_is .port = data[" aprs_is" ][" port" ] | 14580 ;
52
55
53
- conf.digi .active = data[" digi" ][" active" ] | false ;
54
- conf.digi .beacon = data[" digi" ][" beacon" ] | false ;
56
+ conf.digi .active = data[" digi" ][" active" ] | false ;
57
+ conf.digi .beacon = data[" digi" ][" beacon" ] | false ;
58
+
55
59
conf.lora .frequencyRx = data[" lora" ][" frequency_rx" ] | 433775000 ;
56
60
conf.lora .gainRx = data[" lora" ][" gain_rx" ] | 0 ;
57
61
conf.lora .frequencyTx = data[" lora" ][" frequency_tx" ] | 433775000 ;
@@ -60,6 +64,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
60
64
conf.lora .signalBandwidth = data[" lora" ][" signal_bandwidth" ] | 125000 ;
61
65
conf.lora .codingRate4 = data[" lora" ][" coding_rate4" ] | 5 ;
62
66
conf.lora .tx_enable = data[" lora" ][" tx_enable" ] | true ;
67
+
63
68
conf.display .alwaysOn = data[" display" ][" always_on" ] | true ;
64
69
conf.display .timeout = data[" display" ][" timeout" ] | 10 ;
65
70
conf.display .overwritePin = data[" display" ][" overwrite_pin" ] | 0 ;
@@ -69,8 +74,10 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
69
74
JsonArray users = data[" ftp" ][" user" ].as <JsonArray>();
70
75
for (JsonVariant u : users) {
71
76
Configuration::Ftp::User us;
72
- us.name = u[" name" ].as <String>();
73
- us.password = u[" password" ].as <String>();
77
+ if (u.containsKey (" name" ))
78
+ us.name = u[" name" ].as <String>();
79
+ if (u.containsKey (" password" ))
80
+ us.password = u[" password" ].as <String>();
74
81
conf.ftp .users .push_back (us);
75
82
}
76
83
if (conf.ftp .users .empty ()) {
@@ -79,19 +86,23 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
79
86
us.password = " ftp" ;
80
87
conf.ftp .users .push_back (us);
81
88
}
82
- if (data.containsKey (" mqtt" )) {
83
- conf.mqtt .active = data[" mqtt" ][" active" ] | false ;
84
- conf.mqtt .server = data[" mqtt" ][" server" ].as <String>();
85
- conf.mqtt .port = data[" mqtt" ][" port" ].as <uint16_t >();
86
- conf.mqtt .name = data[" mqtt" ][" name" ].as <String>();
89
+
90
+ conf.mqtt .active = data[" mqtt" ][" active" ] | false ;
91
+ if (data[" mqtt" ].containsKey (" server" ))
92
+ conf.mqtt .server = data[" mqtt" ][" server" ].as <String>();
93
+ conf.mqtt .port = data[" mqtt" ][" port" ] | 1883 ;
94
+ if (data[" mqtt" ].containsKey (" name" ))
95
+ conf.mqtt .name = data[" mqtt" ][" name" ].as <String>();
96
+ if (data[" mqtt" ].containsKey (" password" ))
87
97
conf.mqtt .password = data[" mqtt" ][" password" ].as <String>();
88
- conf.mqtt .topic = data[" mqtt" ][" topic" ].as <String>();
89
- }
90
- if (data.containsKey (" syslog" )) {
91
- conf.syslog .active = data[" syslog" ][" active" ] | true ;
98
+ if (data[" mqtt" ].containsKey (" topic" ))
99
+ conf.mqtt .topic = data[" mqtt" ][" topic" ].as <String>();
100
+
101
+ conf.syslog .active = data[" syslog" ][" active" ] | true ;
102
+ if (data[" syslog" ].containsKey (" server" ))
92
103
conf.syslog .server = data[" syslog" ][" server" ].as <String>();
93
- conf.syslog .port = data[" syslog" ][" port" ] | 514 ;
94
- }
104
+ conf.syslog .port = data[" syslog" ][" port" ] | 514 ;
105
+
95
106
if (data.containsKey (" ntp_server" ))
96
107
conf.ntpServer = data[" ntp_server" ].as <String>();
97
108
0 commit comments