14.5. Sažetak

Prošli ste kroz životni ciklus kamere koja od radne skripte na stolu prelazi u isporučeni proizvod:

  • Prilagođene verzije ugrađenog programa (firmware) – razvojno okruženje, izgradnja slike ugrađenog programa iz izvornog koda, njezino programiranje na kameru te put otklanjanja pogrešaka od VS Code Cortex-Debug do naredbenog retka gdbrunner kada nešto nije u redu na strani ugrađenog programa.

  • Isporuka aplikacije – ugrađivanje aplikacijskog koda u firmware putem zamrznutih modula, ugrađivanje resursa u ROMFS sliku te redoslijed traženja koji određuje koju kopiju datoteke izvođenje zapravo učitava pri pokretanju. Podjela koja iz toga proizlazi: boot.py za postavljanje okruženja prije REPL-a, main.py kao ulazna točka aplikacije, zamrznuti main.py za ulaz i ROMFS za sve ostalo.

  • Učvršćivanje za produkciju – biblioteka logging koja piše na poznatu putanju, machine.WDT koji se hrani jednom po iteraciji glavne petlje, try / except na najvišoj razini koji rušenja pretvara u zabilježene događaje umjesto resetiranja, higijena datotečnog sustava koja održava operacije s datotekama brzima dok aplikacija mjesecima na terenu gomila zapise i – kada to proizvod zahtijeva – zaštita od čitanja flash memorije.

  • Napredni materijal – TLS certifikati za kamere koje se moraju autenticirati mrežnim servisima i šifrirati promet s njima.

Isporučena kamera ima sve to na mjestu: njezin aplikacijski kod izvodi se iz slike ugrađenog programa, njezin se watchdog hrani jednom po iteraciji glavne petlje, njezin zapisnik završava u datiranom direktoriju na SD kartici i – kada to proizvod zahtijeva – njezina je flash memorija zaključana protiv čitanja.

14.5.1. Kamo dalje odavde

Produkcija je posljednje poglavlje vodiča. Odavde se dokumentacija dijeli na referentni materijal:

  • Referenca biblioteke abecedni je prikaz „koje je točno ime ovog poziva” za svaki modul koji kamera izlaže – machine, logging, os, csi, image, ml i ostalo.

  • Stranice s brzim referencama po ploči pokrivaju specifičnosti svake kamere u OpenMV liniji proizvoda – rasporede pinova, sabirnice koje se mogu montirati, ID-eve ploča, dostupnost periferija i male razlike koje su važne kada aplikacija mora pristati na određeni dio.

  • Referentne stranice senzora i referentne stranice štitova pokrivaju pojedinačne slikovne senzore i dodatne štitove koje kamera može nositi – specifikacije po dijelu, rasporede pinova i napomene koje aplikacija treba pri odabiru senzora i štitova za izgradnju.

  • Referenca jezika MicroPython pokriva sam jezik – sintaksne razlike u odnosu na CPython, implementacijske specifičnosti koje su važne kada skripta zahvaća oba te referencu za ugrađeni asembler za rijetke slučajeve kada je Python prespor.

Vodič je put od „imam novu kameru u ruci” do „isporučio sam proizvod”. Odavde je kamera jedan dio većeg sustava za koji je odgovorna aplikacija, a posao je aplikacijin vlastiti.