BOSIO × BoAYo 개발 문서 전체 소스 ↗
시작 · 시스템 구조

세 계층의 연결

센서, FPGA 출력 코어, Bosio 창 관리자와 BoAYo 앱의 책임을 나눕니다.

앱과 Bosio 소프트웨어는 창 이미지와 정이십면체 프레임버퍼를 만들고, 출력 코어 RTL은 현재 자세에서 화면의 각 픽셀이 어느 삼각 셀을 읽을지 결정합니다.

실시간 입력과 영상 경로

센서 · FPGAGY-521 → I²C 센서 허브
yaw·pitch·roll 96비트
창 합성 · ARM앱 SDK → Bosio 프로세스 간 통신
창 합성 → 삼각 셀 색
영상 출력 · FPGA투영 계수·셀 조회
RGB 영상 → HDMI

센서 허브는 AXI4-Stream으로 출력 코어에 직접 연결됩니다. 센서 데이터를 영상 프레임마다 Python에서 처리하지 않습니다. 런처와 앱 창의 위치·이미지는 Linux에서 관리합니다.

계층별 책임

구성 요소하는 일다음 단계에 전달하는 데이터
출력 코어 RTL센서 자세에서 Q24 투영 계수 생성, 면·타일·셀 선택, 프레임버퍼 조회, RGB 영상 출력RGB24 AXI4-Stream 영상
Bosio 창 관리자창 겹침·포커스·구면 위치, 안티에일리어싱, 색상표와 삼각 셀 합성정이십면체 장면과 BPT1 타일 갱신 데이터
BoAYo 런처·SDK런처 패널, 앱 이미지 아래 캡션, 창별 입력 처리Bosio로 보내는 RGB24 창 이미지
앱 프로세스자기 창의 이미지 만들기와 이벤트 처리BoAYo SDK 함수 호출

여러 창이 하나의 프레임버퍼에 표시되는 방식

런처 패널은 Bosio의 always_on_top 창 하나로 등록됩니다. 실행된 앱은 각각 자기 Bosio 창을 만듭니다. Bosio 창 관리자가 보이는 창을 정이십면체 셀에 합성해 출력 코어로 보내므로, BoAYo 앱 하나가 프레임버퍼 전체를 차지하지 않습니다.

앱이 보내는 RGB24 이미지에는 픽셀별 투명도 정보가 없습니다. Bosio는 창 외곽의 경계에서 아래 창의 색과 혼합해 계단 현상을 줄이지만, 앱 이미지에 투명도를 지정하는 기능은 제공하지 않습니다.

창 내용 갱신과 HDMI 출력 속도

창 내용이 바뀌면 Bosio가 해당 타일을 새로 합성해 전송합니다. 출력 코어는 이미 저장된 셀 색으로 HDMI 영상을 계속 만듭니다. 따라서 창 변경이 화면에 반영되는 속도HDMI가 출력하는 프레임률은 구분해서 측정해야 합니다.

원본: BoAYo 구조 문서, 출력 코어 소스, 창 관리자 소스.

BOSIO × BoAYo · 문서 저장소 · 구현 원본은 각 소스 저장소에서 확인하세요.