v3.5.1
3.5.1은 안정화 및 품질 개선 릴리스입니다. 주요 변경 사항: 1↔1 Inverse3 그립 구성에 대한 자동 페어링, 새로운 GET /devices/{id} 웹소켓 세션이 열려 있지 않은 상태에서의 동작, 힘/위치 모드 전환 시 발생하는 삐걱거리는 소리의 해결, 그리고 지속적인 부하 하에서 자동 조정되는 서비스 틱 스케줄러.
주요 내용
- 1↔1 Inverse3 그립 설치 시 자동 페어링. Inverse3 그립 하나가 준비되면, SDK가 자동으로 페어링을 등록합니다 —
pen_attached또한 Minverse 활성화하면 다중 기기 환경에서 경로 오류를 방지할 수 있습니다. - 신선한
GET /devices/{id}세션이 열려 있지 않은 상태에서의 스냅샷. 펌웨어 v7.5 이상 Minverse Inverse3 Inverse3x / Minverse WebSocket 활동 여부와 관계없이 20Hz 간격으로 동작 상태를 확인합니다. v7.5 이전 펌웨어는 확인 과정을 건너뛰고 한 번만 경고 메시지를 표시합니다. - 힘/위치 교환 시 더 이상 삐걱거리는 소리가 나지 않습니다. 전환
set_cursor_force↔set_cursor_position슬롯 전용입니다. 틱 사이에는 기기당 최신 데이터만 유지됩니다. HARP 200ms 유휴 간격 우회 방법은 더 이상 유효하지 않습니다. - 자동 조정 틱 스케줄러. 메인 루프는 부하에 따라 디스패치 속도를 조절하므로, 느린 틱으로 인해 명령 대기열이 무한정 늘어나는 것을 방지합니다.
- 부하가 걸렸을 때 1-in-1-out 방식의 스트리밍 응답. WS 메시지당 스트리밍 응답은 세션당 초당 1회로 제한됩니다. 제한에 걸리면 이전 버퍼가 재생되므로, 시뮬레이션 루프가 차단되는 일은 없습니다.
recv().
내부 개선
디바이스
- 기기별 Inverse3 VerseGrip 페어링 등록 정보.
GET|POST|DELETE /devices/{sel}/paired_with이는 기기별 1:1 매핑입니다.POST양측의 갈등을 해소한다;DELETE선택한 항목을 지웁니다. selector는 하나의 ID로 해석되어야 합니다. - 펌웨어 v7.5 이상 버전에 대한 20Hz 모션 상태 설문조사.
GET /devices/{id}신선한 맛으로 돌아오다cursor_position,cursor_velocity,angular_position,angular_velocity50밀리초마다; 활성 세션에는 영향을 미치지 않습니다. - 무선 VerseGrip
set_extension_data속도 제어형. 서비스 틱 시점에 Drop-older/repeat-on-idle 파이프라인이 비워집니다. 이로 인해 과도한 전송으로 인해 무선 링크가 포화되는 일이 없어졌으며, 전송 부족으로 인해 오래된 값이 남는 일도 없어졌습니다.
세션
- 제어 전용 배치(강제/위치)를 위한 새로운 WS-receive 패스트 패스는 구성 정보를 인식하는 파이프라인을 건너뜁니다;
configure/set_profile/ 사용자 정의 명령어도 여전히 레이스-픽스를 거칩니다.
가시성
- 탐지 로그 기록 주기는 포트별로 설정되며, 지속 시간을 고려합니다. 블랙리스트에 등록된 각 포트는 독립적으로 제어되며, 반복되는
"...blacklisted: skipping"현재 라인에서는(×N)불길 사이에서 침묵에 휩싸인 진드기들을 위해. - WVG가 아닌 장치를 탐지할 때 무선 VerseGrip 감지 메시지가 더 이상 로그를 도배하지 않습니다.
수정 사항
POST /device.config.preset와 함께defaults또는arm_front이제 기기의 마운트 설정을 공장 초기값으로 재설정합니다(이전에는 아무런 동작도 하지 않았습니다).basis이 설정은 유지되므로, 앱에서 구성한 기본값이 마운트 사전 설정 변경 후에도 그대로 유지됩니다.force_render_full_state더 이상 누락된 스냅샷을 반환하지 않습니다config블록 일치하는 구성 정보가 동일한 WS 메시지에 포함되었을 때 — 스냅샷이 생성되기 전에 구성 경로가 동기식으로 처리됩니다.- 세션 간
force_render_full_state대상의 전체 스냅샷을 반환합니다. 이제 A와 B 모두 전체 페이로드를 볼 수 있습니다(이전에는 A가 스트리밍 데이터만 수신했음). - 알 수 없는 세션 간 명령어
target_session_id더 이상 요청-응답 루프에 걸리지 않습니다. 요청자는 자체 스냅샷과 함께session-command-dropped이벤트 (cross-session-unknown-target). - Minverse 보정 시 더 이상 경로 오류가 발생하지 않습니다. Minverse 보정해도 더 이상 Minverse 잠금 해제되지 않으며, 잉크웰 성공 헤더 브로드캐스트에 대해서도 동일한 수정 사항이 적용되었습니다.
- HTTP 장치 선택기 수락합니다
#1234그리고1234장치 ID로; 선택자 클래스 (inverse3,verse_grip)는 인덱스와 함께 작동하며, 404 메시지는 원래의 선택자 표현식을 그대로 유지합니다. - 무선 VerseGrip
ready이제 flag는 초기 장치 정보 핸드셰이크 시점에 활성화됩니다 — 이전에는 특정 재연결 경로에서 기기가 완전히 식별되기 전에 전환이 가능했습니다. - 키드 레이트 게이트(keyed-rate-gate) 기반 설정에 대한 런타임 변경 사항은 이제 다음 히트 시 적용됩니다 (기존: 첫 적용 시 고정되어 있었으며, 새로운 세션에서만 변경 사항이 반영됨).
잠재적인 호환성 문제
- HTTP 404 오류 메시지 통합 ~을 가로질러
basis,preset,mount,transform,force_gate:"{type} device #{id} not found"→"no device matches selector '{expr}'". 404번 세션도 마찬가지입니다. - 설정 글로브
devices/inverse*/...→devices/*inverse/...힘-스케일 이득, 힘-게이트 이득, 제어 타임아웃,safeties/expose_in_snapshot. 3.5.0 버전의 설정 파일에서 이전 리터럴을 사용하면 바인딩에 실패합니다. - 설정: 직렬화 전역 변수가 다음 위치로 이동되었습니다.
session/serialization/*(explicit_fields,force_complete_transforms,preview/*). 옛serialization/*경로는 여전히 사용 중단된 별칭을 통해 해결됩니다. 4.0 버전에서 제거될 예정입니다. - 현상: 메시지별 WS 응답을 틱 동기화 핸드셰이크로 사용하는 클라이언트는 지속적인 트래픽이 발생하는 상황에서 세션당 초당 최대 한 번의 응답만 수신합니다. 구성 변경 시 전송되는 전체 스냅샷에는 영향을 미치지 않습니다.
사용 중단
3.5.1 버전에는 해당 기능이 없습니다. ‘preview master’ 스위치는 곧 도입될 3.6 버전의 ‘silent-to-warn’ 파이프라인을 위한 비추천 기능 전환 작업의 기반이 되며, 첫 번째 비추천 기능 전환은 3.5.2 버전에서 진행될 예정입니다.