13.1.4. Uruchamianie skryptów

Przycisk start – zielona strzałka pod przyciskiem połączenia lub Ctrl+R – wysyła skrypt z bieżącej karty edytora do podłączonej kamery i go uruchamia. Podczas działania skryptu przycisk start zmienia się w przycisk stop, który go zatrzymuje. Te dwa przyciski stanowią rdzeń pętli całej pracy nad kamerą: edytuj, uruchom, obserwuj, zatrzymaj, edytuj ponownie.

Dwa szczegóły tej pętli mają znaczenie. Po pierwsze, skrypt jest wysyłany do pamięci RAM kamery i tam wykonywany – uruchomienie skryptu niczego nie zapisuje w pamięci masowej kamery, a po resecie skrypt znika. Po drugie, uruchamiana jest bieżąca karta edytora, dokładnie w takiej postaci, w jakiej ją widzisz, zapisana lub nie. Nie ma osobnego kroku przesyłania ani nieaktualnej kopii na kamerze, która mogłaby się rozsynchronizować z twoim edytorem.

Podczas działania skryptu jego wyjście z print() jest na bieżąco przesyłane do terminala szeregowego, a każda przechwycona przez niego ramka pojawia się w podglądzie bufora ramki. Gdy skrypt zgłosi nieobsłużony wyjątek, ślad stosu zostaje wypisany w terminalu szeregowym, a IDE przeskakuje w edytorze do wadliwej linii – w przypadku aplikacji wieloplikowej najpierw otwiera wskazany plik z dysku kamery.

13.1.4.1. Trwałe zapisanie skryptu

Aby kamera uruchamiała skrypt bez IDE – po włączeniu zasilania, samodzielnie, w terenie – zapisz skrypt na kamerze jako main.py. Tools → Save open script to OpenMV Cam (as main.py) zapisuje bieżącą kartę edytora na dysku kamery pod tą nazwą, proponując przy okazji usunięcie komentarzy i skompresowanie białych znaków – co zmniejsza plik, ale przesyła nieczytelną kopię – a Tools → Reset OpenMV Cam restartuje kamerę, tak aby uruchomiła się z zapisanego skryptu. Razem stanowią krok wdrożenia: od tej chwili kamera uruchamia twój skrypt zawsze, gdy ma zasilanie, niezależnie od tego, czy IDE jest obecne.

Gdy zresetowana kamera uruchamia swój zapisany plik main.py, IDE nadal może się z nią połączyć – przy włączonej opcji Stop Script on Connect/Disconnect (domyślnie) połączenie zatrzymuje zapisany skrypt i przekazuje kontrolę z powrotem do edytora.

Zobacz także

Zamrażanie skryptów w oprogramowaniu układowym – o tym, co oznacza main.py w sekwencji rozruchowej kamery, oraz o całkowitym przeniesieniu gotowej aplikacji poza edytowalną pamięć masową.

13.1.4.2. Dysk kamery

System plików pamięci flash kamery (oraz karta SD, gdy jest włożona) montuje się na hoście jako dysk flash USB. Tools → Open OpenMV Cam Drive folder otwiera go w twoim menedżerze plików. To tutaj kopiujesz moduły bibliotek, pliki modeli i zasoby, które skrypt importuje lub wczytuje, i stąd odzyskujesz zapisane przez niego obrazy oraz logi. Ścieżka dysku pojawia się również na pasku stanu.

Pliki tworzone przez skrypt nie pojawiają się natychmiast na hoście: host buforuje system plików od momentu zamontowania dysku, więc zrzut obrazu zapisany przez działający skrypt pozostaje niewidoczny, dopóki dysk nie zostanie ponownie zamontowany. Tools → Reset OpenMV Cam montuje go ponownie – to szybki sposób na dostęp do tego, co skrypt właśnie zapisał.

Jedna uwaga: kamera i host współdzielą ten system plików, a jednoczesne zapisy z obu stron mogą go uszkodzić. Kopiuj pliki, gdy żaden skrypt nie zapisuje do pamięci masowej, i wysuwaj kartę poprawnie przed jej wyjęciem.