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.