v4.0.1¶
A v4.0.1 é uma modernização de raiz que rebasa o OpenMV IDE a partir da sua base histórica Qt Creator 4.0.2 para o Qt Creator 10.0.1. A pilha completa de plugins OpenMV (visualizador de buffer de fotograma, série/protocolo, terminal, histograma, editores de limiares e pontos-chave, ferramentas de vídeo e invólucros de gravação de firmware) é reaplicada sobre a nova base, juntamente com um par de temas polidos Flat Light/Flat Dark, realce de sintaxe Python com consciência OpenMV, um diálogo unificado de carregamento de firmware, e suporte alargado de deteção de dispositivos ARM64 no Linux e macOS. A mudança de base do Qt Creator é uma modernização interna de grande escala, mas não quebra projetos de utilizador; alguns comportamentos predefinidos e definições de placa foram alterados (consulte Alterações com impacto).
Destaques¶
Rebase para Qt Creator 10.0.1. O IDE migra do Qt Creator 4.0.2 para o 10.0.1: o Qt Creator upstream é reduzido ao mínimo de compilação (98b95fd3b) e o plugin OpenMV completo é readicionado sobre a nova base (0e8047372).
Temas Flat Light e Flat Dark. Um par de temas claro/escuro polidos é fornecido com estilos de realce de sintaxe do editor personalizados; o seletor de Tema é novamente exposto nas definições Gerais, restrito apenas a esses dois, e o tema predefinido é agora
flat-dark(21348924b, 13c3849e8).Terminal série Raw-REPL. O terminal agora executa, interrompe, recarrega e cola scripts através de uma máquina de estados Raw-REPL MicroPython adequada (CTRL-A/CTRL-D), tratando de forma fiável scripts maiores (a7241079c).
Edição Python com consciência OpenMV. Módulos, classes, funções, métodos e argumentos OpenMV são realçados sintaticamente a partir da documentação incluída, com auto-completação mais inteligente e um indentador automático com consciência de parênteses e dois-pontos (801eab8a8, 8e9f967e7, 9fdff9c6d).
Diálogo unificado de carregamento de firmware. A gravação agora apresenta um único diálogo contextual (A apagar disco / A gravar firmware / A gravar bootloader) com uma barra de progresso e um registo Mostrar/Ocultar Detalhes expansível que memoriza o estado (5b51356f8).
Suporte OpenMV Cam RT1062. Firmware, carregadores DFU/flash, enumeração SDP/blhost e um passo de programação por queima de eFuse foram adicionados para a nova placa da família i.MX RT1060 (a6595f5f7), à qual foi posteriormente atribuída uma variante de placa Secure Bootloader (SBL) distinta (d2b11c6c8).
Novas funcionalidades¶
Flags de automatização. As flags
-auto_update(release/development/ caminho),-auto_erasee-auto_runpermitem que o IDE grave/apague o firmware e depois execute o script aberto ao ligar; após uma reconexão do bootloader, o IDE aguarda até 10 segundos para que a câmara volte a ser enumerada antes de continuar (b54affe79, f4e03d978).Flag ``-disable_stop`` e um interruptor de menu
stop on connect/disconnectpermitem que os utilizadores desativem a paragem do script ao ligar ou desligar (02724ca7d).Interruptor Stop Script on Connect/Disconnect (ativado por predefinição) desacopla a ligação/desligação da paragem do script em execução; a Reconexão Automática está agora desativada por predefinição (a0e78057f).
Prompt de tipo de placa. Quando uma placa ligada reporta uma arquitetura não incluída no mapeamento de firmware, o IDE solicita agora ao utilizador que selecione o tipo de placa (memorizando a última escolha) em vez de abortar com o erro «Unsupported board architecture!» (b7165eb3d).
Realce de sintaxe Python OpenMV colore módulos, classes, dados, funções, métodos e argumentos OpenMV conhecidos usando listas de palavras-chave preenchidas a partir da documentação incluída (801eab8a8, b4d481bf5).
~300 definições de linguagem KSyntaxHighlighting são fornecidas com o editor, pelo que os ficheiros fonte em muitas linguagens são realçados imediatamente (39674a4dc).
Scripts de exemplo OpenMV incluídos (Hello World, captura de imagem, gravação de vídeo, fluxo ótico, câmaras de eventos, obturador global, FLIR Lepton e mais) estão agora comprometidos e fornecidos com o IDE (938ac6bbe).
Editor binário/hexadecimal está ativado para que os utilizadores possam abrir e inspecionar ficheiros binários, com a barra de ferramentas reduzida para se adaptar à UI do OpenMV (675bda966).
Comparação de documentos em memória. Os novos ficheiros e os exemplos só de leitura obtêm agora um ficheiro temporário de suporte para que os documentos não guardados possam ser comparados, e o diálogo de comparação de ficheiros externos memoriza a última pasta utilizada (5281e5f6c, 2934d5216).
Plugin de editor com separadores é readicionado, dando ao IDE uma barra de documentos com separadores; o código-fonte do plugin de minimapa foi readicionado, mas deixado desativado na compilação desta versão (0e8047372).
Gravação DfuSe e pydfu de fallback é restaurada para dispositivos DFU que não podem ser direcionados por número de série, com tratamento automático de apagamento sem diálogo durante a ligação (e42a5be7d).
Queima de eFuse i.MX RT. A programação de firmware agora queima um eFuse (
efuse-program-once) para as placas da família RT1060 (8053bb578, a6595f5f7).Página do assistente de instalação de raiz no Linux permite ao utilizador optar por entrar ou sair da instalação elevada de bibliotecas apt e da instalação de regras udev, em vez de as executar sempre (6bac80984).
Outras alterações e melhorias¶
Pesquisa de porta série em segundo plano. A enumeração de portas foi movida para fora da thread da UI para um worker dedicado
ScanSerialPortsThread, de modo a que o IDE permaneça responsivo durante a pesquisa (7be4dab26).Deteção de dispositivos mais abrangente. A pesquisa de portas foi refatorada num auxiliar reutilizável
filterPorts()que incorpora dispositivos picotool e DFU i.MX e reclassifica portas série de bootloader Arduino conhecidas (PIDs NRF/RPI antigos e de carregador) como dispositivos DFU (25a5d30fd).Mais fallbacks de terminal. Ao lançar as ferramentas de reprodução de vídeo incluídas (Play Video File / Play RTSP Stream) no Linux, o IDE recorre agora a
lxterminal,konsoleexfce4-terminal, além dextermegnome-terminal(df54007e0).Reporte de chaves de placa. O registo de câmara analisa agora uma resposta «Remaining N» para informar o utilizador sobre quantas chaves de placa restam, e adiciona uma mensagem de erro distinta «Invalid Board Key for Board Type» (5759e73eb).
Transferências alojadas no GitHub. As verificações de versão e as transferências de recursos utilizam agora
raw.githubusercontent.com/openmv/openmv-ide-versione as versões deopenmv/openmv-ideem vez deupload.openmv.io(994109c28).HTTPS em todo o lado. Todos os pedidos web OpenMV (verificações de versão, registo de ID SWD, transferências de recursos e firmware) utilizam agora
https://(54347cad0).Automatização da configuração do Linux. O instalador deteta bibliotecas e regras udev em falta e, se necessário, gera um
setup.shexecutável com os comandos exatos de instalação apt-get/pip e regras udev (e umREADMEa dizer ao utilizador para o executar) (c6dc705e6).Tolerância a placas lentas. O terminal série aumenta o tempo de espera por leitura de 1 ms para 10 ms e emite um reconhecimento «OK» quando um script termina (c935e4489).
Progresso de gravação mais suave. As barras de progresso do carregador de firmware passam agora de indeterminado para 0-100% imediatamente, em vez de aguardar o primeiro incremento de percentagem, em dfu-util, bossac, picotool e gravação i.MX (19d947308, 86d021f92).
Recuperação de bootloader antigo é readicionada através de um modo de bootloader não rápido que envia comandos de apagamento/escrita sem o preenchimento de sincronização de consulta do modo rápido (c20112c07).
Consolas de ferramentas mais limpas. Os terminais de gravação de firmware (bossac, dfu-util, picotool, imx, ferramentas de vídeo) são agora executados como processos de consola autónomos com saída de comandos mais bem formatada (8053bb578).
Polimento da auto-completação. A completação distingue classes, métodos e funções com sugestões de argumentos separadas, usa ícones de modelo de código adequados e respeita o âmbito público/protegido/privado pelo prefixo de sublinhado; o processador de completação de palavras-chave também ignora o espaço em branco inicial antes do cursor na completação invocada explicitamente (manualmente) (8e9f967e7, 68b26b5fc).
Diálogos consolidados. Os diálogos ad-hoc «Don’t show this again» do OpenMV – incluindo o diálogo de informação de arranque
OpenMV Cam LED Colorse os prompts de atualização de firmware e de exemplos – são unificados em diálogosCheckableMessageBox«Do Not Ask/Show Again»; foi adicionado um botão «Reset Do Not Ask/Show Again Dialogs» às definições Gerais, e os marcadores de dobragem de código estão desativados por predefinição (9fdff9c6d).Identidade visual com consciência de tema. Ecrãs de carregamento em modo escuro, logótipos de chip ST e NXP em modo escuro/claro na caixa Acerca de, cores de tooltip em modo escuro, e cores de ícone de auto-completação corretas foram adicionados (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Limpeza do visualizador de imagens. As ações de partilha, fundo, contorno e «definir como predefinição» estão ocultas, foi adicionada uma ação de ajuste ao ecrã e o redimensionamento de imagens animadas foi corrigido (b37c55e25).
Limpeza do menu de contexto. «Show in File System View», «Open Terminal», «File Properties» e as entradas «Add/Delete UTF-8 BOM on Save» estão ocultas (5d862c78e).
Terminal série escuro. O terminal autónomo utiliza um tema escuro adequado com barras de deslocamento estilizadas, ícones de barra de ferramentas atualizados e recarregamento correto de ícones de barra de deslocamento em alto-DPI entre ecrãs (5c3af6880).
Limpeza de Localizar/Pesquisar. O painel de resultados obtém um tema escuro, o seletor de motor de pesquisa está oculto, as etiquetas são simplificadas, e Localizar em Ficheiros tem por predefinição a pasta Documentos/OpenMV (20a806550).
Identidade da aplicação. O IDE apresenta agora o ícone OpenMV correto no ambiente de trabalho, na barra de título e na barra de tarefas (com tratamento de alto-DPI no Windows), e o id do IDE foi alterado para
openmvide(8ad1eed1f).Ecrã de carregamento em alto-DPI apresenta uma imagem de ecrã de carregamento 2x em ecrãs Retina/escala a 200% (626ff673e).
Reparação da barra de ações. A barra de ações lateral esquerda (Novo Ficheiro, Abrir, Guardar, Anular, Refazer, Cortar, Copiar, Colar) foi reparada e recebeu ícones OpenMV personalizados (b8479b5d0).
Logótipos no diálogo Acerca de. Tanto o logótipo do parceiro Arduino como o do Edge Impulse estão agora visíveis (o Edge Impulse estava anteriormente oculto) com variantes 2x em alto-DPI, e as ilustrações de ecrã de carregamento incluídas foram atualizadas (
splash-small-2/splash-large-2) (5facd8d9a).Select Word Under Cursor está ativado; os comandos Go to Block Start/End (Ctrl+[ / Ctrl+]) e Select Block Up/Down foram brevemente reativados (36ed5b1a8) mas deixados desativados na versão (626ff673e).
Entrada de ambiente de trabalho Linux obtém uma categoria Electronics, um comentário de descrição e palavras-chave de pesquisa (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).
Migração de recursos. Os recursos do utilizador foram movidos para uma localização com versão (a pasta qtcreator antiga é removida no arranque), e os avisos inócuos de tipo de letra DirectWrite no Windows são suprimidos (a04af5351, 70765dc2a).
Opções internas ocultas. As opções Core internas
-colore-themeestão ocultas da saída de ajuda, e o modo de apresentação foi reativado (434c7b4cc).Personalizações de núcleo reaplicadas à barra de ações elegante/widget de separadores, gestor de mensagens/janela de saída, ações de proxy, realçador de sintaxe e editor de texto (0e8047372).
QCustomPlot 2.1.1. A biblioteca de representação gráfica incluída foi atualizada para compatibilidade com Qt 6.4 e tratamento correto de DPI de ecrã que muda dinamicamente (8801415fe).
Melhorias cosméticas da UI nos ícones de seta das barras de deslocamento, na barra de estado, nos botões de fechar da barra de separadores de documentos e na largura do deslizador do editor; o indicador «Display File Line Ending» do editor está agora desativado por predefinição (e0c4d2325, 6a26f4430, e130988fb).
Correções de erros¶
Corrigida a deteção de VID/PID no Linux através da leitura de
/sys/class/tty/<port>/device/ueventpara o VID/PID real do dispositivo, contornando o retorno dos identificadores do hub USB por parte doQSerialPortInfo, de modo a que as câmaras por detrás de hubs sejam detetadas corretamente (28220b351).Corrigida a gravação de firmware do bootloader no Mac, flexibilizando as asserções de tamanho de endpoint e acrescentando apenas o pacote de consulta de sincronização quando uma escrita é exatamente do tamanho de um endpoint USB (86d021f92).
Corrigidas as ferramentas de reprodução de vídeo no Linux: Play Video File / Play RTSP Stream estão agora ocultos em Linux de 32 bits e ARM (sem ffplay incluído), com fallback para gnome-terminal quando o xterm não está disponível, e o binário ffmpeg do macOS foi restaurado a partir de um marcador de posição (d342649cc, d896f4225).
Aumentados os atrasos de início/fim de reinício do bootloader de 0 para 5, de modo a evitar a sobreposição de comandos de apagamento e escrita durante as atualizações de firmware (fabc168b6).
Recuperação do bootloader simplificada: forçar o bootloader a reparar uma câmara bloqueada ignora prompts redundantes, e após um reinício do bootloader DFU o IDE tenta automaticamente a atualização novamente em vez de pedir ao utilizador para reconectar (12b924088).
Permitida a interrupção a meio da transação dos comandos de despejo do buffer de fotograma/TX-buffer em série (4a4afae1b).
Removida a solução alternativa de abandono em caso de bloqueio de leitura da porta série, que podia preencher respostas com bytes zero, melhorando a fiabilidade da transferência USB rápida (0ee1d8e91).
Corrigida a depuração WiFi e a reconexão automática: as portas WiFi atualizam o seu registo de hora da última ocorrência na redescoberta; vários erros de iterador-após-apagamento na retirada de portas WiFi e na deteção DFU/bootloader foram corrigidos; e a reconexão automática aguarda agora que o IDE não esteja ocupado antes de reconectar (cf0b67dc6).
Corrigido o conversor de vídeo para MJPEG para analisar a taxa de fotogramas a partir da saída do codificador e escrever o delta correto em milissegundos por fotograma, de modo a que os vídeos convertidos sejam reproduzidos à velocidade correta (4a7ad2057).
Corrigida a falha no lançamento da gravação de firmware e das ferramentas de linha de comandos incluídas, forçando o backend QProcess e corrigindo a proteção do ciclo de eventos do processo bloqueante (200fe9f3c).
Corrigidos os ícones de expansão/colapso de ramificações da árvore do editor de conjuntos de dados para serem apresentados corretamente em ecrãs HiDPI, recarregando a folha de estilos dos ícones na alteração do rácio de pixel de dispositivo (a0e78057f).
As atualizações de pacotes/recursos agora reiniciam automaticamente o OpenMV IDE em vez de simplesmente fechar após a instalação (178ee1b8e).
Corrigido o realce de resultados de Localizar/pesquisar e as ações de resultado de pesquisa/abertura de ficheiros recorrem agora ao primeiro editor visível quando não existe editor atual (48c402dfc).
Corrigido o diálogo do carregador de firmware para que o texto de aviso seja limpo e a janela seja redimensionada corretamente quando uma operação de gravação termina (c505c6ade).
Corrigidos vários erros de UI no macOS: a barra de separadores já não gera erros de carregamento de ícones repetidamente e é apresentada corretamente ao abrir um ficheiro (9be8c58de, 5322cf968).
Corrigido o estilo da barra de estado/painel de saída e o alinhamento da linha de base no macOS e Linux (4fc4545de, d29b2baa0, a440d5cd8).
Corrigida a impressão de código-fonte para que o cabeçalho do título da página tenha margens superiores e laterais adequadas, em vez de tocar na borda da página (786d6012c).
Plataformas e ferramentas suportadas¶
Base Qt Creator: 10.0.1 (rebasada a partir de 4.0.2).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): o firmware inicial RT1062, o carregador flash, as imagens assinadas, a entrada
imx.txte as chaves de configuraçãoblhostde bootloader seguro/eFuse foram adicionados na pasta de firmwareOPENMV5(a6595f5f7); a placa foi depois consolidada numa única pastaOPENMV_RT1060, e foi adicionada uma variante de placa Secure Bootloader (SBL) distinta (OpenMV_Cam_RT1062_SBL) (d2b11c6c8, 5baf28c6e).Cadeia de ferramentas de gravação incluída (blhost, bossac, dfu-util, dfuse + controladores STM32, picotool, sdphost, ffmpeg, controladores FTDI/Arduino) foi novamente incluída para Windows/macOS/Linux, com os binários Linux marcados como executáveis (fbfa4903a, bfb6b32e2, 9551c64da).
DFU ARM64 Linux: um
dfu-utilaarch64 incluído mais deteção arm64 na listagem de dispositivos e na transferência de firmware permite a gravação DFU em anfitriões como o Raspberry Pi (16bc6fe0f, 470e5702e).Deteção de dispositivos i.MX funciona agora no Linux (através de
lsusb) e macOS (através deioreg), permitindo o carregamento de firmware i.MX RT nessas plataformas (e03ccbe71, 7cf505d09).Controlo de plataforma: a utilização de i.MX está restrita a Windows/macOS/Linux-x86_64, com um erro crítico noutras plataformas, e a gravação Portenta/Nicla em Linux ARM/ARM64 apresenta um aviso «DFU Util may not be stable on this platform» (9513f6475).
OpenGL no Windows: a renderização por software foi restaurada incluindo
opengl32sw,Qt6OpenGLe suporte OpenGL de Qt6Gui no pacote implementado (aaaa1928f).Pastas/ids de placas Arduino renomeados. As pastas de firmware e os ids de placa
boards.txtda Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados paraARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONeARDUINO_NANO_33_BLE_SENSE(a70d6562a); a pasta/id de placa do Nano 33 BLE Sense foi subsequentemente convertida para minúsculas emarduino_nano_33_ble_sensepara corresponder ao nome de placa reportado pelo dispositivo (22750d8c7, a801a81de).Carregadores flash do bootloader OPENMV_RT1060 (
blhost_flash_loader.bin,sdphost_flash_loader.bin) foram atualizados (5baf28c6e).QCustomPlot: 2.1.1 (biblioteca de representação gráfica incluída) (8801415fe).
Imagens de firmware em disco foram novamente incluídas para todas as placas OpenMV/Arduino suportadas (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, mais firmware WiFiWINC1500), com firmware e, quando aplicável, imagens de bootloader/uvc (fbfa4903a).
Alterações com impacto¶
Estas são alterações de fluxo de trabalho e comportamento visíveis pelo utilizador; o rebase para Qt Creator 10.0.1 em si não quebra projetos nem scripts de utilizador.
Definições de placa i.MX RT1060 alteradas. As entradas
EVKBMIMXRT1060eOPENMV5foram substituídas por uma única placaOPENMV_RT1060(OpenMV Cam RT1062, mais uma variante SBL), e as pastas de firmware antigas foram removidas (d2b11c6c8).O tempo limite predefinido de comando-resposta é 10000 ms (era 5000 ms em 4.0.0); o texto de ajuda de
-override_read_timeoutfoi atualizado em conformidade (4a4afae1b).Comportamento de ligação/desligação alterado. A Reconexão Automática está agora desativada por predefinição, e ligar ou desligar já não para o script em execução por predefinição, a menos que o novo interruptor «Stop Script on Connect/Disconnect» esteja ativado (o que acontece por predefinição) (a0e78057f).
O fluxo de atualização reinicia o IDE. As atualizações de pacotes/recursos reiniciam agora automaticamente o OpenMV IDE em vez de fechar após a instalação (178ee1b8e).
Ids de placas Arduino renomeados. Os ids de placa
boards.txte as pastas de firmware da Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados paraARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONeARDUINO_NANO_33_BLE_SENSE(este último posteriormente convertido para minúsculas emarduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).