mirror of https://github.com/arendst/Tasmota.git
Add better Zigbee firmware Upload Transfer GUI
This commit is contained in:
parent
c081f47dd1
commit
73e49803cc
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Зареждането започна"
|
#define D_UPLOAD_STARTED "Зареждането започна"
|
||||||
#define D_UPGRADE_STARTED "Обновяването започна"
|
#define D_UPGRADE_STARTED "Обновяването започна"
|
||||||
#define D_UPLOAD_DONE "Зареждането завърши"
|
#define D_UPLOAD_DONE "Зареждането завърши"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Не е избран файл"
|
#define D_UPLOAD_ERR_1 "Не е избран файл"
|
||||||
#define D_UPLOAD_ERR_2 "Недостатъчно свободно място"
|
#define D_UPLOAD_ERR_2 "Недостатъчно свободно място"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Nahrávání zahájeno"
|
#define D_UPLOAD_STARTED "Nahrávání zahájeno"
|
||||||
#define D_UPGRADE_STARTED "Zahájení aktualizace"
|
#define D_UPGRADE_STARTED "Zahájení aktualizace"
|
||||||
#define D_UPLOAD_DONE "Nahrávání ukončeno"
|
#define D_UPLOAD_DONE "Nahrávání ukončeno"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Soubor nebyl vybrán"
|
#define D_UPLOAD_ERR_1 "Soubor nebyl vybrán"
|
||||||
#define D_UPLOAD_ERR_2 "Málo místa"
|
#define D_UPLOAD_ERR_2 "Málo místa"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Upload gestartet"
|
#define D_UPLOAD_STARTED "Upload gestartet"
|
||||||
#define D_UPGRADE_STARTED "Update gestartet"
|
#define D_UPGRADE_STARTED "Update gestartet"
|
||||||
#define D_UPLOAD_DONE "Upload abgeschlossen"
|
#define D_UPLOAD_DONE "Upload abgeschlossen"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Keine Datei ausgewählt"
|
#define D_UPLOAD_ERR_1 "Keine Datei ausgewählt"
|
||||||
#define D_UPLOAD_ERR_2 "Ungenügend Speicherplatz"
|
#define D_UPLOAD_ERR_2 "Ungenügend Speicherplatz"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Η μεταφόρτωση ξεκίνησε"
|
#define D_UPLOAD_STARTED "Η μεταφόρτωση ξεκίνησε"
|
||||||
#define D_UPGRADE_STARTED "Η αναβάθμιση ξεκίνησε"
|
#define D_UPGRADE_STARTED "Η αναβάθμιση ξεκίνησε"
|
||||||
#define D_UPLOAD_DONE "Η μεταφόρτωση ολοκληρώθηκε"
|
#define D_UPLOAD_DONE "Η μεταφόρτωση ολοκληρώθηκε"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Δεν έχει επιλεγεί αρχείο"
|
#define D_UPLOAD_ERR_1 "Δεν έχει επιλεγεί αρχείο"
|
||||||
#define D_UPLOAD_ERR_2 "Δεν υπάρχει επαρκής χώρος"
|
#define D_UPLOAD_ERR_2 "Δεν υπάρχει επαρκής χώρος"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Upload started"
|
#define D_UPLOAD_STARTED "Upload started"
|
||||||
#define D_UPGRADE_STARTED "Upgrade started"
|
#define D_UPGRADE_STARTED "Upgrade started"
|
||||||
#define D_UPLOAD_DONE "Upload done"
|
#define D_UPLOAD_DONE "Upload done"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "No file selected"
|
#define D_UPLOAD_ERR_1 "No file selected"
|
||||||
#define D_UPLOAD_ERR_2 "Not enough space"
|
#define D_UPLOAD_ERR_2 "Not enough space"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Cargando archivo"
|
#define D_UPLOAD_STARTED "Cargando archivo"
|
||||||
#define D_UPGRADE_STARTED "Actualización iniciada"
|
#define D_UPGRADE_STARTED "Actualización iniciada"
|
||||||
#define D_UPLOAD_DONE "Carga finalizada"
|
#define D_UPLOAD_DONE "Carga finalizada"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Ningún archivo seleccionado"
|
#define D_UPLOAD_ERR_1 "Ningún archivo seleccionado"
|
||||||
#define D_UPLOAD_ERR_2 "Espacio insuficiente"
|
#define D_UPLOAD_ERR_2 "Espacio insuficiente"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Téléchargement lancé"
|
#define D_UPLOAD_STARTED "Téléchargement lancé"
|
||||||
#define D_UPGRADE_STARTED "Mise à jour lancée"
|
#define D_UPGRADE_STARTED "Mise à jour lancée"
|
||||||
#define D_UPLOAD_DONE "Téléchargement terminé"
|
#define D_UPLOAD_DONE "Téléchargement terminé"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Aucun fichier sélectionné"
|
#define D_UPLOAD_ERR_1 "Aucun fichier sélectionné"
|
||||||
#define D_UPLOAD_ERR_2 "Espace insuffisant"
|
#define D_UPLOAD_ERR_2 "Espace insuffisant"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "העלאה מתחילה"
|
#define D_UPLOAD_STARTED "העלאה מתחילה"
|
||||||
#define D_UPGRADE_STARTED "שדרוג מתחיל"
|
#define D_UPGRADE_STARTED "שדרוג מתחיל"
|
||||||
#define D_UPLOAD_DONE "העלאה הסתיימה"
|
#define D_UPLOAD_DONE "העלאה הסתיימה"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "לא נבחר קובץ"
|
#define D_UPLOAD_ERR_1 "לא נבחר קובץ"
|
||||||
#define D_UPLOAD_ERR_2 "אין מספיק מקום"
|
#define D_UPLOAD_ERR_2 "אין מספיק מקום"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Feltöltés elindítva"
|
#define D_UPLOAD_STARTED "Feltöltés elindítva"
|
||||||
#define D_UPGRADE_STARTED "Frissítés elindítva"
|
#define D_UPGRADE_STARTED "Frissítés elindítva"
|
||||||
#define D_UPLOAD_DONE "Feltöltés kész"
|
#define D_UPLOAD_DONE "Feltöltés kész"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nincs fájl kijelölve"
|
#define D_UPLOAD_ERR_1 "Nincs fájl kijelölve"
|
||||||
#define D_UPLOAD_ERR_2 "Nincs elég memória"
|
#define D_UPLOAD_ERR_2 "Nincs elég memória"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Caricamento..."
|
#define D_UPLOAD_STARTED "Caricamento..."
|
||||||
#define D_UPGRADE_STARTED "Aggiornamento..."
|
#define D_UPGRADE_STARTED "Aggiornamento..."
|
||||||
#define D_UPLOAD_DONE "Caricamento completato"
|
#define D_UPLOAD_DONE "Caricamento completato"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nessun file selezionato"
|
#define D_UPLOAD_ERR_1 "Nessun file selezionato"
|
||||||
#define D_UPLOAD_ERR_2 "Spazio insufficiente"
|
#define D_UPLOAD_ERR_2 "Spazio insufficiente"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "업로드 시작됨"
|
#define D_UPLOAD_STARTED "업로드 시작됨"
|
||||||
#define D_UPGRADE_STARTED "업그레이드 시작됨"
|
#define D_UPGRADE_STARTED "업그레이드 시작됨"
|
||||||
#define D_UPLOAD_DONE "업그레이드 완료"
|
#define D_UPLOAD_DONE "업그레이드 완료"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "파일이 선택되지 않았습니다"
|
#define D_UPLOAD_ERR_1 "파일이 선택되지 않았습니다"
|
||||||
#define D_UPLOAD_ERR_2 "용량이 충분하지 않습니다"
|
#define D_UPLOAD_ERR_2 "용량이 충분하지 않습니다"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Verzending gestart"
|
#define D_UPLOAD_STARTED "Verzending gestart"
|
||||||
#define D_UPGRADE_STARTED "Opwaarderen gestart"
|
#define D_UPGRADE_STARTED "Opwaarderen gestart"
|
||||||
#define D_UPLOAD_DONE "Opwaarderen klaar"
|
#define D_UPLOAD_DONE "Opwaarderen klaar"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Geen bestand gekozen"
|
#define D_UPLOAD_ERR_1 "Geen bestand gekozen"
|
||||||
#define D_UPLOAD_ERR_2 "Onvoldoende geheugen ruimte"
|
#define D_UPLOAD_ERR_2 "Onvoldoende geheugen ruimte"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Wgrywanie rozpoczęte"
|
#define D_UPLOAD_STARTED "Wgrywanie rozpoczęte"
|
||||||
#define D_UPGRADE_STARTED "Aktualizacja rozpoczęta"
|
#define D_UPGRADE_STARTED "Aktualizacja rozpoczęta"
|
||||||
#define D_UPLOAD_DONE "Wgrywanie zakończone"
|
#define D_UPLOAD_DONE "Wgrywanie zakończone"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nie wybrano pliku"
|
#define D_UPLOAD_ERR_1 "Nie wybrano pliku"
|
||||||
#define D_UPLOAD_ERR_2 "Niewystarczająca ilość miejsca"
|
#define D_UPLOAD_ERR_2 "Niewystarczająca ilość miejsca"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Início do envio"
|
#define D_UPLOAD_STARTED "Início do envio"
|
||||||
#define D_UPGRADE_STARTED "Atualização iniciada"
|
#define D_UPGRADE_STARTED "Atualização iniciada"
|
||||||
#define D_UPLOAD_DONE "Atualização finalizada"
|
#define D_UPLOAD_DONE "Atualização finalizada"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nenhum arquivo selecionado"
|
#define D_UPLOAD_ERR_1 "Nenhum arquivo selecionado"
|
||||||
#define D_UPLOAD_ERR_2 "Não existe memória disponível"
|
#define D_UPLOAD_ERR_2 "Não existe memória disponível"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Envio Iniciado"
|
#define D_UPLOAD_STARTED "Envio Iniciado"
|
||||||
#define D_UPGRADE_STARTED "Atualização Iniciada"
|
#define D_UPGRADE_STARTED "Atualização Iniciada"
|
||||||
#define D_UPLOAD_DONE "Atualização Finalizada"
|
#define D_UPLOAD_DONE "Atualização Finalizada"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nenhum ficheiro selecionado"
|
#define D_UPLOAD_ERR_1 "Nenhum ficheiro selecionado"
|
||||||
#define D_UPLOAD_ERR_2 "Não existe espaço disponível"
|
#define D_UPLOAD_ERR_2 "Não existe espaço disponível"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Încărcare începută"
|
#define D_UPLOAD_STARTED "Încărcare începută"
|
||||||
#define D_UPGRADE_STARTED "Actualizare începută"
|
#define D_UPGRADE_STARTED "Actualizare începută"
|
||||||
#define D_UPLOAD_DONE "Încărcare terminată"
|
#define D_UPLOAD_DONE "Încărcare terminată"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Nici un fișier selectat"
|
#define D_UPLOAD_ERR_1 "Nici un fișier selectat"
|
||||||
#define D_UPLOAD_ERR_2 "Spațiu insuficient"
|
#define D_UPLOAD_ERR_2 "Spațiu insuficient"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Загрузка началась"
|
#define D_UPLOAD_STARTED "Загрузка началась"
|
||||||
#define D_UPGRADE_STARTED "Обновление началось"
|
#define D_UPGRADE_STARTED "Обновление началось"
|
||||||
#define D_UPLOAD_DONE "Загрузка завершена"
|
#define D_UPLOAD_DONE "Загрузка завершена"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Файл не выбран"
|
#define D_UPLOAD_ERR_1 "Файл не выбран"
|
||||||
#define D_UPLOAD_ERR_2 "Недостаточно места"
|
#define D_UPLOAD_ERR_2 "Недостаточно места"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Nahrávanie spustené"
|
#define D_UPLOAD_STARTED "Nahrávanie spustené"
|
||||||
#define D_UPGRADE_STARTED "Aktualizácia spustená"
|
#define D_UPGRADE_STARTED "Aktualizácia spustená"
|
||||||
#define D_UPLOAD_DONE "Nahrávanie ukončené"
|
#define D_UPLOAD_DONE "Nahrávanie ukončené"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Súbor nebol vybraný"
|
#define D_UPLOAD_ERR_1 "Súbor nebol vybraný"
|
||||||
#define D_UPLOAD_ERR_2 "Málo miesta"
|
#define D_UPLOAD_ERR_2 "Málo miesta"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Uppladdning startad"
|
#define D_UPLOAD_STARTED "Uppladdning startad"
|
||||||
#define D_UPGRADE_STARTED "Uppgradeing startad"
|
#define D_UPGRADE_STARTED "Uppgradeing startad"
|
||||||
#define D_UPLOAD_DONE "Uppladdning klar"
|
#define D_UPLOAD_DONE "Uppladdning klar"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Ingen fil vald"
|
#define D_UPLOAD_ERR_1 "Ingen fil vald"
|
||||||
#define D_UPLOAD_ERR_2 "Inte tillräckligt med ledigt utrymme"
|
#define D_UPLOAD_ERR_2 "Inte tillräckligt med ledigt utrymme"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Yükleme başlatıldı"
|
#define D_UPLOAD_STARTED "Yükleme başlatıldı"
|
||||||
#define D_UPGRADE_STARTED "YÜkestlme başlatıldı"
|
#define D_UPGRADE_STARTED "YÜkestlme başlatıldı"
|
||||||
#define D_UPLOAD_DONE "Yükleme Tamamlandı"
|
#define D_UPLOAD_DONE "Yükleme Tamamlandı"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Dosya seçilmedi"
|
#define D_UPLOAD_ERR_1 "Dosya seçilmedi"
|
||||||
#define D_UPLOAD_ERR_2 "Boş yer yok"
|
#define D_UPLOAD_ERR_2 "Boş yer yok"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "Завантаження почалось"
|
#define D_UPLOAD_STARTED "Завантаження почалось"
|
||||||
#define D_UPGRADE_STARTED "Оновлення почалось"
|
#define D_UPGRADE_STARTED "Оновлення почалось"
|
||||||
#define D_UPLOAD_DONE "Завантаження завершено"
|
#define D_UPLOAD_DONE "Завантаження завершено"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "Файл не вибраний"
|
#define D_UPLOAD_ERR_1 "Файл не вибраний"
|
||||||
#define D_UPLOAD_ERR_2 "Недостатньо місця"
|
#define D_UPLOAD_ERR_2 "Недостатньо місця"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "开始上传"
|
#define D_UPLOAD_STARTED "开始上传"
|
||||||
#define D_UPGRADE_STARTED "开始升级"
|
#define D_UPGRADE_STARTED "开始升级"
|
||||||
#define D_UPLOAD_DONE "上传完成"
|
#define D_UPLOAD_DONE "上传完成"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "没有选择任何文件"
|
#define D_UPLOAD_ERR_1 "没有选择任何文件"
|
||||||
#define D_UPLOAD_ERR_2 "没有足够空间"
|
#define D_UPLOAD_ERR_2 "没有足够空间"
|
||||||
|
|
|
@ -351,6 +351,7 @@
|
||||||
#define D_UPLOAD_STARTED "已開始上傳"
|
#define D_UPLOAD_STARTED "已開始上傳"
|
||||||
#define D_UPGRADE_STARTED "已開始升級"
|
#define D_UPGRADE_STARTED "已開始升級"
|
||||||
#define D_UPLOAD_DONE "已上傳完成"
|
#define D_UPLOAD_DONE "已上傳完成"
|
||||||
|
#define D_UPLOAD_TRANSFER "Upload transfer"
|
||||||
#define D_TRANSFER_STARTED "Transfer started"
|
#define D_TRANSFER_STARTED "Transfer started"
|
||||||
#define D_UPLOAD_ERR_1 "沒選擇任何檔案"
|
#define D_UPLOAD_ERR_1 "沒選擇任何檔案"
|
||||||
#define D_UPLOAD_ERR_2 "可用空間不足"
|
#define D_UPLOAD_ERR_2 "可用空間不足"
|
||||||
|
|
|
@ -869,6 +869,7 @@ void StartWebserver(int type, IPAddress ipweb)
|
||||||
Webserver->on("/u1", HandleUpgradeFirmwareStart); // OTA
|
Webserver->on("/u1", HandleUpgradeFirmwareStart); // OTA
|
||||||
Webserver->on("/u2", HTTP_POST, HandleUploadDone, HandleUploadLoop);
|
Webserver->on("/u2", HTTP_POST, HandleUploadDone, HandleUploadLoop);
|
||||||
Webserver->on("/u2", HTTP_OPTIONS, HandlePreflightRequest);
|
Webserver->on("/u2", HTTP_OPTIONS, HandlePreflightRequest);
|
||||||
|
Webserver->on("/u3", HandleUploadDone);
|
||||||
Webserver->on("/cs", HTTP_GET, HandleConsole);
|
Webserver->on("/cs", HTTP_GET, HandleConsole);
|
||||||
Webserver->on("/cs", HTTP_OPTIONS, HandlePreflightRequest);
|
Webserver->on("/cs", HTTP_OPTIONS, HandlePreflightRequest);
|
||||||
Webserver->on("/cm", HandleHttpCommand);
|
Webserver->on("/cm", HandleHttpCommand);
|
||||||
|
@ -2624,6 +2625,16 @@ void HandleUploadDone(void)
|
||||||
{
|
{
|
||||||
if (!HttpCheckPriviledgedAccess()) { return; }
|
if (!HttpCheckPriviledgedAccess()) { return; }
|
||||||
|
|
||||||
|
#if defined(USE_ZIGBEE) && defined(USE_ZIGBEE_EZSP)
|
||||||
|
if (!Web.upload_error) {
|
||||||
|
// GUI xmodem
|
||||||
|
if (ZigbeeUploadOtaReady()) {
|
||||||
|
HandleZigbeeXfer();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_HTTP D_UPLOAD_DONE));
|
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_HTTP D_UPLOAD_DONE));
|
||||||
|
|
||||||
char error[100];
|
char error[100];
|
||||||
|
@ -2639,8 +2650,8 @@ void HandleUploadDone(void)
|
||||||
if (!Web.upload_error) {
|
if (!Web.upload_error) {
|
||||||
uint32_t javascript_settimeout = HTTP_OTA_RESTART_RECONNECT_TIME;
|
uint32_t javascript_settimeout = HTTP_OTA_RESTART_RECONNECT_TIME;
|
||||||
#if defined(USE_ZIGBEE) && defined(USE_ZIGBEE_EZSP)
|
#if defined(USE_ZIGBEE) && defined(USE_ZIGBEE_EZSP)
|
||||||
if (ZigbeeUploadOtaReady()) {
|
if (ZigbeeUploadFinish()) {
|
||||||
javascript_settimeout = 30000; // Refesh main web ui after transfer upgrade
|
javascript_settimeout = 10000; // Refesh main web ui after transfer upgrade
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
WSContentSend_P(HTTP_SCRIPT_RELOAD_TIME, javascript_settimeout); // Refesh main web ui after OTA upgrade
|
WSContentSend_P(HTTP_SCRIPT_RELOAD_TIME, javascript_settimeout); // Refesh main web ui after OTA upgrade
|
||||||
|
@ -2665,15 +2676,9 @@ void HandleUploadDone(void)
|
||||||
} else {
|
} else {
|
||||||
WSContentSend_P(PSTR("%06x'>" D_SUCCESSFUL "</font></b><br>"), WebColor(COL_TEXT_SUCCESS));
|
WSContentSend_P(PSTR("%06x'>" D_SUCCESSFUL "</font></b><br>"), WebColor(COL_TEXT_SUCCESS));
|
||||||
restart_flag = 2; // Always restart to re-enable disabled features during update
|
restart_flag = 2; // Always restart to re-enable disabled features during update
|
||||||
#if defined(USE_ZIGBEE) && defined(USE_ZIGBEE_EZSP)
|
|
||||||
if (ZigbeeUploadOtaReady()) {
|
|
||||||
WSContentSend_P(PSTR("<br><div style='text-align:center;'>" D_TRANSFER_STARTED " ...</div><br>"));
|
|
||||||
restart_flag = 0; // Hold restart as firmware still needs to be written to MCU EFR32
|
|
||||||
}
|
|
||||||
#endif // USE_ZIGBEE and USE_ZIGBEE_EZSP
|
|
||||||
#ifdef USE_TASMOTA_CLIENT
|
#ifdef USE_TASMOTA_CLIENT
|
||||||
if (TasmotaClient_GetFlagFlashing()) {
|
if (TasmotaClient_GetFlagFlashing()) {
|
||||||
WSContentSend_P(PSTR("<br><div style='text-align:center;'>" D_TRANSFER_STARTED " ...</div><br>"));
|
WSContentSend_P(PSTR("<br><div style='text-align:center;'><b>" D_TRANSFER_STARTED " ...</b></div>"));
|
||||||
restart_flag = 0; // Hold restart as code still needs to be transferred to Atmega
|
restart_flag = 0; // Hold restart as code still needs to be transferred to Atmega
|
||||||
}
|
}
|
||||||
#endif // USE_TASMOTA_CLIENT
|
#endif // USE_TASMOTA_CLIENT
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
enum ZbUploadSteps { ZBU_IDLE, ZBU_INIT,
|
enum ZbUploadSteps { ZBU_IDLE, ZBU_INIT,
|
||||||
ZBU_SOFTWARE_RESET, ZBU_SOFTWARE_SEND, ZBU_HARDWARE_RESET, ZBU_PROMPT,
|
ZBU_SOFTWARE_RESET, ZBU_SOFTWARE_SEND, ZBU_HARDWARE_RESET, ZBU_PROMPT,
|
||||||
ZBU_SYNC, ZBU_UPLOAD, ZBU_EOT, ZBU_COMPLETE, ZBU_DONE, ZBU_FINISH };
|
ZBU_SYNC, ZBU_UPLOAD, ZBU_EOT, ZBU_COMPLETE, ZBU_DONE, ZBU_ERROR, ZBU_FINISH };
|
||||||
|
|
||||||
const uint8_t PIN_ZIGBEE_BOOTLOADER = 5;
|
const uint8_t PIN_ZIGBEE_BOOTLOADER = 5;
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ struct ZBUPLOAD {
|
||||||
char *buffer;
|
char *buffer;
|
||||||
uint8_t ota_step = ZBU_IDLE;
|
uint8_t ota_step = ZBU_IDLE;
|
||||||
uint8_t bootloader = 0;
|
uint8_t bootloader = 0;
|
||||||
|
uint8_t state = ZBU_IDLE;
|
||||||
} ZbUpload;
|
} ZbUpload;
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
|
@ -282,7 +283,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
ZbUpload.ota_step = ZBU_HARDWARE_RESET;
|
ZbUpload.ota_step = ZBU_HARDWARE_RESET;
|
||||||
} else {
|
} else {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader hardware reset timeout"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader hardware reset timeout"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -299,7 +300,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
case ZBU_PROMPT: { // *** Wait for prompt and select option upload ebl
|
case ZBU_PROMPT: { // *** Wait for prompt and select option upload ebl
|
||||||
if (millis() > XModem.timeout) {
|
if (millis() > XModem.timeout) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader timeout"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader timeout"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif // ZIGBEE_BOOTLOADER_SOFTWARE_RESET_FIRST
|
#endif // ZIGBEE_BOOTLOADER_SOFTWARE_RESET_FIRST
|
||||||
|
@ -333,7 +334,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
case ZBU_SYNC: { // *** Handle file upload using XModem - sync
|
case ZBU_SYNC: { // *** Handle file upload using XModem - sync
|
||||||
if (millis() > XModem.timeout) {
|
if (millis() > XModem.timeout) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: SYNC timeout"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: SYNC timeout"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Wait for either C or NACK as a sync packet. Determines protocol details, checksum algorithm.
|
// Wait for either C or NACK as a sync packet. Determines protocol details, checksum algorithm.
|
||||||
|
@ -354,7 +355,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
if (ZigbeeUploadAvailable()) {
|
if (ZigbeeUploadAvailable()) {
|
||||||
if (!XModemSendPacket(XModem.packetNo)) {
|
if (!XModemSendPacket(XModem.packetNo)) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Packet send failed"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Packet send failed"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
XModem.packetNo++;
|
XModem.packetNo++;
|
||||||
|
@ -376,7 +377,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
// to occur without timing out on the response just before the EOT is sent.
|
// to occur without timing out on the response just before the EOT is sent.
|
||||||
if (millis() > XModem.timeout) {
|
if (millis() > XModem.timeout) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: EOT ACK timeout"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: EOT ACK timeout"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (ZigbeeSerial->available()) {
|
if (ZigbeeSerial->available()) {
|
||||||
|
@ -386,7 +387,6 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
XModem.timeout = millis() + (30 * 1000); // Allow 30 seconds to receive EBL prompt
|
XModem.timeout = millis() + (30 * 1000); // Allow 30 seconds to receive EBL prompt
|
||||||
ZbUpload.byte_counter = 0;
|
ZbUpload.byte_counter = 0;
|
||||||
ZbUpload.ota_step = ZBU_COMPLETE;
|
ZbUpload.ota_step = ZBU_COMPLETE;
|
||||||
// ZbUpload.ota_step = ZBU_DONE; // Skip prompt for now
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -394,7 +394,7 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
case ZBU_COMPLETE: { // *** Wait for Serial upload complete EBL prompt
|
case ZBU_COMPLETE: { // *** Wait for Serial upload complete EBL prompt
|
||||||
if (millis() > XModem.timeout) {
|
if (millis() > XModem.timeout) {
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader timeout"));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: Bootloader timeout"));
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_ERROR;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
// After an image successfully uploads, the XModem transaction completes and the bootloader displays
|
// After an image successfully uploads, the XModem transaction completes and the bootloader displays
|
||||||
|
@ -406,18 +406,21 @@ bool ZigbeeUploadXmodem(void) {
|
||||||
// 3. ebl info
|
// 3. ebl info
|
||||||
// BL >
|
// BL >
|
||||||
if (ZigbeeUploadBootloaderPrompt()) {
|
if (ZigbeeUploadBootloaderPrompt()) {
|
||||||
|
ZbUpload.state = ZBU_COMPLETE;
|
||||||
ZbUpload.ota_step = ZBU_DONE;
|
ZbUpload.ota_step = ZBU_DONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case ZBU_ERROR:
|
||||||
|
ZbUpload.state = ZBU_ERROR;
|
||||||
case ZBU_DONE: { // *** Clean up and restart to disable bootloader and use new firmware
|
case ZBU_DONE: { // *** Clean up and restart to disable bootloader and use new firmware
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: " D_RESTARTING));
|
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("XMD: " D_RESTARTING));
|
||||||
ZigbeeUploadSetBootloader(1); // Disable bootloader and reset MCU - should happen at restart
|
ZigbeeUploadSetBootloader(1); // Disable bootloader and reset MCU - should happen at restart
|
||||||
if (1 == ssleep) {
|
if (1 == ssleep) {
|
||||||
ssleep = Settings.sleep; // Restore loop sleep
|
ssleep = Settings.sleep; // Restore loop sleep
|
||||||
}
|
}
|
||||||
restart_flag = 2; // Restart to disable bootloader and use new firmware
|
// restart_flag = 2; // Restart to disable bootloader and use new firmware
|
||||||
ZbUpload.ota_step = ZBU_FINISH; // Never return to zero without a restart to get a sane Zigbee environment
|
ZbUpload.ota_step = ZBU_FINISH; // Never return to zero without a restart to get a sane Zigbee environment
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -437,6 +440,10 @@ bool ZigbeeUploadOtaReady(void) {
|
||||||
return (ZBU_INIT == ZbUpload.ota_step);
|
return (ZBU_INIT == ZbUpload.ota_step);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ZigbeeUploadFinish(void) {
|
||||||
|
return (ZBU_FINISH == ZbUpload.ota_step);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t ZigbeeUploadInit(void) {
|
uint8_t ZigbeeUploadInit(void) {
|
||||||
if (!PinUsed(GPIO_ZIGBEE_RST) && (ZigbeeSerial == nullptr)) { return 1; } // Wrong pin configuration - No file selected
|
if (!PinUsed(GPIO_ZIGBEE_RST) && (ZigbeeSerial == nullptr)) { return 1; } // Wrong pin configuration - No file selected
|
||||||
|
|
||||||
|
@ -444,6 +451,7 @@ uint8_t ZigbeeUploadInit(void) {
|
||||||
ZbUpload.sector_cursor = 0;
|
ZbUpload.sector_cursor = 0;
|
||||||
ZbUpload.ota_size = 0;
|
ZbUpload.ota_size = 0;
|
||||||
ZbUpload.ota_step = ZBU_IDLE;
|
ZbUpload.ota_step = ZBU_IDLE;
|
||||||
|
ZbUpload.state = ZBU_IDLE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -468,8 +476,59 @@ bool ZigbeeUploadWriteBuffer(uint8_t *buf, size_t size) {
|
||||||
|
|
||||||
void ZigbeeUploadDone(void) {
|
void ZigbeeUploadDone(void) {
|
||||||
ZbUpload.ota_step = ZBU_INIT;
|
ZbUpload.ota_step = ZBU_INIT;
|
||||||
|
ZbUpload.state = ZBU_UPLOAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // USE_ZIGBEE_EZSP
|
#ifdef USE_WEBSERVER
|
||||||
|
|
||||||
#endif // USE_ZIGBEE
|
#define WEB_HANDLE_ZIGBEE_XFER "zx"
|
||||||
|
|
||||||
|
const char HTTP_SCRIPT_XFER_STATE[] PROGMEM =
|
||||||
|
"function z9(){"
|
||||||
|
"if(x!=null){x.abort();}" // Abort if no response within 2 seconds (happens on restart 1)
|
||||||
|
"x=new XMLHttpRequest();"
|
||||||
|
"x.onreadystatechange=function(){"
|
||||||
|
"if(x.readyState==4&&x.status==200){"
|
||||||
|
"var s=x.responseText;"
|
||||||
|
"if(s!=7){" // ZBU_UPLOAD
|
||||||
|
"location.href='/u3';"
|
||||||
|
"}"
|
||||||
|
"}"
|
||||||
|
"};"
|
||||||
|
"x.open('GET','" WEB_HANDLE_ZIGBEE_XFER "?m=1',true);" // ?m related to Webserver->hasArg("m")
|
||||||
|
"x.send();"
|
||||||
|
"if(pc==1){"
|
||||||
|
"lt=setTimeout(z9,950);" // Poll every 0.95 second
|
||||||
|
"}"
|
||||||
|
"}"
|
||||||
|
"pc=1;"
|
||||||
|
"wl(z9);";
|
||||||
|
|
||||||
|
void HandleZigbeeXfer(void) {
|
||||||
|
if (!HttpCheckPriviledgedAccess()) { return; }
|
||||||
|
|
||||||
|
if (Webserver->hasArg("m")) { // Status refresh requested
|
||||||
|
WSContentBegin(200, CT_PLAIN);
|
||||||
|
WSContentSend_P(PSTR("%d"), ZbUpload.state);
|
||||||
|
WSContentEnd();
|
||||||
|
if (ZBU_ERROR == ZbUpload.state) {
|
||||||
|
Web.upload_error = 7; // Upload aborted (failed)
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, PSTR(D_UPLOAD_TRANSFER));
|
||||||
|
|
||||||
|
WSContentStart_P(S_INFORMATION);
|
||||||
|
WSContentSend_P(HTTP_SCRIPT_XFER_STATE);
|
||||||
|
WSContentSendStyle();
|
||||||
|
WSContentSend_P(PSTR("<div style='text-align:center;'><b>" D_UPLOAD_TRANSFER "...</b></div>"));
|
||||||
|
WSContentSpaceButton(BUTTON_MAIN);
|
||||||
|
WSContentStop();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // USE_WEBSERVER
|
||||||
|
|
||||||
|
#endif // USE_ZIGBEE_EZSP
|
||||||
|
|
||||||
|
#endif // USE_ZIGBEE
|
||||||
|
|
|
@ -1482,6 +1482,12 @@ bool Xdrv23(uint8_t function)
|
||||||
case FUNC_WEB_SENSOR:
|
case FUNC_WEB_SENSOR:
|
||||||
ZigbeeShow(false);
|
ZigbeeShow(false);
|
||||||
break;
|
break;
|
||||||
|
#ifdef USE_ZIGBEE_EZSP
|
||||||
|
// GUI xmodem
|
||||||
|
case FUNC_WEB_ADD_HANDLER:
|
||||||
|
Webserver->on("/" WEB_HANDLE_ZIGBEE_XFER, HandleZigbeeXfer);
|
||||||
|
break;
|
||||||
|
#endif // USE_ZIGBEE_EZSP
|
||||||
#endif // USE_WEBSERVER
|
#endif // USE_WEBSERVER
|
||||||
case FUNC_PRE_INIT:
|
case FUNC_PRE_INIT:
|
||||||
ZigbeeInit();
|
ZigbeeInit();
|
||||||
|
|
Loading…
Reference in New Issue