@@ -22,6 +22,7 @@ static const uint8_t ppLbandIpToken[16] = {POINTPERFECT_LBAND_IP_TOKEN}; // Toke
22
22
23
23
#ifdef COMPILE_NETWORK
24
24
MqttClient *menuppMqttClient;
25
+ static NetPriority_t pointperfectPriority = NETWORK_OFFLINE;
25
26
#endif // COMPILE_NETWORK
26
27
27
28
// ----------------------------------------
@@ -891,7 +892,6 @@ void beginLBand()
891
892
#endif // /COMPILE_MOSAICX5
892
893
}
893
894
894
- // Set 'home' WiFi credentials
895
895
// Provision device on ThingStream
896
896
// Download keys
897
897
void menuPointPerfect ()
@@ -1177,7 +1177,7 @@ enum ProvisioningStates
1177
1177
PROVISIONING_NOT_STARTED,
1178
1178
PROVISIONING_CHECK_REMAINING,
1179
1179
PROVISIONING_CHECK_ATTEMPT,
1180
- PROVISIONING_CHECK_NETWORK ,
1180
+ PROVISIONING_WAIT_FOR_NETWORK ,
1181
1181
PROVISIONING_STARTING,
1182
1182
PROVISIONING_STARTED,
1183
1183
PROVISIONING_KEYS_REMAINING,
@@ -1191,7 +1191,7 @@ const char *const provisioningStateName[] = {"PROVISIONING_OFF",
1191
1191
" PROVISIONING_NOT_STARTED" ,
1192
1192
" PROVISIONING_CHECK_REMAINING" ,
1193
1193
" PROVISIONING_CHECK_ATTEMPT" ,
1194
- " PROVISIONING_CHECK_NETWORK " ,
1194
+ " PROVISIONING_WAIT_FOR_NETWORK " ,
1195
1195
" PROVISIONING_STARTING" ,
1196
1196
" PROVISIONING_STARTED" ,
1197
1197
" PROVISIONING_KEYS_REMAINING" ,
@@ -1273,21 +1273,21 @@ void updateProvisioning()
1273
1273
{
1274
1274
if (settings.debugPpCertificate )
1275
1275
systemPrintln (" Invalid certificates or keys. Starting provisioning" );
1276
- provisioningSetState (PROVISIONING_CHECK_NETWORK );
1276
+ provisioningSetState (PROVISIONING_WAIT_FOR_NETWORK );
1277
1277
}
1278
1278
// If requestKeyUpdate is true, begin provisioning
1279
1279
else if (settings.requestKeyUpdate )
1280
1280
{
1281
1281
if (settings.debugPpCertificate )
1282
1282
systemPrintln (" requestKeyUpdate is true. Starting provisioning" );
1283
- provisioningSetState (PROVISIONING_CHECK_NETWORK );
1283
+ provisioningSetState (PROVISIONING_WAIT_FOR_NETWORK );
1284
1284
}
1285
1285
// If RTC is not online, we have to skip PROVISIONING_CHECK_ATTEMPT
1286
1286
else if (!online.rtc )
1287
1287
{
1288
1288
if (settings.debugPpCertificate )
1289
1289
systemPrintln (" No RTC. Starting provisioning" );
1290
- provisioningSetState (PROVISIONING_CHECK_NETWORK );
1290
+ provisioningSetState (PROVISIONING_WAIT_FOR_NETWORK );
1291
1291
}
1292
1292
else
1293
1293
{
@@ -1313,7 +1313,7 @@ void updateProvisioning()
1313
1313
{
1314
1314
settings.lastKeyAttempt = rtc.getEpoch (); // Mark it
1315
1315
recordSystemSettings (); // Record these settings to unit
1316
- provisioningSetState (PROVISIONING_CHECK_NETWORK );
1316
+ provisioningSetState (PROVISIONING_WAIT_FOR_NETWORK );
1317
1317
}
1318
1318
else
1319
1319
{
@@ -1323,19 +1323,29 @@ void updateProvisioning()
1323
1323
}
1324
1324
}
1325
1325
break ;
1326
- case PROVISIONING_CHECK_NETWORK: {
1327
- if (!networkIsOnline ())
1326
+
1327
+ // Wait for connection to the network
1328
+ case PROVISIONING_WAIT_FOR_NETWORK: {
1329
+ // Determine if the key update request has been canceled while waiting
1330
+ if (settings.requestKeyUpdate == false )
1328
1331
{
1329
- if (wifiNetworkCount () == 0 )
1330
- displayNoSSIDs (2000 );
1331
- else
1332
- displayNoNetwork (2000 );
1333
- provisioningSetState (PROVISIONING_KEYS_REMAINING);
1332
+ provisioningSetState (PROVISIONING_NOT_STARTED);
1334
1333
}
1335
- else
1334
+ // Wait until the network is available
1335
+ else if (networkIsConnected (&pointperfectPriority))
1336
+ {
1337
+ if (settings.debugPpCertificate )
1338
+ systemPrintln (" PointPerfect key update connected to network" );
1339
+
1340
+ // Go get latest keys
1336
1341
provisioningSetState (PROVISIONING_STARTING);
1342
+ }
1343
+ // TODO If we just booted, show keys remaining regardless of provisioning state machine
1344
+ // provisioningSetState(PROVISIONING_KEYS_REMAINING);
1337
1345
}
1346
+
1338
1347
break ;
1348
+
1339
1349
case PROVISIONING_STARTING: {
1340
1350
ztpResponse = ZTP_NOT_STARTED; // HTTP_Client will update this
1341
1351
httpClientModeNeeded = true ; // This will start the HTTP_Client
0 commit comments