main()
La entrada de dibujo del guión del instrumento. CapDrive llama a main() para obtener esta pantalla y es responsable del diseño, dibujo y posterior actualización.
Proceso de ejecución
Cada vez que acepta una nueva entrada, CapDrive actualiza los datos actuales y el entorno de visualización, ejecuta el archivo completo en el nuevo alcance local y luego llama al main() definido esta vez. La función devuelve la matriz View, View incorporada o el contenido vacío de forma sincrónica.
Las recuperaciones y cálculos de nivel superior también se actualizan en cada ejecución. Las variables ordinarias se reinicializan cada vez y se utiliza $sessionStorage para el estado de intervalo.
Los cambios en la entrada actual, la definición de entrada o el entorno de visualización activarán la ejecución y no existe una frecuencia fija uniforme. Las entradas idénticas se omiten y solo se mantienen en procesamiento las últimas entradas pendientes. El crecimiento de la ventana del historial, la limpieza y los cambios en el tiempo de muestreo interno no activan la ejecución individualmente; Los cambios de entrada de tiempo definidos explícitamente aún se activan. La animación la realiza de forma independiente el lado del dibujo.
Ejemplo: dibujar con las lecturas actuales
Seleccione la velocidad en la configuración del medidor. Cada llamada lee la última velocidad, genera números y unidades; muestra una línea horizontal cuando no hay velocidad disponible.
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>
);
}
Estado entre llamadas a funciones
Las variables locales ordinarias solo se utilizan para esta llamada de función. Utilice $sessionStorage cuando necesite conservar el valor máximo, el conteo, etc. dentro del viaje actual; está aislado por el disparo y la instancia del instrumento, y se borrará cuando finalice el disparo o se recargue el instrumento.
Cuando se necesita una lista, se puede generar View a partir de la matriz map. Proporciona un key estable para los elementos que se actualizan o redistribuyen para que las actualizaciones de dibujo y las animaciones sigan correspondiendo al mismo elemento.
Requisitos operativos y errores.
main() debe completarse dentro de una llamada sincrónica. Evite bucles continuos, esperas de bloqueo y estructuras de datos que crezcan sin límites; el tiempo de ejecución limitará el tiempo de ejecución, los pasos y el tamaño del contenido del dibujo. Los valores en los atributos del dibujo deben ser números finitos y los resultados del cálculo deben abordar primero las mediciones ausentes, la división por cero, etc.
Los errores de script se muestran en el estado de error del instrumento y en los registros correspondientes. La vista previa se utiliza para verificar el código de visualización; Las lecturas reales del medidor dependen de los datos seleccionados y de la fuente de datos actual.