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.