14.5. Recapitulare¶
Ați parcurs ciclul de viață al unei camere care trece de la un script funcțional pe banc la un produs livrat:
Versiuni de firmware personalizate – mediul de dezvoltare, construirea imaginii de firmware din sursă, programarea acesteia pe o cameră și calea de depanare de la VS Code Cortex-Debug la
gdbrunnerdin linia de comandă atunci când ceva nu este în regulă pe partea de firmware.Livrarea aplicației – încorporarea codului aplicației în firmware prin module înghețate, încorporarea resurselor într-o imagine ROMFS și ordinea de căutare care determină ce copie a unui fișier încarcă efectiv runtime-ul la pornire. Împărțirea care rezultă:
boot.pypentru configurarea mediului anterior REPL,main.pyca punct de intrare al aplicației,main.pyînghețat pentru intrare și ROMFS pentru restul.Pregătirea pentru producție – biblioteca
loggingcare scrie într-o cale cunoscută, unmachine.WDTalimentat o dată la fiecare iterație a buclei principale, untry/exceptde nivel superior care transformă blocările în evenimente jurnalizate în loc de resetări, igiena sistemului de fișiere care menține operațiile cu fișiere rapide pe măsură ce aplicația acumulează înregistrări de-a lungul lunilor pe teren și – atunci când produsul o impune – protecția împotriva citirii memoriei flash.Material avansat – certificate TLS pentru camerele care trebuie să se autentifice la serviciile de rețea și să cripteze traficul cu acestea.
O cameră livrată are toate acestea pregătite: codul aplicației sale rulează din imaginea de firmware, watchdog-ul său este alimentat o dată la fiecare iterație a buclei principale, jurnalul său ajunge într-un director datat pe cardul SD și – atunci când produsul o impune – memoria sa flash a fost blocată împotriva citirii.
14.5.1. Încotro de aici¶
Producția este ultimul capitol al tutorialului. De aici, documentația se împarte în material de referință:
Referința bibliotecii este perspectiva alfabetică de tip „care este numele exact al acestui apel” asupra fiecărui modul pe care camera îl expune –
machine,logging,os,csi,image,mlși restul.Paginile de referință rapidă pentru fiecare placă acoperă specificul fiecărei camere din gama de produse OpenMV – configurațiile de pini, magistralele care pot fi montate, ID-urile plăcilor, disponibilitatea perifericelor și micile diferențe care contează atunci când aplicația trebuie să ajungă pe o anumită componentă.
Paginile de referință pentru senzori și paginile de referință pentru shield-uri acoperă senzorii de imagine individuali și shield-urile suplimentare pe care le poate purta o cameră – specificațiile pentru fiecare componentă, configurațiile de pini și notele de care aplicația are nevoie atunci când alege senzori și shield-uri pentru o configurație.
Referința limbajului MicroPython acoperă limbajul în sine – diferențele de sintaxă față de CPython, particularitățile de implementare care contează atunci când un script se află la limita dintre cele două și referința pentru assembler-ul inline pentru cazul rar în care Python este prea lent.
Tutorialul este calea de la „am o cameră nouă în mână” la „am livrat un produs”. De aici, camera este o componentă a unui sistem mai amplu de care răspunde aplicația, iar munca aparține aplicației în sine.