v1.7.0

v1.7.0은 큰 프레임을 디버그 직렬 링크를 통해 전송할 수 있도록 직렬 프레임 버퍼 청킹 및 재조립을 추가하고, 카메라의 USB 대용량 저장 드라이브를 플러시(그리고 Windows에서는 꺼냄)하여 리셋을 동반한 연결 해제를 더 안전하게 만들며, 예제 세트를 갱신합니다. 이 릴리스는 Qt Creator 4.0.2(이전 릴리스와 동일한 베이스)를 기반으로 하며, Raspberry Pi 같은 크로스 컴파일 임베디드 Linux 대상에 대한 빌드 지원을 추가합니다. 호환성을 깨는 변경 사항은 없습니다.

주요 내용

  • 직렬 프레임 버퍼 청킹 — 큰 프레임 버퍼 전송이 MTU 크기의 청크로 분할되어 픽셀 버퍼에서 재조립되므로, 큰 프레임을 디버그 직렬 링크를 통해 옮길 수 있습니다.

  • 더 안전한 리셋 동반 연결 해제 — 리셋 전에 카메라의 USB 대용량 저장 드라이브를 플러시(그리고 Windows에서는 강제로 꺼냄)하여 파일 시스템이 먼저 동기화되도록 합니다.

  • 원자적 파일 저장main.py와 키포인트 파일이 원자적으로 기록되어 손상을 방지하고 main.py를 잘못된 위치에 기록하던 경로 버그를 수정합니다.

  • Raspberry Pi / 임베디드 Linux — 이제 크로스 컴파일 빌드 지원이 포함됩니다.

  • 갱신된 예제 — Servo Shield 세트, 새로운 특징 검출 데모, 그리고 Image Reader/Writer 비디오 예제.

새 기능

  • 직렬 프레임 버퍼 청킹 및 재조립. 프레임 버퍼 전송이 MTU 크기의 청크로 분할되어 픽셀 버퍼에서 재조립되므로, 기본 MTU를 사용해 큰 프레임을 디버그 직렬 링크를 통해 옮길 수 있습니다. 펌웨어 버전 게이트가 2.5.0으로 설정된 런타임 MTU 자동 협상 핸드셰이크가 추가되었으며, 이는 같은 커밋에 번들된 2.5.0 펌웨어와 일치합니다 (96458ccef). 이후 릴리스를 위해 게이트가 9.9.9로 상향되었는데, 제공되는 어떤 펌웨어도 이 값을 보고하지 않으므로 카메라는 기본 MTU를 사용하고 협상이 일어나지 않습니다 (abd1dacb9).

  • 리셋 동반 연결 해제 시 플러시/꺼내기. 이제 리셋을 동반한 연결 해제는 리셋 전에 카메라의 USB 대용량 저장 드라이브를 플러시합니다. Windows에서는 드라이브가 강제로 꺼내지고, Linux와 macOS에서는 드라이브의 파일 시스템이 동기화됩니다(syncfs / sync_volume_np). 세 플랫폼 모두에서 실패 시 Failed to eject 오류가 보고됩니다 (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Servo Shield 예제. pca9685.py 드라이버와 servo.py 헬퍼를 포함하여 PCA9685로 구동되는 서보를 시연하는 15-Servo-Shield 예제 세트를 추가했습니다 (abd1dacb9).

  • 새로운 특징 검출 예제. 09-Feature-Detection 아래에 find_circles(Hough), find_rects(quad-threshold), find_numbers(LeNet 숫자 인식), 그리고 빠르고 견고한 선형 회귀 예제를 추가했습니다 (abd1dacb9).

  • 비디오 및 보드 제어 예제. SD 카드에서 스냅샷 스트림을 녹화하고 재생하는 Image Reader/Writer 예제, RTC 보드 제어 예제, 그리고 카메라 내 단위 테스트 실행기를 추가했습니다 (abd1dacb9).

기타 변경 사항 및 개선 사항

  • 99-Tests 예제 폴더(이전의 15-Tests)의 이름을 변경하고 unittests.py 실행기를 추가했습니다 (abd1dacb9).

버그 수정

  • main.py와 키포인트 파일의 저장을 강화했습니다. 쓰기 작업이 원자적 FileSaver 쓰기(쓴 후 확정)로 전환되었으며 (4fd4e89cf), main.py를 잘못된 위치에 기록하던 누락된 경로 구분자가 수정되었습니다 (1865ffd31).

  • 모든 포트에서 직렬 읽기 버퍼를 1MB로 확대하고 읽기 정지 타임아웃을 늘려 QSerialPort의 데이터 누락 문제를 해결함으로써 직렬 안정성을 개선했습니다 (7f68368dc).

  • MainWindow를 익스포트하고 표시 이벤트 신호를 발신하여 메인 창이 표시될 때 OpenMV 플러그인이 레이아웃을 복원할 수 있도록 함으로써 창 분할기 레이아웃 결함을 수정했습니다 (4895e20b7).

플랫폼 및 도구 지원

  • Qt Creator 베이스: 4.0.2.

  • Raspberry Pi 같은 크로스 컴파일 임베디드 Linux 대상에 대한 빌드 지원을 추가했습니다. Qt 폰트를 배포하고, chrpath/RPATH 처리를 수정하며, 호스트 바이너리로 번역을 빌드하고, 누락된 qml 의존성을 추가합니다 (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • 번들 OpenMV 펌웨어를 2.4.1에서 2.5.0으로 업데이트했습니다 (96458ccef).

  • 펌웨어 폴더 OMV2/OMV3의 이름을 OPENMV2/OPENMV3로 변경하고, 업데이트되어 다시 빌드된 STM32F427(OPENMV2) 및 STM32F765(OPENMV3) 펌웨어와 부트로더 바이너리를 제공했습니다 (abd1dacb9).

호환성을 깨는 변경 사항

없음. 이 릴리스는 사용자에게 보이는 워크플로우나 동작 변경을 일으키지 않으며, 기존 프로젝트는 변경 없이 계속 작동합니다.