ESP32: починить добавление homeserver и вернуть автопрогон
This commit is contained in:
parent
a1da814030
commit
477ab3b580
@ -16,6 +16,7 @@
|
|||||||
6. Если действие завершается ошибкой, проверить, что:
|
6. Если действие завершается ошибкой, проверить, что:
|
||||||
- текст ошибки показан на экране результата;
|
- текст ошибки показан на экране результата;
|
||||||
- команда `last_error` по USB возвращает полный сохранённый payload.
|
- команда `last_error` по USB возвращает полный сохранённый payload.
|
||||||
|
7. Во временной диагностической сборке после старта устройства подождать 15 секунд и проверить, что при наличии жёлтой homeserver-кнопки устройство само делает попытку `ADD/FIX HOMESERVER`, а результат пишет в USB-диагностику.
|
||||||
|
|
||||||
- ожидаемый результат:
|
- ожидаемый результат:
|
||||||
устройство после обычной регистрации пользователя способно отдельной транзакцией добавить или исправить homeserver-сессию в `shine_users` PDA, а ошибки этого шага сохраняются в ту же USB/NVS-диагностику.
|
устройство после обычной регистрации пользователя способно отдельной транзакцией добавить или исправить homeserver-сессию в `shine_users` PDA, а ошибки этого шага сохраняются в ту же USB/NVS-диагностику.
|
||||||
|
|||||||
@ -304,6 +304,10 @@ static String gLastRegisterDiagSummary;
|
|||||||
static String gLastRegisterDiagDetails;
|
static String gLastRegisterDiagDetails;
|
||||||
static String gLastRegisterDiagTime;
|
static String gLastRegisterDiagTime;
|
||||||
static String gRegisterTriggerSource = "manual";
|
static String gRegisterTriggerSource = "manual";
|
||||||
|
static unsigned long gBootMillis = 0;
|
||||||
|
static bool gAutoHomeserverTestArmed = true;
|
||||||
|
static bool gAutoHomeserverTestStarted = false;
|
||||||
|
static unsigned long gLastAutoHomeserverAttemptMs = 0;
|
||||||
static String gSerialCommandBuffer;
|
static String gSerialCommandBuffer;
|
||||||
static String gShineSessionId;
|
static String gShineSessionId;
|
||||||
static String gShineSessionKey;
|
static String gShineSessionKey;
|
||||||
@ -2349,7 +2353,7 @@ static bool updateHomeserverSessionOnSolana(bool requireExisting, String &messag
|
|||||||
if (session.sessionType == kSessionTypeHomeserver && session.sessionName == gHomeserverValue) {
|
if (session.sessionType == kSessionTypeHomeserver && session.sessionName == gHomeserverValue) {
|
||||||
foundSession = true;
|
foundSession = true;
|
||||||
memcpy(session.sessionPubKey32, homeserverPub, 32);
|
memcpy(session.sessionPubKey32, homeserverPub, 32);
|
||||||
session.sessionVersion = 0;
|
session.sessionVersion = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2359,7 +2363,7 @@ static bool updateHomeserverSessionOnSolana(bool requireExisting, String &messag
|
|||||||
}
|
}
|
||||||
ShinePdaSessionRecord rec;
|
ShinePdaSessionRecord rec;
|
||||||
rec.sessionType = kSessionTypeHomeserver;
|
rec.sessionType = kSessionTypeHomeserver;
|
||||||
rec.sessionVersion = 0;
|
rec.sessionVersion = 1;
|
||||||
rec.sessionName = gHomeserverValue;
|
rec.sessionName = gHomeserverValue;
|
||||||
memcpy(rec.sessionPubKey32, homeserverPub, 32);
|
memcpy(rec.sessionPubKey32, homeserverPub, 32);
|
||||||
nextState.sessions.push_back(rec);
|
nextState.sessions.push_back(rec);
|
||||||
@ -5049,6 +5053,7 @@ static void handleSwipe(SwipeDirection swipe) {
|
|||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
sodium_init();
|
sodium_init();
|
||||||
|
gBootMillis = millis();
|
||||||
Wire.begin(PIN_I2C_SDA, PIN_I2C_SCL);
|
Wire.begin(PIN_I2C_SDA, PIN_I2C_SCL);
|
||||||
initPowerManagement();
|
initPowerManagement();
|
||||||
|
|
||||||
@ -5110,6 +5115,25 @@ void loop() {
|
|||||||
manageAccountPdaRefresh();
|
manageAccountPdaRefresh();
|
||||||
manageShineConnection();
|
manageShineConnection();
|
||||||
|
|
||||||
|
if (gAutoHomeserverTestArmed
|
||||||
|
&& !gTouchDown
|
||||||
|
&& millis() - gBootMillis >= 15000UL
|
||||||
|
&& millis() - gLastAutoHomeserverAttemptMs >= 45000UL
|
||||||
|
&& gShowHomeserverPdaActionButton
|
||||||
|
&& (gHomeserverPdaCanAdd || gHomeserverPdaCanFix)) {
|
||||||
|
gAutoHomeserverTestStarted = true;
|
||||||
|
gLastAutoHomeserverAttemptMs = millis();
|
||||||
|
gRegisterTriggerSource = gHomeserverPdaCanFix ? "auto-boot-fix-homeserver" : "auto-boot-add-homeserver";
|
||||||
|
String updateMessage;
|
||||||
|
Serial.println("AUTO_HOMESERVER_PDA_BEGIN");
|
||||||
|
if (!updateHomeserverSessionOnSolana(gHomeserverPdaCanFix, updateMessage)) {
|
||||||
|
gHomeserverPdaResultSuccess = false;
|
||||||
|
gHomeserverPdaResultMessage = updateMessage;
|
||||||
|
gHomeserverPdaResultDetails = "";
|
||||||
|
}
|
||||||
|
Serial.println("AUTO_HOMESERVER_PDA_END");
|
||||||
|
}
|
||||||
|
|
||||||
static unsigned long lastHomeRefreshMs = 0;
|
static unsigned long lastHomeRefreshMs = 0;
|
||||||
if (gCurrentScreen == SCREEN_HOME && !gTouchDown && millis() - lastHomeRefreshMs >= HOME_REFRESH_MS) {
|
if (gCurrentScreen == SCREEN_HOME && !gTouchDown && millis() - lastHomeRefreshMs >= HOME_REFRESH_MS) {
|
||||||
lastHomeRefreshMs = millis();
|
lastHomeRefreshMs = millis();
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
client.version=1.2.176
|
client.version=1.2.177
|
||||||
server.version=1.2.165
|
server.version=1.2.166
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user