v1.7.0

A v1.7.0 adiciona fragmentação e remontagem de frame buffer pela serial, para que quadros grandes possam ser transferidos pelo link serial de depuração, torna a desconexão com reset mais segura ao descarregar (e, no Windows, ejetar) a unidade de armazenamento em massa USB da câmera, 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 embarcados de compilação cruzada, como o Raspberry Pi. Não há mudanças incompatíveis.

Destaques

  • Fragmentação de frame buffer pela serial — transferências grandes de frame buffer são divididas em fragmentos do tamanho do MTU e remontadas em um buffer de pixels, para que quadros grandes possam ser movidos pelo link serial de depuração.

  • Desconexão com reset mais segura — a unidade de armazenamento em massa USB da câmera é descarregada antes do reset (e ejetada à força no Windows) para que o sistema de arquivos seja sincronizado primeiro.

  • Salvamento atômico de arquivosmain.py e arquivos de ponto-chave são escritos de forma atômica, prevenindo corrupção e corrigindo um bug de caminho que gravava main.py no local errado.

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

  • Exemplos atualizados — um conjunto de Servo Shield, novas demonstrações de Detecção de Características e exemplos de vídeo de Image Reader/Writer.

Novos recursos

  • Fragmentação e remontagem de frame buffer pela serial. As transferências de frame buffer são divididas em fragmentos do tamanho do MTU e remontadas em um buffer de pixels, para que quadros grandes possam ser movidos pelo link serial de depuração usando um MTU padrão. Foi adicionado um handshake de auto-negociação de MTU em tempo de execução, com sua restrição de versão de firmware definida para 2.5.0, correspondendo ao firmware 2.5.0 incluído no mesmo commit (96458ccef). A restrição foi então elevada para 9.9.9 na versão final, valor que nenhum firmware fornecido relata, de modo que as câmeras usam o MTU padrão e nenhuma negociação ocorre (abd1dacb9).

  • Descarregar/ejetar na desconexão com reset. Desconectar com reset agora descarrega a unidade de armazenamento em massa USB da câmera antes do reset: no Windows a unidade é ejetada à força, enquanto no Linux e no macOS o sistema de arquivos da unidade é sincronizado (syncfs / sync_volume_np). Um erro Failed to eject é relatado em caso de falha nas três plataformas (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Exemplos de Servo Shield. Adicionado um conjunto de exemplos 15-Servo-Shield demonstrando servos acionados por PCA9685, incluindo um driver pca9685.py e um auxiliar servo.py (abd1dacb9).

  • Novos exemplos de Detecção de Características. Adicionados find_circles (Hough), find_rects (limiar de 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 de controle de placa. Adicionados exemplos de Image Reader/Writer para gravar e reproduzir fluxos de snapshot do cartão SD, um exemplo de controle de placa RTC e um executor de testes unitários na própria câmera (abd1dacb9).

Outras mudanças e melhorias

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

Correções de bugs

  • Reforçado o salvamento de main.py e dos arquivos de ponto-chave. As escritas foram trocadas por escritas atômicas via FileSaver (escrever e então finalizar) em (4fd4e89cf), e um separador de caminho ausente que gravava main.py no local errado foi corrigido em (1865ffd31).

  • Melhorada a confiabilidade da serial ao ampliar o buffer de leitura serial para 1MB em todas as portas e aumentar o tempo limite de travamento de leitura, resolvendo a perda de dados com QSerialPort (7f68368dc).

  • Corrigido um defeito de layout do divisor de janelas exportando MainWindow e emitindo um sinal de evento de exibição, para que o plugin OpenMV possa restaurar o layout quando a janela principal for exibida (4895e20b7).

Suporte de plataforma e ferramentas

  • Base do Qt Creator: 4.0.2.

  • Adicionado suporte de compilação para alvos Linux embarcados de compilação cruzada, como o Raspberry Pi: implanta fontes Qt, corrige o tratamento de chrpath/RPATH, compila traduções com binários do host e adiciona uma dependência qml ausente (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 fornecidos binários de firmware e bootloader STM32F427 (OPENMV2) e STM32F765 (OPENMV3) atualizados e recompilados (abd1dacb9).

Mudanças incompatíveis

Nenhuma. Esta versão não introduz quebras de fluxo de trabalho ou comportamento visíveis ao usuário, e os projetos existentes continuam funcionando sem alterações.