main()
기기 스크립트의 도면 항목입니다. CapDrive는 이 화면을 얻기 위해 main()을 호출하고 레이아웃, 그리기 및 후속 새로 고침을 담당합니다.
실행과정
새로운 입력을 받아들일 때마다 CapDrive는 현재 데이터와 디스플레이 환경을 업데이트하고 새로운 로컬 범위에서 전체 파일을 실행한 다음 이번에 정의된 main()을 호출합니다. 이 함수는 내장된 View, View 배열 또는 빈 콘텐츠를 동기적으로 반환합니다.
각 실행 시 최상위 수준 가져오기 및 계산도 업데이트됩니다. 일반 변수는 매번 다시 초기화되며 $sessionStorage은 범위 상태로 사용됩니다.
현재 입력, 입력 정의 또는 디스플레이 환경이 변경되면 실행이 트리거되며 균일하게 고정된 빈도는 없습니다. 동일한 입력은 건너뛰고 보류 중인 최신 입력만 처리에 유지됩니다. 기록 창 증가, 정리 및 내부 샘플 시간 변경은 실행을 개별적으로 트리거하지 않습니다. 명시적으로 정의된 시간 입력 변경은 여전히 트리거됩니다. 애니메이션은 드로잉 측에서 독립적으로 수행됩니다.
예: 현재 측정값으로 그리기
미터 설정에서 속도를 선택하세요. 각 호출은 최신 속도를 읽고 숫자와 단위를 생성합니다. 속도를 사용할 수 없을 때 수평선을 표시합니다.
function main() {
const speed = $data.current.speed;
return (
<VStack spacing={8}>
<Text fontSize={64} color={$env.foreground}>
{speed?.value == null ? '—' : Math.round(speed.value)}
</Text>
<Text fontSize={16} color={$env.accent}>
{speed?.unit ?? $env.speedUnit}
</Text>
</VStack>
);
}
함수 호출 사이의 상태
일반 지역 변수는 이 함수 호출에만 사용됩니다. 현재 여행 내에서 최고 값, 횟수 등의 상태를 유지해야 할 경우 $sessionStorage을 사용하세요. 이는 트립 및 계측기 인스턴스에 의해 격리되며 트립이 종료되거나 계측기가 다시 로드되면 지워집니다.
목록이 필요한 경우 map 배열에서 View을 생성할 수 있습니다. 그리기 업데이트 및 애니메이션이 계속해서 동일한 항목에 해당하도록 업데이트하거나 리플로우하는 항목에 대해 안정적인 key을 제공합니다.
운영 요구 사항 및 오류
main()은 동기 호출 내에서 완료되어야 합니다. 연속 루프, 차단 대기 및 무한히 커지는 데이터 구조를 피하세요. 런타임은 실행 시간, 단계 및 그리기 내용 크기를 제한합니다. 도면 속성의 값은 유한한 숫자여야 하며 계산 결과는 먼저 누락된 측정값, 0으로 나누기 등을 처리해야 합니다.
스크립트 오류는 기기 오류 상태 및 해당 로그에 표시됩니다. 미리보기는 디스플레이 코드를 확인하는 데 사용됩니다. 실제 미터 판독값은 선택한 데이터와 현재 데이터 소스에 따라 달라집니다.