Skip to content

Commit 6619428

Browse files
committed
Fix merge bugs - provisioningStartTime_millis
Re-implementing main #422 - 09a4b45
1 parent d43baba commit 6619428

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

Firmware/RTK_Everywhere/menuPP.ino

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,8 +1209,8 @@ void provisioningSetState(uint8_t newState)
12091209
}
12101210
}
12111211

1212-
unsigned long provisioningStartTime;
1213-
const unsigned long provisioningTimeout = 120000;
1212+
unsigned long provisioningStartTime_millis;
1213+
const unsigned long provisioningTimeout_ms = 120000;
12141214

12151215
void updateProvisioning()
12161216
{
@@ -1228,12 +1228,14 @@ void updateProvisioning()
12281228
{
12291229
default:
12301230
case PROVISIONING_OFF: {
1231-
provisioningStartTime = millis(); // Record the start time so we can timeout
1231+
provisioningStartTime_millis = millis(); // Record the start time so we can timeout
12321232
provisioningSetState(PROVISIONING_WAIT_RTC);
12331233
}
12341234
break;
12351235
case PROVISIONING_WAIT_RTC: {
1236-
if ((online.rtc) || (millis() > (provisioningStartTime + provisioningTimeout)) || (settings.requestKeyUpdate))
1236+
if ((online.rtc)
1237+
// If RTC is not online after provisioningTimeout_ms, try to provision anyway
1238+
|| (millis() > (provisioningStartTime_millis + provisioningTimeout_ms)) || (settings.requestKeyUpdate))
12371239
provisioningSetState(PROVISIONING_NOT_STARTED);
12381240
}
12391241
break;
@@ -1269,17 +1271,17 @@ void updateProvisioning()
12691271
}
12701272
else
12711273
{
1272-
// Determine days until next key expires
1274+
// RTC is online. Determine days until next key expires
12731275
int daysRemaining =
12741276
daysFromEpoch(settings.pointPerfectNextKeyStart + settings.pointPerfectNextKeyDuration + 1);
12751277

12761278
if (settings.debugPpCertificate)
12771279
systemPrintf("Days until keys expire: %d\r\n", daysRemaining);
12781280

12791281
if (daysRemaining > 28)
1280-
provisioningSetState(PROVISIONING_KEYS_REMAINING);
1282+
provisioningSetState(PROVISIONING_KEYS_REMAINING); // Don't need new keys
12811283
else
1282-
provisioningSetState(PROVISIONING_CHECK_ATTEMPT);
1284+
provisioningSetState(PROVISIONING_CHECK_ATTEMPT); // Do need new keys
12831285
}
12841286
}
12851287
break;
@@ -1313,9 +1315,9 @@ void updateProvisioning()
13131315
}
13141316
break;
13151317
case PROVISIONING_STARTING: {
1316-
ztpResponse = ZTP_NOT_STARTED; // HTTP_Client will update this
1317-
httpClientModeNeeded = true; // This will start the HTTP_Client
1318-
provisioningStartTime = millis(); // Record the start time so we can timeout
1318+
ztpResponse = ZTP_NOT_STARTED; // HTTP_Client will update this
1319+
httpClientModeNeeded = true; // This will start the HTTP_Client
1320+
provisioningStartTime_millis = millis(); // Record the start time so we can timeout
13191321
paintGettingKeys();
13201322
provisioningSetState(PROVISIONING_STARTED);
13211323
}
@@ -1329,8 +1331,8 @@ void updateProvisioning()
13291331
}
13301332
else if (ztpResponse == ZTP_SUCCESS)
13311333
{
1332-
httpClientModeNeeded = false; // Tell HTTP_Client to give up. (But it probably already has...)
1333-
recordSystemSettings();
1334+
httpClientModeNeeded = false; // Tell HTTP_Client to give up
1335+
recordSystemSettings(); // Make sure the new cert and keys are recorded
13341336
provisioningSetState(PROVISIONING_KEYS_REMAINING);
13351337
}
13361338
else if (ztpResponse == ZTP_DEACTIVATED)
@@ -1354,7 +1356,7 @@ void updateProvisioning()
13541356
"subscription. Please reference device ID: %s\r\n",
13551357
landingPageUrl, hardwareID);
13561358

1357-
httpClientModeNeeded = false; // Tell HTTP_Client to give up. (But it probably already has...)
1359+
httpClientModeNeeded = false; // Tell HTTP_Client to give up.
13581360
displayAccountExpired(5000);
13591361

13601362
provisioningSetState(PROVISIONING_KEYS_REMAINING);
@@ -1380,7 +1382,7 @@ void updateProvisioning()
13801382
"activated. Please reference device ID: %s\r\n",
13811383
landingPageUrl, hardwareID);
13821384

1383-
httpClientModeNeeded = false; // Tell HTTP_Client to give up. (But it probably already has...)
1385+
httpClientModeNeeded = false; // Tell HTTP_Client to give up.
13841386
displayNotListed(5000);
13851387

13861388
provisioningSetState(PROVISIONING_KEYS_REMAINING);
@@ -1396,7 +1398,7 @@ void updateProvisioning()
13961398
"[email protected] for more assistance. Please reference device ID: %s\r\n",
13971399
hardwareID);
13981400

1399-
httpClientModeNeeded = false; // Tell HTTP_Client to give up. (But it probably already has...)
1401+
httpClientModeNeeded = false; // Tell HTTP_Client to give up.
14001402
displayAlreadyRegistered(5000);
14011403

14021404
provisioningSetState(PROVISIONING_KEYS_REMAINING);
@@ -1405,7 +1407,7 @@ void updateProvisioning()
14051407
{
14061408
systemPrintln("updateProvisioning: ZTP_UNKNOWN_ERROR");
14071409

1408-
httpClientModeNeeded = false; // Tell HTTP_Client to give up. (But it probably already has...)
1410+
httpClientModeNeeded = false; // Tell HTTP_Client to give up.
14091411

14101412
provisioningSetState(PROVISIONING_KEYS_REMAINING);
14111413
}
@@ -1449,15 +1451,12 @@ void updateProvisioning()
14491451
else if (!settings.enablePointPerfectCorrections || !settings.autoKeyRenewal)
14501452
provisioningSetState(PROVISIONING_OFF);
14511453
// When did we last try to get keys? Attempt every 24 hours - or every 15 mins for DEVELOPER
1452-
// else if (online.rtc && (rtc.getEpoch() - settings.lastKeyAttempt > ( ENABLE_DEVELOPER ? (15 * 60) : (60 * 60
1453-
// * 24))))
1454+
// else if (millis() > (provisioningStartTime_millis + ( ENABLE_DEVELOPER ? (1000 * 60 * 15) : (1000 * 60 * 60 *
1455+
// 24))))
14541456
// When did we last try to get keys? Attempt every 24 hours
1455-
else if (online.rtc && (rtc.getEpoch() - settings.lastKeyAttempt > (60 * 60 * 24)))
1456-
{
1457-
settings.lastKeyAttempt = rtc.getEpoch(); // Mark it
1458-
recordSystemSettings(); // Record these settings to unit
1459-
provisioningSetState(PROVISIONING_STARTING);
1460-
}
1457+
else if (millis() >
1458+
(provisioningStartTime_millis + (1000 * 60 * 60 * 24))) // Don't use settings.lastKeyAttempt (#419)
1459+
provisioningSetState(PROVISIONING_CHECK_REMAINING);
14611460
}
14621461
break;
14631462
}

0 commit comments

Comments
 (0)