main()

La voce di disegno dello script dello strumento. CapDrive chiama main() per ottenere questa schermata ed è responsabile del layout, del disegno e del successivo aggiornamento.

Processo di esecuzione

Ogni volta che accetta un nuovo input, CapDrive aggiorna i dati correnti e l'ambiente di visualizzazione, esegue l'intero file nel nuovo ambito locale e quindi chiama il main() definito questa volta. La funzione restituisce l'array View, View integrato o il contenuto vuoto in modo sincrono.

Anche i recuperi e i calcoli di livello superiore vengono aggiornati a ogni esecuzione. Le variabili ordinarie vengono reinizializzate ogni volta e $sessionStorage viene utilizzato per lo stato di span.

Le modifiche all'input corrente, alla definizione dell'input o all'ambiente di visualizzazione attiveranno l'esecuzione e non esiste una frequenza fissa uniforme. Gli input identici vengono saltati e solo gli ultimi input in sospeso vengono mantenuti nell'elaborazione. L'aumento della finestra della cronologia, la pulizia e le modifiche all'ora del campione interno non attivano l'esecuzione individualmente; Le modifiche dell'input temporale esplicitamente definite vengono comunque attivate. L'animazione viene eseguita indipendentemente dal lato del disegno.

Esempio: disegnare con le letture attuali

Selezionare la velocità nelle impostazioni del misuratore. Ogni chiamata legge l'ultima velocità, genera numeri e unità; visualizza una linea orizzontale quando non è disponibile alcuna velocità.

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>
  );
}

Stato tra le chiamate di funzione

Le variabili locali ordinarie vengono utilizzate solo per questa chiamata di funzione. Utilizzare $sessionStorage quando è necessario conservare lo stato del valore di picco, del conteggio, ecc. nel viaggio corrente; è isolato per intervento e istanza dello strumento e verrà cancellato al termine dell'intervento o al ricaricamento dello strumento.

Quando è necessaria una lista, View può essere generato dall'array map. Fornisce un key stabile per gli elementi che si aggiornano o ridispongono in modo che gli aggiornamenti e le animazioni dei disegni continuino a corrispondere allo stesso elemento.

Requisiti ed errori operativi

main() deve essere completato all'interno di una chiamata sincrona. Evita cicli continui, attese bloccanti e strutture di dati che crescono senza limiti; il runtime limiterà il tempo di esecuzione, i passaggi e le dimensioni del contenuto del disegno. I valori negli attributi del disegno devono essere numeri finiti e i risultati del calcolo dovrebbero prima occuparsi dei misurazioni mancanti, della divisione per zero, ecc.

Gli errori di script vengono visualizzati nello stato di errore dello strumento e nei registri corrispondenti. L'anteprima viene utilizzata per verificare il codice visualizzato; le letture effettive del contatore dipendono dai dati selezionati e dalla fonte dati corrente.