13.1.4. Rularea scripturilor

Butonul de pornire – săgeata verde de sub butonul de conectare, sau Ctrl+R – trimite scriptul din fila curentă a editorului către camera conectată și îl rulează. În timp ce un script rulează, butonul de pornire devine un buton de oprire care îl întrerupe. Aceste două butoane sunt bucla centrală a întregii dezvoltări pe cameră: editezi, pornești, urmărești, oprești, editezi din nou.

Două detalii ale acestei bucle contează. În primul rând, scriptul este trimis în memoria RAM a camerei și executat acolo – pornirea unui script nu scrie nimic în stocarea camerei, iar scriptul dispare după o resetare. În al doilea rând, ceea ce rulează este fila curentă a editorului, exact așa cum este afișată, salvată sau nu. Nu există un pas separat de încărcare și nicio copie învechită pe cameră care să iasă din sincronizare cu editorul.

În timp ce un script rulează, ieșirea sa print() se transmite în timp real către terminalul serial, iar fiecare cadru pe care îl capturează apare în vizualizatorul tamponului de cadre (frame buffer). Când un script ridică o excepție netratată, urmărirea stivei se afișează în terminalul serial, iar IDE-ul mută editorul la linia care a cauzat eroarea – pentru o aplicație cu mai multe fișiere, deschide mai întâi fișierul respectiv de pe unitatea camerei.

13.1.4.1. Cum faci un script permanent

Pentru a face camera să ruleze un script fără IDE – la pornire, autonom, pe teren – stochează scriptul pe cameră ca main.py. Tools → Save open script to OpenMV Cam (as main.py) scrie fila curentă a editorului pe unitatea camerei sub acest nume, oferind pe parcurs posibilitatea de a elimina comentariile și de a comprima spațiile albe – ceea ce micșorează fișierul, dar livrează o copie ilizibilă – iar Tools → Reset OpenMV Cam repornește camera astfel încât să pornească în scriptul stocat. Împreună constituie pasul de implementare: de atunci, camera rulează scriptul tău ori de câte ori are alimentare, cu sau fără IDE.

În timp ce o cameră resetată își rulează main.py-ul stocat, IDE-ul se poate conecta în continuare la ea – cu Stop Script on Connect/Disconnect activat (valoarea implicită), conectarea oprește scriptul stocat și predă controlul înapoi editorului.

Vezi și

Înghețarea scripturilor în firmware pentru ce înseamnă main.py în secvența de pornire a camerei și pentru mutarea unei aplicații finalizate complet în afara stocării editabile.

13.1.4.2. Unitatea camerei

Sistemul de fișiere din memoria flash a camerei (și cardul SD, când este introdus unul) se montează pe gazdă ca o unitate flash USB. Tools → Open OpenMV Cam Drive folder o deschide în managerul tău de fișiere. Aici copiezi modulele de bibliotecă, fișierele de model și resursele pe care scriptul le importă sau le încarcă, și de aici recuperezi imaginile și jurnalele salvate de el. Calea unității apare și în bara de stare.

Fișierele pe care le creează un script nu apar imediat pe gazdă: gazda memorează în cache sistemul de fișiere din momentul în care se montează unitatea, așa că un instantaneu salvat de scriptul în curs de rulare rămâne invizibil până când unitatea se remontează. Tools → Reset OpenMV Cam o remontează – modalitatea rapidă de a ajunge la ceea ce tocmai a scris scriptul.

O precauție: camera și gazda partajează acel sistem de fișiere, iar scrierile simultane din ambele părți îl pot corupe. Copiază fișierele când niciun script nu scrie în stocare și scoate cardul în mod corect înainte de a-l extrage.