14.2. Isporuka aplikacije¶
Radna skripta na radnom stolu i isporučeni proizvod nisu ista stvar. Kamera koja ide u upotrebu mora se izvoditi samostalno onoliko dugo koliko je proizvod instaliran – mjesecima, godinama – bez operatera za konzolom, bez priključenog IDE-a i bez stručnjaka za Python u blizini kada nešto prestane raditi. Stranice u ovom odjeljku obrađuju što se mijenja u vezi s aplikacijom kada je cilj isporučeni proizvod umjesto demonstracije na stolu.
14.2.1. Popis za provjeru prije polijetanja¶
Prije nego što kamera napusti radni stol, ovo je kratak popis stvari koje bi trebale biti istinite:
Aplikacijski kod je u izgradnji, a ne na datotečnom sustavu. Zamrznuti moduli i ROMFS slika pokrivaju kod i resurse. Pohrana na flash memoriji i SD kartici služi samo za stanje tijekom izvođenja i datoteke zapisnika. Krajnji korisnik ne može uređivati, brisati ni zamijeniti aplikaciju bez ponovnog prijenosa na flash.
Nadzorni mehanizam radi neprekidno.
machine.WDTpokreće se na vrhumain.pyi hrani se jednom po iteraciji glavne petlje. Svako zaglavljivanje dulje od konfiguriranog isteka uzrokuje hardversko ponovno postavljanje i kamera se ponovno pokreće.Aplikacija zapisuje na odredište iz kojeg se može oporaviti. Biblioteka
loggingzapisuje zapise s razinom, vremenskom oznakom i odredištem koje se na terenu može oporaviti sa SD kartice.print()je samo za vrijeme razvoja – njegovo zadano odredište je USB stdout, koji nijedan isporučeni proizvod ne čita.Flash memorija i SD tretiraju se kao da mogu zakazati. Interna flash memorija drži male zapise fiksne veličine (konfiguracija, posljednja poznata kalibracija); SD drži glomazne promjenjive datoteke (snimke slika, datoteke zapisnika); operacije na bilo kojoj od njih obavijene su rukovanjem pogreškama, a aplikacija ima definiranu zamjensku opciju kada bilo koja nije dostupna.
14.2.2. Ugrađivanje aplikacije u izgradnju¶
Dva komplementarna mehanizma stavljaju datoteke u sliku ugrađenog programa (firmware):