v4.8.9

A v4.8.9 é uma versão de eficiência em repouso e confiabilidade de desconexão construída sobre o Qt Creator 14.0.2. Ela reformula a maneira como a IDE monitora o hardware para que pare de fazer polling quando nada está acontecendo, ajusta o caminho de conexão/desconexão e remove modelos do model zoo incluído. Não há rebase do Qt Creator neste intervalo, mas alguns comportamentos padrão e nomes de modelos incluídos mudaram, então revise as mudanças incompatíveis abaixo.

Destaques

  • Monitoramento de hardware orientado a eventos substitui o polling contínuo de dispositivos: a IDE agora para seus timers de varredura quando ociosa e só varre novamente as portas seriais e drives em resposta a eventos reais de conexão/desconexão USB e de montagem/desmontagem de disco, reduzindo drasticamente o uso de CPU e de recursos em repouso.

  • Timers ociosos condicionados à atividade: o timer de eventos do frame buffer (que antes disparava a cada 1ms) agora roda apenas enquanto conectado, e o timer de piscada do cursor do terminal (500ms) agora roda apenas enquanto o terminal está em foco.

  • Sincronização de importação em segundo plano desativada por padrão: a sincronização automática das pastas de importação Examples e Documents/OpenMV agora está desativada e seu botão de alternância no menu está oculto, de modo que a IDE não varre mais continuamente essas pastas.

  • Desconexão mais rápida e confiável: a porta serial é fechada e a câmera liberada imediatamente, os timeouts do protocolo foram reduzidos e uma câmera travada agora se recupera em vez de ficar pendurada.

  • Botão de modo do frame buffer mais claro que mostra JPG Mode ou RAW Mode para tornar o estado de compressão atual óbvio à primeira vista.

Novos recursos

  • Monitoramento nativo de eventos de hardware por meio de um novo HardwareMonitor que emite hardwareEventDetected usando IOKit e DiskArbitration no macOS, uma janela apenas de mensagens WM_DEVICECHANGE no Windows e um socket netlink NETLINK_KOBJECT_UEVENT no Linux. Os timers de varredura serial e de drives agora ficam condicionados a uma janela de varredura de 10s que reinicia a cada evento (a6612fec9, 462b55f7b, 17c2e93c7).

Outras mudanças e melhorias

  • O timer de processamento de eventos do frame buffer (que antes disparava a cada 1ms) agora é iniciado na conexão e parado na desconexão, e o timer de piscada do cursor do terminal (500ms) agora inicia e para conforme o terminal ganha ou perde foco, em vez de rodar sempre (a02afea53).

  • A sincronização automática das pastas de importação Examples e Documents/OpenMV está desativada por padrão e o botão de alternância está oculto; os timers de varredura de pastas não iniciam mais na inicialização e só rodam quando a ação (agora oculta) está habilitada (478f83e97).

  • O botão de alternância de formato do frame buffer agora mostra JPG Mode quando a compressão JPEG está ativada e RAW Mode quando desativada (c48831224).

  • Na conexão, a IDE agora sempre aplica o padrão preferido de JPEG da placa para o frame buffer em vez de restaurar a escolha JPG/RAW por placa salva anteriormente (c48831224).

Correções de bugs

  • A desconexão agora fecha a porta serial e libera a câmera (e a porta) em linha em close(), tornando a desconexão mais rápida e confiável (1e8941080, 9d31bcf80).

  • O timer de ociosidade serial agora é parado e a flag do protocolo v2 é limpa quando a porta fecha, corrigindo o comportamento obsoleto do timer de ociosidade após a desconexão (4bd2fd9ea).

  • Os timeouts dos comandos de protocolo foram ajustados (o timeout de abertura reduzido de 5s para 2s, e a ressincronização e CHANNEL_SIZE usam um timeout curto de 1s) e todo comando serial agora descarta o objeto da câmera em caso de falha, de modo que uma câmera travada se recupera e desconecta mais rápido em vez de ficar pendurada (04aa6aea3).

  • Corrigido um problema de travamento ao parar um script: um evento de script parado agora também limpa o estado de eventos de quadro e reinicia os timers de quadro pronto (3695b0704).

  • O protocolo agora tolera leituras curtas da câmera, retornando a carga útil ou o texto parcial em vez de descartá-lo ou gerar erro (0c8ccd58e).

Suporte de plataforma e ferramentas

  • Base do Qt Creator: 14.0.2.

  • Placas que combinam um módulo AE3 ou N6 com um sensor PAG7936 ou PS5520 agora recebem o padrão QVGA mais alto (anteriormente apenas AE3 + PAG7936), de modo que os exemplos afetados são atualizados automaticamente de QQVGA para QVGA (fcc0c3227).

  • O model zoo incluído de estimativa de pose MoveNet da ST foi limpo: variantes redundantes por tensor (_pt) e variantes duplicadas singlepose/st_movenet foram removidas, e os modelos sobreviventes de heatmap por canal foram renomeados para movenet_singlepose_192, movenet_singlepose_224 e movenet_singlepose_256 (18f66c4c1).

  • Removido o modelo de segmentação semântica DeepLabV3 incluído e seus recursos de exemplo do model zoo (a929e0dc1).

Mudanças incompatíveis

Mudanças de comportamento visível ao usuário e de recursos incluídos entre a v4.8.8 e a v4.8.9.

  • Na conexão, o frame buffer agora sempre usa o padrão preferido de JPEG da placa e ignora qualquer escolha JPG/RAW por placa salva anteriormente (c48831224).

  • A sincronização em segundo plano das pastas de importação Examples e Documents/OpenMV está desativada por padrão e seu botão de alternância está oculto (478f83e97).

  • Vários modelos incluídos foram removidos ou renomeados: o modelo de segmentação semântica DeepLabV3 foi removido, e os modelos MoveNet da ST foram reduzidos e renomeados para movenet_singlepose_192/224/256. Scripts que referenciam os nomes de arquivo antigos dos modelos precisam ser atualizados (a929e0dc1, 18f66c4c1).