13.1.4. Executar scripts

O botão de início – a seta verde abaixo do botão de ligação, ou Ctrl+R – envia o script no separador do editor atual para a câmara ligada e executa-o. Enquanto um script está a ser executado, o botão de início transforma-se num botão de paragem que o interrompe. Esses dois botões são o ciclo central de todo o desenvolvimento na câmara: editar, iniciar, observar, parar, editar novamente.

Dois detalhes desse ciclo são importantes. Em primeiro lugar, o script é enviado para a RAM da câmara e executado aí – iniciar um script não escreve nada no armazenamento da câmara, e o script desaparece após um reinício. Em segundo lugar, o que é executado é o separador do editor atual, exatamente como apresentado, guardado ou não. Não existe um passo de carregamento separado nem uma cópia desatualizada na câmara que fique dessincronizada com o editor.

Enquanto um script está a ser executado, a saída de print() é transmitida em fluxo para o terminal série e cada fotograma capturado aparece no visualizador do buffer de fotograma. Quando um script gera uma exceção não tratada, o rastreio é impresso no terminal série e o IDE salta no editor para a linha com o problema – para uma aplicação com múltiplos ficheiros, abre primeiro o ficheiro indicado a partir da unidade de armazenamento da câmara.

13.1.4.1. Tornar um script permanente

Para que a câmara execute um script sem o IDE – no arranque, de forma autónoma, em campo – guarde o script na câmara com o nome main.py. Ferramentas → Guardar script aberto na OpenMV Cam (como main.py) escreve o separador do editor atual na unidade de armazenamento da câmara com esse nome, oferecendo a opção de remover comentários e comprimir espaços em branco – o que reduz o tamanho do ficheiro mas envia uma cópia ilegível – e Ferramentas → Reiniciar OpenMV Cam reinicia a câmara para que arranque com o script guardado. Em conjunto, constituem o passo de implementação: a partir daí, a câmara executa o script sempre que tiver alimentação, com ou sem IDE.

Enquanto uma câmara reiniciada está a executar o seu main.py guardado, o IDE ainda se pode ligar a ela – com a opção Parar Script na Ligação/Desligação ativada (a predefinição), a ligação interrompe o script guardado e devolve o controlo ao editor.

Veja também

Incorporar scripts no firmware para o que main.py significa na sequência de arranque da câmara, e para mover uma aplicação concluída para fora do armazenamento editável.

13.1.4.2. A unidade de armazenamento da câmara

O sistema de ficheiros flash da câmara (e o cartão SD, quando inserido) é montado no anfitrião como uma unidade flash USB. Ferramentas → Abrir pasta da unidade OpenMV Cam abre-a no gestor de ficheiros. É aqui que se copiam módulos de biblioteca, ficheiros de modelos e recursos que o script importa ou carrega, e onde se recuperam as imagens e registos que ele guardou. O caminho da unidade também aparece na barra de estado.

Os ficheiros criados por um script não aparecem no anfitrião de imediato: o anfitrião guarda em cache o sistema de ficheiros a partir do momento em que a unidade é montada, por isso uma captura de imagem guardada pelo script em execução permanece invisível até que a unidade seja remontada. Ferramentas → Reiniciar OpenMV Cam remonta-a – a forma rápida de aceder ao que o script acabou de escrever.

Uma precaução: a câmara e o anfitrião partilham esse sistema de ficheiros, e escritas simultâneas de ambos os lados podem corrompê-lo. Copie ficheiros enquanto nenhum script está a escrever no armazenamento, e ejete corretamente antes de retirar o cartão.