v1.3.0¶
A versão v1.3.0 reescreve a camada de comunicação com a câmara em torno de um protocolo estruturado de comandos/respostas e adiciona atualização automática integrada no IDE tanto para o próprio IDE como para os recursos incluídos. É baseada no Qt Creator 4.0.2 e inclui o firmware 2.0.0 da câmara OpenMV. No macOS e Linux, a gravação de firmware via DFU exige agora uma instalação única de Python mais libusb e pyusb; consulte as Alterações incompatíveis.
Destaques¶
Camada de comunicação reescrita. O código serial/USB-debug foi reconstruído em torno de um protocolo estruturado de comandos/respostas com comprimentos de resposta por comando e atrasos de espera de início/fim, para operações de ligação, execução de scripts, buffer de fotograma e bootloader mais fiáveis.
Atualizador automático no IDE. O IDE verifica agora em
openmv.iose existe uma versão mais recente e apresenta um botão Download; além disso, descarrega e instala pacotes de recursos atualizados (exemplos, firmware, documentação) e solicita o reinício.Atualização de firmware com um clique. A versão do firmware na barra de estado é agora um botão clicável que compara a câmara ligada com o firmware incluído e oferece uma atualização com um clique quando existe uma versão mais recente disponível.
Gravação de firmware via DFU em todas as plataformas. O firmware pode agora ser gravado via DFU no Windows, macOS, Linux x86 e Linux x86_64, e o seletor de firmware aceita ficheiros
.dfupara além de.bin.Fallback automático para DFU. Quando o bootloader série não pode ser alcançado durante uma atualização de firmware, o IDE oferece agora a atualização através do bootloader DFU da câmara, guiando o utilizador na adição de um fio de jumper
BOOT/RST.
Novas funcionalidades¶
Atualizador no IDE. Verifica em
openmv.iose existe uma versão mais recente do IDE e apresenta um botão Download que abreopenmv.io/download; descarrega, descomprime e instala pacotes de recursosopenmv-ide-resources-X.Y.Z.zipdiretamente no IDE antes de solicitar o reinício (8a1f92bb1, 194acd828, b0be97e3e).Botão clicável para a versão do firmware. A etiqueta de versão na barra de estado passou a ser um
QToolButtonligado a um fluxoupdateCam()que lê o ficheirofirmware/firmware.txtincluído, compara-o com a câmara ligada e oferece uma Atualização de Firmware com apagamento opcional do sistema de ficheiros interno quando existe uma versão mais recente (b2ac8defe).Suporte para ficheiros DFU. O diálogo de bootloader/gravação de firmware aceita agora ficheiros
.dfupara além de.bine força um apagamento completo do sistema de ficheiros interno ao gravar um.dfu. O filtro do seletor de firmware foi alargado paraFirmware Binary (*.bin *.dfu)e o fluxo de apagamento forçado para.dfufoi introduzido em4ad2be5f9, com a caixa de seleção de apagamento sempre ativada e desativada que alterna automaticamente com a extensão do ficheiro escolhido adicionada emb2ac8defe(4ad2be5f9, b2ac8defe).Fallback automático para DFU em caso de falha do bootloader. Quando uma atualização de firmware
.binnão consegue iniciar o bootloader série, o IDE reporta agoraUnable to connect to the bootloader!e oferece a atualização através do bootloader DFU da câmara, avisando que o DFU apaga o sistema de ficheiros flash interno e guiando o utilizador na adição de um fio de jumperBOOT/RSTe na reconexão antes de executarDfuSeCommand.exe(Windows) (4ad2be5f9).Exemplo HoG. Foi adicionado um exemplo de visualização de Histograma de Gradientes Orientados (
09-Feature-Detection/hog.py) usandoimg.find_hog()(b03a707f7).
Outras alterações e melhorias¶
O antigo código ad-hoc de taxa de baud/pacotes foi substituído pelas classes
OpenMVPluginSerialPortCommand/Result, opcodes__USBDBG_*e__BOOTLDR_*e helperscommand()/commandResult()em substituição dewrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).A instalação do controlador de porta série do Windows é agora silenciosa/automática, os scripts de controladores
openmv.cmd/pybcdc.cmdpassaram para instaladores baseados emdpinstem vez do interativoInfDefaultInstall, e o instalador do Visual C++ Redistributable (vcr.cmd, a executarvcredist_x86.exeevcredist_x64.exesilenciosamente) foi adicionado e corrigido (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Correções de erros¶
Corrigida a quebra de gravação de firmware e comunicação dentro de máquinas virtuais, e alargados vários tempos limite de comandos e o polling do buffer de fotograma/buffer de transmissão para que a ligação e a execução sejam mais robustas. O diálogo de reprogramação indica agora que «pode demorar até 5 minutos» e o tempo limite do processo DFU foi aumentado de 240s para 300s em
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).Corrigida a comparação de disponibilidade de atualização do firmware/IDE para que uma versão secundária ou de patch mais recente não acione falsamente a comparação quando um campo superior é igual, e exigido que o diálogo do bootloader tenha um ficheiro selecionado válido antes de gravar (4ad2be5f9).
Fechados os identificadores de ficheiros (lista de placas, ficheiros de firmware/versão) após leitura e corrigido o preenchimento do bloco de gravação do firmware para preencher até
FLASH_WRITE_CHUNK_SIZE, evitando identificadores com fuga e blocos finais mal preenchidos durante as atualizações de firmware (4ad2be5f9).Corrigido o menu
Helpdo OpenMV e os painéis de saída: a entrada About OpenMV Cam já não colide com o papel de Sobre da plataforma (AboutRole→ApplicationSpecificRole), e os painéis de saída já não capturam os atalhosAlt/Cmd+ número (a0694eac7).A abertura de ligações externas do OpenMV (fóruns, download, suporte) reporta agora um diálogo de erro «Failed to open» quando o URL não pode ser aberto, em vez de não fazer nada silenciosamente (b0be97e3e).
Suporte de plataforma e ferramentas¶
Base Qt Creator: 4.0.2.
Firmware de câmara incluído: atualizado para 2.0.0, com novos
firmware.bin/openmv.bine novosfirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfpara OMV2 e OMV7.Gravação DFU no Windows adicionada usando um
DfuSeCommand.exeST incluído, o pacote de controladores USB DfuSe ST (DfuSe v3.0.4.0 em Win7/Win8, v3.0.5.0 em Win8.1) e um instalador de controladoresdfuse.cmd(4ad2be5f9).Gravação DFU no macOS e Linux migrada de binários
dfu-utilpré-compilados para um gravadorpydfu.pyincluído, com o IDE a mostrar os comandos de instalação necessários de libusb/pyusb.ac248c0ecadicionou brevemente bináriosdfu-util/dfu-prefix/dfu-suffixpara Linux x86_64, mas324f243f9removeu-os todos em favor depydfu.py. Não são incluídos bináriosdfu-utilna versão final;static.proinclui o diretório de dadospydfupara todos os anfitriões não-Windows, enquanto o Windows utiliza o fluxo DfuSe incluído (ac248c0ec, 324f243f9, 7837a07da).Regras udev do Linux atualizadas para usar correspondência por
SUBSYSTEM(VID 1209/PID abd1 tty da câmara e DFU STM 0483/df11) para que as ligações simbólicas do dispositivo e DFU funcionem em Linux 32 bits, e os pedidos de rede com seguimento de redirecionamentos foram protegidos para Qt mais antigo (194acd828).
Alterações incompatíveis¶
Os binários dfu-util autónomos incluídos para macOS e Linux foram removidos e substituídos por um gravador Python pydfu.py. No macOS e Linux, a gravação de firmware via DFU exige agora uma instalação única de Python mais libusb e pyusb (o IDE mostra os comandos exatos para MacPorts/HomeBrew/apt-get). O Windows continua a utilizar o fluxo baseado em DfuSe incluído. Não há quebras na API de scripting, e a base Qt Creator 4.0.2 mantém-se inalterada.