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