v1.7.0

v1.7.0 adiciona fragmentação e remontagem série do buffer de fotograma para que fotogramas grandes possam ser transferidos pela ligação série de depuração, torna a desligação com reinicialização mais segura ao limpar (e, no Windows, ao ejetar) a unidade de armazenamento em massa USB da câmara e atualiza o conjunto de exemplos. A versão é baseada no Qt Creator 4.0.2 (a mesma base da versão anterior) e adiciona suporte de compilação para alvos Linux embebido compilados de forma cruzada, como o Raspberry Pi. Não existem alterações incompatíveis.

Destaques

  • Fragmentação série do buffer de fotograma — transferências grandes do buffer de fotograma são divididas em fragmentos com o tamanho do MTU e remontadas num buffer de pixels, permitindo mover fotogramas grandes pela ligação série de depuração.

  • Desligação com reinicialização mais segura — a unidade de armazenamento em massa USB da câmara é limpa antes da reinicialização (e forçosamente ejetada no Windows) para que o sistema de ficheiros seja sincronizado primeiro.

  • Gravação atómica de ficheiros — os ficheiros main.py e de pontos-chave são escritos de forma atómica, evitando corrupção e corrigindo um erro de caminho que escrevia main.py na localização errada.

  • Raspberry Pi / Linux embebido — o suporte de compilação cruzada está agora incluído.

  • Exemplos atualizados — um conjunto Servo Shield, novos exemplos de Deteção de Características e exemplos de vídeo Image Reader/Writer.

Novas funcionalidades

  • Fragmentação e remontagem série do buffer de fotograma. As transferências do buffer de fotograma são divididas em fragmentos com o tamanho do MTU e remontadas num buffer de pixels, para que fotogramas grandes possam ser movidos pela ligação série de depuração utilizando um MTU predefinido. Foi adicionado um handshake de negociação automática do MTU em tempo de execução com o seu gate de versão de firmware definido para 2.5.0, correspondendo ao firmware 2.5.0 incluído no mesmo commit (96458ccef). O gate foi posteriormente elevado para 9.9.9 para o lançamento, que nenhum firmware lançado reporta, pelo que as câmaras utilizam o MTU predefinido e não ocorre negociação (abd1dacb9).

  • Limpeza/ejeção na desligação com reinicialização. A desligação com reinicialização limpa agora a unidade de armazenamento em massa USB da câmara antes da reinicialização: no Windows a unidade é forçosamente ejetada, enquanto no Linux e macOS o sistema de ficheiros da unidade é sincronizado (syncfs / sync_volume_np). Um erro Failed to eject é reportado em caso de falha nas três plataformas (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Exemplos Servo Shield. Adicionado um conjunto de exemplos 15-Servo-Shield a demonstrar servos controlados por PCA9685, incluindo um controlador pca9685.py e um auxiliar servo.py (abd1dacb9).

  • Novos exemplos de Deteção de Características. Adicionados find_circles (Hough), find_rects (limiar quad), find_numbers (reconhecimento de dígitos LeNet) e exemplos de regressão linear rápida e robusta em 09-Feature-Detection (abd1dacb9).

  • Exemplos de vídeo e controlo de placa. Adicionados exemplos de Image Reader/Writer para gravar e reproduzir streams de capturas de imagem do cartão SD, um exemplo de controlo de placa RTC e um executor de testes unitários na câmara (abd1dacb9).

Outras alterações e melhorias

  • Renomeada a pasta de exemplos 99-Tests (anteriormente 15-Tests) e adicionado o executor unittests.py (abd1dacb9).

Correções de erros

  • Melhorada a gravação de ficheiros main.py e de pontos-chave. As escritas foram alteradas para escritas atómicas com FileSaver (escrever depois finalizar) em (4fd4e89cf), e um separador de caminho em falta que escrevia main.py na localização errada foi corrigido em (1865ffd31).

  • Melhorada a fiabilidade série ao aumentar o buffer de leitura série para 1MB em todas as portas e ao aumentar o tempo limite de espera de leitura, resolvendo dados perdidos com QSerialPort (7f68368dc).

  • Corrigido um problema de layout no divisor de janela exportando MainWindow e emitindo um sinal de evento de apresentação para que o plugin OpenMV possa restaurar o layout quando a janela principal é apresentada (4895e20b7).

Suporte de plataforma e ferramentas

  • Base Qt Creator: 4.0.2.

  • Adicionado suporte de compilação para alvos Linux embebido compilados de forma cruzada, como o Raspberry Pi: implementa fontes Qt, corrige o tratamento de chrpath/RPATH, compila traduções com binários do anfitrião e adiciona uma dependência qml em falta (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • Atualizado o firmware OpenMV incluído de 2.4.1 para 2.5.0 (96458ccef).

  • Renomeadas as pastas de firmware OMV2/OMV3 para OPENMV2/OPENMV3 e incluídos firmware e binários de bootloader STM32F427 (OPENMV2) e STM32F765 (OPENMV3) atualizados e recompilados (abd1dacb9).

Alterações incompatíveis

Nenhuma. Esta versão não introduz quebras de fluxo de trabalho ou de comportamento visíveis ao utilizador; os projetos existentes continuam a funcionar sem alterações.