14.5. Afronding¶
Je hebt de levenscyclus doorlopen van een cam die van werkend testbankscript naar uitgeleverd product gaat:
Aangepaste firmwarebuilds – de ontwikkelomgeving, het bouwen van het firmware-image vanuit de broncode, het flashen ervan op een cam, en het debugpad van VS Code Cortex-Debug naar de opdrachtregel-
gdbrunnerwanneer er iets mis is aan de firmwarezijde.De applicatie uitleveren – het inbakken van de applicatiecode in de firmware via frozen modules, het inbakken van assets in een ROMFS-image, en de opzoekvolgorde die bepaalt welke kopie van een bestand de runtime daadwerkelijk laadt bij het opstarten. De splitsing die daaruit volgt:
boot.pyvoor omgevingsinstellingen vóór de REPL,main.pyals startpunt van de applicatie, frozenmain.pyvoor het startpunt en ROMFS voor al het overige.Verharden voor productie – de
logging-bibliotheek die naar een bekend pad schrijft, eenmachine.WDTdie één keer per hoofdluscyclus wordt gevoed, eentry/exceptop het hoogste niveau die crashes omzet in gelogde gebeurtenissen in plaats van resets, bestandssysteemhygiëne die bestandsbewerkingen snel houdt terwijl de applicatie maandenlang in het veld records opbouwt, en – wanneer het product dat vereist – uitleesbeveiliging van het flashgeheugen.Gevorderd materiaal – TLS-certificaten voor cams die zich moeten authenticeren bij netwerkdiensten en verkeer ermee moeten versleutelen.
Een uitgeleverde cam heeft dit alles op zijn plaats: zijn applicatiecode draait vanuit het firmware-image, zijn watchdog wordt één keer per hoofdluscyclus gevoed, zijn log belandt in een gedateerde map op de SD-kaart, en – wanneer het product dat vereist – is zijn flashgeheugen vergrendeld tegen uitlezen.
14.5.1. Waar je hierna naartoe kunt¶
Productie is het laatste hoofdstuk van de tutorial. Vanaf hier splitst de documentatie zich op in referentiemateriaal:
De bibliotheekreferentie is de alfabetische “wat is de exacte naam van deze aanroep”-weergave van elke module die de cam blootstelt –
machine,logging,os,csi,image,ml, en de rest.De quickref-pagina’s per board behandelen de specifieke kenmerken van elke cam in de OpenMV-productlijn – pinouts, aankoppelbare bussen, board-ID’s, beschikbaarheid van randapparaten, en de kleine verschillen die ertoe doen wanneer de applicatie op een specifiek onderdeel moet landen.
De sensorreferentiepagina’s en shieldreferentiepagina’s behandelen de afzonderlijke beeldsensoren en uitbreidingsshields die een cam kan dragen – de specificaties per onderdeel, pinouts en aandachtspunten die de applicatie nodig heeft bij het kiezen van sensoren en shields voor een build.
De MicroPython-taalreferentie behandelt de taal zelf – syntaxisverschillen met CPython, de implementatiespecifieke details die ertoe doen wanneer een script de twee overspant, en de inline-assembler-referentie voor het zeldzame geval waarin Python te langzaam is.
De tutorial is het pad van “ik heb een nieuwe cam in handen” naar “ik heb een product uitgeleverd.” Vanaf hier is de cam één onderdeel van een groter systeem waar de applicatie verantwoordelijk voor is, en is het werk dat van de applicatie zelf.