v4.8.11¶
v4.8.11 é uma versão de estabilidade e correção focada na robustez do macOS, serialização de ferramentas externas e fiabilidade das atualizações de firmware. É construída sobre o Qt Creator 14.0.2 (sem alterações relativamente à versão anterior) e não contém alterações disruptivas para os projetos dos utilizadores.
Destaques¶
Proteção contra falhas no macOS — eliminado um abort intermitente silencioso
NSRangeExceptioncausado pela atualização de seleções de árvore/lista/combo antes de um painel ou popup estar totalmente construído ou durante uma atualização assíncrona, em todo o combo de estrutura, hierarquia de chamadas/tipos, popups de conclusão e localizador, árvore de projeto, e mais.Ferramentas externas serializadas — o diálogo de progresso do carregador é agora modal a nível da aplicação e suspende toda a monitorização de dispositivos, pelo que a execução de dfu-util, bossac, picotool e as demais ferramentas já não pode ser reiniciada pelo fluxo da câmara ou pela reconexão automática.
Atualizações de firmware fiáveis — a reconexão automática já não pode interromper uma atualização de firmware a meio do flash, o que anteriormente descartava a continuação real e apresentava um diálogo DFU espúrio.
Segurança do Hello World — ligar uma placa já não sobrescreve ocasionalmente um programa Hello World que tenha sido introduzido, comparando com uma captura de imagem sem alterações em vez do sinalador de modificação não fiável.
Erros DFU mais claros — o erro «no matching interface» apresenta agora o nome da placa detetada e os nomes dos ficheiros de firmware que aceita, em vez de mostrar um VID/PID em bruto.
Novas funcionalidades¶
ST Edge AI (STM32N6) produz agora o binário de rede relocalizado diretamente através do modo
--relocatabledo compilador, eliminando o passo Python de relocalização separado e o campo extra Relocation CLI Options do diálogo (7613135c5).
Outras alterações e melhorias¶
Erros de interface DFU apresentam agora o nome da placa detetada e listam os nomes dos ficheiros de firmware que essa placa aceita, com orientação para renomear ou escolher o ficheiro correto, em vez de mostrar um VID/PID em bruto (ac509b369).
Atalhos de teclado de navegação por separadores no macOS utilizam agora
Cmd+Shift+[/Cmd+Shift+](anterior/seguinte) eCmd+Alt+[/Cmd+Alt+](mover) em vez dos inacessíveisCtrl+PageUp/Ctrl+PageDown; os atalhos do Windows e Linux não foram alterados (6c09e10b1).Pedidos de licença/placa para
upload.openmv.io(check.php,insert.php,register.php) enviam agora umUser-Agentno estilo de browser por plataforma, para que o servidor de licenças possa identificar o sistema operativo do cliente (6bfd74b36).
Correções de erros¶
Corrigida uma falha intermitente no macOS (um abort silencioso
NSRangeExceptionsem diálogo de falha) em que a atualização de seleções de árvore/lista/combo enquanto um painel ou popup ainda estava oculto ou em atualização assíncrona indexava uma cache de acessibilidade Cocoa não construída. A seleção, deslocamento e expansão são agora diferidos ou protegidos no combo de estrutura, hierarquia de chamadas/tipos, popup de conclusão de código, popup do localizador, diálogo Save Items, árvore de projeto, navegação de pastas, Open Documents, a lista Issues/Tasks, e o combobox de vista em árvore (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).Corrigida uma falha separada no macOS (
NSRangeException/SIGABRT) no combobox de estrutura de código, causada por um índice fora do intervalo obsoleto quando o servidor de linguagem Python atualizava os símbolos de forma assíncrona;setCurrentIndexvalida agora os limites de linha/coluna face ao modelo em tempo real (3e0ce89f1).Reforçado o editor de modelos ROMFS e o editor de conjuntos de dados contra condições de corrida assíncronas do
QFileSystemModel, diferindo a pré-expansão da árvore até o diretório terminar de carregar e selecionando ficheiros/pastas/modelos recém-criados apenas quando o modelo tiver um índice válido para eles (5eaa91aff).As operações de ferramentas externas (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, conversão de vídeo) já não permitem que o fluxo da câmara ou trabalho em fila reinicie uma operação de dispositivo enquanto a ferramenta está em execução: o diálogo de progresso do carregador é agora modal a nível da aplicação e a monitorização de dispositivos é totalmente suspensa enquanto está visível (3069e8ec0).
A reconexão automática já não interrompe uma atualização de firmware a meio do flash, através de um sinalador de atualização de firmware em curso retido para toda a operação de forçamento/bootloader/apagamento que o temporizador de reconexão agora também verifica (b7745484a).
Ligar uma placa já não sobrescreve ocasionalmente um programa Hello World que tenha sido introduzido, comparando o documento em tempo real com uma captura de imagem sem alterações obtida na abertura em vez de depender do sinalador de modificação não fiável antes de sincronizar automaticamente o exemplo por sensor (6f4539d44).
Deslocar para cima no terminal série durante uma saída contínua rápida já não arrasta a vista de volta ao fim: os caminhos de acrescentar seguem agora o sinalador de intenção de deslocamento do utilizador em vez de recalcular «no fundo» a partir de uma posição da barra de deslocamento que cada bloco tinha acabado de repor (9aea0f1a2).
Escapefecha agora de forma fiável o diálogo Code Profiler independentemente do widget filho que tiver o foco (203ffd1e6).No macOS, os atalhos de teclado do menu global e de comandos funcionam agora em toda a aplicação em vez de apenas quando o editor tinha o foco, ao colocar a barra de menu oculta como filha da janela principal em todas as plataformas (6d52cbe73).
O interpretador Python incluído é agora forçado como predefinição em cada arranque, para que uma predefinição persistida desatualizada já não desative silenciosamente o servidor de linguagem Python (conclusão e sugestões de chamadas) (1d5069a52).
Reforçada a E/S das definições OpenMV contra reentrada:
beginGroup/endGroupno objeto de definições globais partilhado (que abre diálogos modais e executa ciclos de eventos aninhados) são substituídos por caminhos de chave completos, para que um acesso reentrante às definições durante um diálogo modal já não possa arquivar chaves no grupo errado. Os caminhos em disco são byte a byte idênticos, pelo que as definições dos utilizadores existentes são preservadas exatamente (91e78a9e3, f4bb9f48c).Corrigida uma regressão em que vários diálogos e auxiliares que recebem o objeto de definições partilhado faziam E/S com chaves simples na raiz das definições em vez de em
OpenMV/, perdendo a geometria da janela do model zoo, o separador e o estado expandido, e o estado dos seis diálogos do carregador (dfu-util, imx, bossac, alif, picotool e ST Cube Programmer) juntamente com as opções do compilador mpy-cross, vela e ST Edge AI; o grupo está agora incorporado em cada chave para que o caminho correto seja utilizado (258448bdf).
Suporte de plataforma e ferramentas¶
Base Qt Creator: 14.0.2.
Versão do OpenMV IDE atualizada para 4.8.11.
Alterações disruptivas¶
Nenhuma. Todas as alterações são correções de erros e melhorias sobre a base Qt Creator 14.0.2 existente; os projetos e fluxos de trabalho existentes não são afetados.