Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Klaudiusz-Borowiak/5efa3100662ffd498f54a14631e04862 to your computer and use it in GitHub Desktop.
Save Klaudiusz-Borowiak/5efa3100662ffd498f54a14631e04862 to your computer and use it in GitHub Desktop.
# Pendrive serwisowy
Pendrive serwisowy służy do pozyskiwania i wgrywania plikowej bazy danych aplikacji. Pendrivem serwisowym może być każde urządzenie które przedstawia się w systemie jako urządzenie pamięci masowej. Pendrive ten, aby poprawnie był rozpoznany przez aplikację jako serwisowy, musi zawierać plik o nazwie konfigurowanej przez zmienną środowiskową ```PENDRIVE_FILE_NAME ```. Tryb serwisowy wymaga podłączonego PENDRIVEa serwisowego. Pierwszą operacją trybu serwisowego jest sporządzenie kopii aktualnej bazy danych i umieszczenie jej na pendrive. Nazwa pliku skopiowanej bazy danych ma format ```{MACHINE_ID}_{UNIX_TIMESTAMP}.db``` gdzie ```MACHINE_ID``` to identyfikator maszyny modyfikowany przez zmienną środowiskową, natomiast ```UNIX_TIMESTAMP``` to czas w formacie UNIX TIMESTAMP w sekundach. Następnie aplikacja poszukuje pliku ```{MACHINE_ID}.db``` (gdzie ```MACHINE_ID``` to identyfikator maszyny). Jeśli plik na urządzeniu zostanie znaleziony, zostanie skopiowany do folderu aplikacji i po zmianie nazwy zastępuje bieżącą bazę. Aplikacja zostanie zrestartowana i powróci do ekranu początkowego z nową wersją bazy danych. Jeśli nowy plik bazy danych nie zostanie znaleziony na pendrive, aplikacja skopiuje aktualną bazę danych i urządzenie zostanie zrestartowane.
# Tryb serwisowy
Tryb serwisowy umożliwia zgranie aktualnej bazy danych wykorzystywanej przez aplikacje i wgranie/podmianę bazy na nową. Format bazy danych to SQLite.
Struktura tabel,kolumn oraz ich nazwy musi być zachowana. Przykładowy plik bazy danych znajduje się w repozytorium. Przy każdym starcie aplikacji, sprawdzana jest struktura bazy danych oraz wykonywanych jest kilka testów spójności danych. Jeśli z jakiegoś powodu baza jest nieprawidłowa, aplikacja zostanie wystartowana z poprzedniej kopii bazy danych.
Aby wejść w tryb serwisowy należy na ekranie wyboru języka nacisnąc pięciokrotnie napis ```Język/xxx/yyy``` Tak jak zaznaczono na rysunku czerwonym prostokątem:
![picture](docs/service_mode.png)
Następnie postępować z instrukcjami wyświetlonymi na ekranie:
* Włożyć urządzenie pamięci masowej do portu maszyny
* Poczekać na komunikat o końcu procesu aktualizacji
* Wyjąć urządzenie pamięci masowej
Po wyjęciu urządzenia aplikacja zostanie zrestartowana i wróci do ekranu wyboru języka (stanu początkowego)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment