버튼을 눌렀다는 사실과 장치가 수행했다는 사실을 나눈다
모바일에서 속도2를 입력하고 전송을 눌렀다. 화면 숫자가 바뀌고 연결 표시가 녹색이어도 장치가 그 명령을 접수/실행했는지, 지금 어떤 속도인지 알 수 없다. 단위/축·형상 버전이 다르면 같은 숫자도 다른 의미가 된다.
M26.04의 기구/센서축·형상과 M04.05의 요청/접수·만료를 UI까지 연결한다. 이번 R-UI는 가상 단일축 속도요청의 기록 분석이다. 실제 모바일 앱/제어 서버를 만들거나 장치에 명령을 보내는 활동이 아니다. M26.02 균형 예제의5ms 관문과도 다른 제공 계약이며 그 한도를 여기 숫자로 바꾸지 않는다.
입력 초안·전송 요청·관측을 다른 필드에 둔다
제공 명령은 target_shaft_speed_rad_s=2, 범위±20rad/s, 축sensor_shaft의+z다. 장치/세션 식별자·epoch/seq·schema/기구/보정 버전과 유효 기간/기산점, 접수/거부·오류 근거가 따라야 한다. 값/단위·부호/축과 버전을 설명하지 않고 slider의0~100을 바로 전력/속도로 해석하지 않는다.
그림 M26.05-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
| UI 필드/상태 | 의미와 필요한 근거 |
|---|---|
| 입력 초안 | 아직 보내지 않은 사용자의 목표/단위·범위. 현재 장치값이 아님 |
| 전송/응답 대기 | 특정 요청ID/epoch/seq의 전송 기록·기산점/대기 마감 |
| 접수/거부 | 같은 요청을 가리키는 ACK/거부 이유·장치 측 조건 |
| 장치 현재 상태 | 원본 clock/epoch·seq/시각/버전·필드별 유효성 |
| 실제 관측 | 센서 출처·단위/축·원본/수신 시각·현재값/과거값 분리 |
| 결과 미확인 | 대기 만료/연결 단절·근거 부족. 미접수/미실행 확정과 다름 |
화면에2rad/s를 그렸다는 이유로 관측값을2로 채우지 않는다. 입력 초안·접수된 목표·실제 관측을 나눠 보여야 오차/지연과 오래된 상태를 판단할 수 있다. 마지막 정상 관측은 시각과 함께 과거 값으로 남기며 단절 시 현재0으로 바꾸지 않는다.
ROS2 Jazzy GoalStatus도 ACCEPTED/EXECUTING/CANCELING·종결 상태를 구분한다. R-UI가 ROS action을 실행했다는 뜻은 아니다. 상태 이름만으로 물리 성과를 덧붙이지 말고 그 응용의 완료 기준/관측 근거를 연결한다. 정지/취소 요청도 접수와 실제 정지 관측이 별도다.
같은 요청을 다시 보내는 것과 새로운 의도를 구분한다
미전송 setpoint 초안은 계약에 따라 최신 입력으로 정리할 수 있다. 하지만 이미 보낸 요청의ID에 다른 값을 넣으면 같은 요청의 내용 충돌이다. 전송한 논리 요청의 내용을 바꾸거나 상대 이동/시작·정지 같은 서로 다른 사건을 임의로 합치지 않는다.
ACK를 잃었을 때의 동일ID/내용 재시도·중복 기록, 새 seq의 별도 의도, 이전 epoch의 거부와 재시도 횟수/전체 마감을 명시한다. 재연결/새 화면 방문만으로 예전 입력을 자동 전송하지 않는다. 오래된 대기 큐의 명령이 뒤늦게 실행되는지와 장치의 명령 lease·현재 상태/권한을 확인해야 한다.
통신 heartbeat는 연결 관측이지 명령을 계속 유지하겠다는 현재 의도·출력 허가/센서 정상의 증거가 아니다. UI가 닫히거나 호스트가 지연돼도 장치 쪽 유효 기간/차단 정책은 별도로 동작해야 하며 실제 시간/고장 검증은 따로 필요하다.
UI 지연·응답 왕복·표시 지연의 기산점을 적는다
다음은 같은 호스트 UI-A 단조 clock/ms의 제공 사건 기록이다. 탭/앱/서버·MCU 시각을 섞지 않았다. ACK는 해당 요청의 응답 수신/식별 기록이며 display는 표시 처리 기록이다. 실제 휴대기기 화면/네트워크를 측정한 것이 아니다.
| 사건 | UI-A 시각 |
|---|---|
| 입력/전송 의도 발생 | 100ms |
| 요청 전송 기록 | 108ms |
| 해당 ACK 수신/식별 | 146ms |
| 표시 처리 기록 | 154ms |
입력→전송 대기는8ms, 전송→ACK의 왕복 시간은38ms, 입력→표시는54ms다. ACK→표시는8ms다. 어느 값을 '지연'으로 보고하는지 이름/기산점·끝 사건을 적어야 한다.38ms를 명령의 물리 반응 시간이나 순수 네트워크 한 방향 지연으로 쓰지 않는다.
R-UI의 ACK 대기를 전송부터50ms로 정하면 마감은108+50=158ms, ACK146ms는 그 안이다. 입력100ms부터 기산한 값이나 표시154ms와 서로 바꾸지 않는다. 이50ms는 제공 조건이며 장치 제어 주기/lease·관측 한도나 보편적인 추천값이 아니다. 전송량/실제 선로·처리 예산은 별도 확인한다.
표시 처리가400ms로 밀리는 변형에서는 같은 ACK가 제때 왔어도 사용자가 보는 상태가 현재임을 보장하지 않는다. 화면의 갱신 빈도·renderer/호스트/네트워크 대기와 장치의 제어 release/마감을 구분한다. 브라우저 타이머로 장치의 실시간 마감이 보장된다고 하지 않는다.
서로 다른 clock의 숫자를 바로 빼지 않는다
W3C High Resolution Time Level2는 단조 시간과 time origin·경과 시간의 의미를 구분한다. 이것이 다른 탭/서버·MCU의 숫자가 자동으로 같은 기준이라는 뜻은 아니다. 정확한 시간 기록 API를 쓰는 일과 일정 시간 안에 실행되게 하는 일도 다르다. 언어/API 문법을 여기서 반복하지 않는다.
별도의 신선도 기록에서 장치 MCU-B 표본 시각500ms, UI-A 수신/현재 시각150ms만 있다면150-500을 표본 나이로 쓰지 않는다. clock/epoch·단위와 변환 관계/오차가 필요하다. 수신 시각으로 원본 시각을 덮어도 문제가 해결되지는 않는다.
종이 예제로만 MCU-B의480~520ms 구간에서 변환 f(t)=t-380ms이고 현재 오차의 절댓값이2ms 이하라고 제공하자. 이 관계를 실제 동기화에서 측정한 것은 아니다. 장치500ms 표본은 UI-A의120±2ms, 즉118~122ms에 대응한다. UI-A now150ms에서 나이는28~32ms다.
R-UI는 표본 나이가0~30ms 안이라고 보장될 때만 신선도 조건을 통과한다고 정한다. 지금은 실제 나이가30을 넘을 수 있으므로 현재 유효성 미확인/새 정상 요청 불허다. 반드시 오래됐다고 확정한 것이 아니라 경계의 불확실성 때문에 통과시킬 수 없다는 뜻이다.
같은 변환으로 장치502ms 표본은120~124ms, 나이26~30ms로 시간 조건 안이다. 양 끝30ms를 포함한다고 주었기 때문이다. 나머지 버전/단위·관측/권한·상태/lease도 맞아야 한다.2ms는 이 제공 구간의 오차 상한이며 표준편차/신뢰구간이나 영원한 clock 보장이 아니다. 재부팅/시간원 변경·구간 밖에는 같은 관계를 자동 재사용하지 않는다.
지연 통계에서 늦은 응답과 미응답을 지우지 않는다
별도의 다섯 요청 기록에서 전송→ACK 시간은35/40/45/200ms/미응답이라고 주었다. 각 요청의 대기 한도를50ms로 두고 끝값을 포함한다. 기한 내 접수응답은3개, 늦은 ACK1개, 결과 미확인1개다.
기한 내 접수응답률은3/전체5=60%다. 관측된 ACK4개의 평균은(35+40+45+200)/4=80ms, 최대는200ms다. 두 지표의 분모/의미가 다르다. 미응답을0ms로 채우거나 응답이 없다는 이유로 전체 요청 분모에서 빼면 다른 성과를 보고하게 된다.
이60%는 실제 작업 성공률/정지 성공률이 아니다. 평균80ms나 작은 다섯 기록만으로 전체 시스템의 tail/최악 지연·모든 상황의 성능을 보장하지 않는다. 대기 중/실패·늦은 도착/실제 실행 미확인을 요청ID와 함께 남기고 원본 기록을 보존한다.
모바일 표시도 판단 근거를 유지한다
좁은 화면에서 목표/현재 관측·단위/축, 연결/요청 상태와 원본 시각/미확인을 구분한다. 녹색/빨강만으로 현재 정상·실패를 전달하지 않고 텍스트·이유를 같이 제공한다. W3C Use of Color 안내의 색상 외 정보 원칙과 연결한다. 특정 제품의 접근성 인증을 완료했다는 뜻은 아니다.
명령 의미가 변하는 작은 토글·모호한 숫자만 두지 말고 현재 입력과 전송할 의미를 읽을 수 있게 한다. 키보드/포커스와 상태 변화 설명도 검토한다. UI에 표시된 '연결'이나 '접수'가 장치의 현재 권한/안전·물리 상태를 대신하지 않는다.
기존 M34.01 관측 신선도의 합성 관측 모형과 M34.03 명령 감독을 선택 보충으로 연결한다. 그 합성 모형의 파라미터/상태를 R-UI의 실제 장치 결과로 복사하지 않는다.
다음 통합 시험으로 넘길 근거
요구/HSI·기구/firmware/schema/cal 버전, 요청ID/epoch/seq·원래 입력/단위/축, 전송/마감/ACK/표시 기록·각 clock, 관측 원본/수신·오차/유효성, 늦음/거부/미확인과 재시도/재연결 처리를 남긴다. M26.01 형상/요구와 기존 6장 재현/실증의 범위를 함께 기록한다.
기본 완료는 제공 UI/지연 기록을 계산하고 접수/현재 관측·물리 결과의 부족 근거를 설명한 상태다. 실제 모바일/서버·네트워크/장치의 응답성·실시간/정지·작업 성공을 입증한 것은 아니다. 다음 M26.06 통합 TEST/결함 분석에서 이러한 기록을 요구별 판정·결함/재검수·포트폴리오로 묶는다.