v4.8.11

v4.8.11은 macOS 견고성, 외부 도구 직렬화, 펌웨어 업데이트 신뢰성에 중점을 둔 안정성 및 정확성 릴리스입니다. Qt Creator 14.0.2(이전 릴리스에서 변경 없음)를 기반으로 하며 사용자 프로젝트에 대한 호환성 파괴 변경 사항은 없습니다.

주요 변경 사항

  • macOS 크래시 강화 — 패널이나 팝업이 완전히 빌드되기 전 또는 비동기 새로 고침 중에 트리/리스트/콤보 선택을 업데이트하여 발생하던 간헐적인 무음 NSRangeException 중단을 아웃라인 콤보, 호출/타입 계층, 자동 완성 및 로케이터 팝업, 프로젝트 트리 등 전반에 걸쳐 제거했습니다.

  • 직렬화된 외부 도구 — 로더 진행 대화 상자가 이제 애플리케이션 모달로 동작하며 모든 장치 폴링을 일시 중단합니다. 따라서 실행 중인 dfu-util, bossac, picotool 및 기타 도구가 카메라 스트림이나 자동 재연결에 의해 더 이상 재진입될 수 없습니다.

  • 신뢰성 있는 펌웨어 업데이트 — 자동 재연결이 더 이상 펌웨어 업데이트를 플래시 중간에 가로챌 수 없습니다. 이전에는 이로 인해 실제 후속 동작이 누락되고 가짜 DFU 대화 상자가 표시되었습니다.

  • Hello World 보호 — 보드 연결 시 신뢰할 수 없는 수정 플래그 대신 원본 스냅샷과 비교함으로써, 입력해 둔 Hello World 프로그램을 간헐적으로 덮어쓰는 일이 더 이상 발생하지 않습니다.

  • 더 명확한 DFU 오류 — “no matching interface” 오류가 이제 원시 VID/PID를 출력하는 대신 검출된 보드와 해당 보드가 허용하는 펌웨어 파일 이름을 표시합니다.

새로운 기능

  • ST Edge AI (STM32N6) 가 이제 컴파일러의 --relocatable 모드를 통해 재배치 가능한 네트워크 바이너리를 직접 생성하여, 별도의 Python 재배치 단계와 대화 상자의 추가 Relocation CLI Options 필드를 제거했습니다 (7613135c5).

기타 변경 사항 및 개선 사항

  • DFU 인터페이스 오류 가 이제 원시 VID/PID를 출력하는 대신 검출된 보드를 표시하고 해당 보드가 허용하는 펌웨어 파일 이름을 나열하며, 올바른 파일로 이름을 바꾸거나 선택하라는 안내를 제공합니다 (ac509b369).

  • macOS 탭 탐색 단축키가 이제 누를 수 없는 Ctrl+PageUp / Ctrl+PageDown 대신 접근 가능한 Cmd+Shift+[ / Cmd+Shift+] (이전/다음) 및 Cmd+Alt+[ / Cmd+Alt+] (이동)를 사용합니다. Windows 및 Linux 바인딩은 변경되지 않았습니다 (6c09e10b1).

  • upload.openmv.io (check.php, insert.php, register.php)에 대한 라이선스/보드 요청 이 이제 플랫폼별 브라우저 형식의 User-Agent 를 전송하여 라이선스 서버가 클라이언트 OS를 식별할 수 있도록 합니다 (6bfd74b36).

버그 수정

  • 패널이나 팝업이 아직 숨겨져 있거나 비동기 새로 고침 중일 때 트리/리스트/콤보 선택을 업데이트하면 빌드되지 않은 Cocoa 접근성 캐시에 인덱싱되어 발생하던 간헐적인 macOS 크래시(크래시 대화 상자 없는 무음 NSRangeException 중단)를 수정했습니다. 이제 선택, 스크롤, 확장이 아웃라인 콤보, 호출/타입 계층, 코드 자동 완성 팝업, 로케이터 팝업, Save Items 대화 상자, 프로젝트 트리, 폴더 탐색, Open Documents, Issues/Tasks 리스트, 트리 뷰 콤보박스 전반에 걸쳐 지연되거나 보호됩니다 (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).

  • Python 언어 서버가 심볼을 비동기적으로 새로 고칠 때 오래된 범위 밖 인덱스로 인해 코드 아웃라인 콤보박스에서 발생하던 별도의 macOS 크래시(NSRangeException/SIGABRT)를 수정했습니다. 이제 setCurrentIndex 가 실시간 모델에 대해 행/열 경계를 다시 검증합니다 (3e0ce89f1).

  • 디렉터리 로딩이 완료될 때까지 트리 사전 확장을 지연하고 모델이 유효한 인덱스를 가진 후에만 새로 생성된 파일/폴더/모델을 선택하도록 하여, ROMFS 모델 편집기데이터셋 편집기QFileSystemModel 비동기 경합으로부터 강화했습니다 (5eaa91aff).

  • 외부 도구 작업(dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, 비디오 변환)이 더 이상 카메라 스트림이나 대기 중인 작업이 실행 중인 도구 뒤에서 장치 작업에 재진입하도록 허용하지 않습니다. 이제 로더 진행 대화 상자가 애플리케이션 모달로 동작하며 표시되는 동안 장치 폴링이 완전히 일시 중단됩니다 (3069e8ec0).

  • 강제/부트로더/소거 작업 전체에 걸쳐 래치되는 고정 펌웨어-업데이트-진행-중 플래그를 통해, 자동 재연결이 더 이상 펌웨어 업데이트를 플래시 중간에 가로채지 않습니다. 재연결 타이머도 이제 이 플래그를 확인합니다 (b7745484a).

  • 센서별 예제를 자동 동기화하기 전에 신뢰할 수 없는 수정 플래그에 의존하는 대신, 실시간 문서를 열 때 캡처한 원본 스냅샷과 비교함으로써 보드 연결 시 입력해 둔 Hello World 프로그램을 간헐적으로 덮어쓰는 일이 더 이상 발생하지 않습니다 (6f4539d44).

  • 빠른 연속 출력 중 시리얼 터미널에서 위로 스크롤할 때 더 이상 뷰가 맨 아래로 당겨지지 않습니다. 추가 경로가 이제 각 청크가 방금 다시 고정한 스크롤바 위치에서 “맨 아래”를 다시 도출하는 대신 고정된 사용자 스크롤 의도 플래그를 따릅니다 (9aea0f1a2).

  • Escape 가 이제 어떤 자식 위젯이 포커스를 가지고 있든 관계없이 Code Profiler 대화 상자를 안정적으로 닫습니다 (203ffd1e6).

  • 숨겨진 메뉴 바를 모든 플랫폼에서 메인 창에 부모로 지정함으로써, macOS에서 전역 메뉴 및 명령 키보드 단축키가 이제 에디터에 포커스가 있을 때만이 아니라 앱 전체에서 작동합니다 (6d52cbe73).

  • 번들된 Python 인터프리터가 이제 매 실행마다 기본값으로 강제 지정되므로, 오래된 영구 기본값이 더 이상 Python 언어 서버(자동 완성 및 호출 힌트)를 조용히 비활성화하지 않습니다 (1d5069a52).

  • 재진입에 대해 OpenMV 설정 I/O를 강화했습니다. 공유 전역 설정 객체에 대한 beginGroup / endGroup (모달 대화 상자를 생성하고 중첩된 이벤트 루프를 실행함)이 전체 키 경로로 대체되어, 모달 대화 상자 중의 재진입 설정 접근이 더 이상 키를 잘못된 그룹 아래에 잘못 저장할 수 없습니다. 디스크상의 경로는 바이트 단위로 동일하므로 기존 사용자 설정이 정확히 보존됩니다 (91e78a9e3, f4bb9f48c).

  • 공유 설정 객체를 받는 여러 대화 상자 및 헬퍼가 OpenMV/ 아래가 아니라 설정 루트에서 베어 키 I/O를 수행하여, 모델 주(zoo)의 창 형상, 분할기, 확장 상태와 6개 로더 대화 상자(dfu-util, imx, bossac, alif, picotool, ST Cube Programmer)의 상태, 그리고 mpy-cross, vela, ST Edge AI 컴파일러 옵션을 잃어버리던 회귀를 수정했습니다. 이제 그룹이 각 키에 내장되어 올바른 경로가 사용됩니다 (258448bdf).

플랫폼 및 도구 지원

  • Qt Creator 기반: 14.0.2.

  • OpenMV IDE 버전이 4.8.11로 상향되었습니다.

호환성 파괴 변경 사항

없음. 모든 변경 사항은 기존 Qt Creator 14.0.2 기반 위에 추가된 버그 수정 및 개선 사항입니다. 기존 프로젝트와 워크플로는 영향을 받지 않습니다.