$data · Sürüş verileri

$data bu enstrümanın giriş tanımlayıcısına göre veri sağlar: current mevcut giriştir ve history mevcut yolculuğun son 30 saniyesinin giriş örnekleridir.

okunabilir veri

Gösterge ayarları → Giriş bağlantıları'yi açmak için düzenleyicinin üst kısmındaki enstrüman adına tıklayın. Girişin adını, tanımlayıcısını ve türünü tanımlamak için Parametre yapılandırması'e geçin; giriş bağlamayı döndürün ve yerel değerleri girin veya OBD girişi için kendi araç parametrelerinizi seçin. Temel veriler uygulama tarafından otomatik olarak sağlanır.

Betik girdiye $data.current.<identifier> aracılığıyla erişir. Örneğin, temel hız girişi speed, $data.current.speed kullanır ve OBD girişi coolant, $data.current.coolant kullanır. Alan adı, araç parametresi UUID'sinden ve cihaz adından bağımsızdır. Araç parametrelerinin değiştirilmesi yalnızca yeniden bağlamayı gerektirir; giriş tanımlayıcısının değiştirilmesi kodun değiştirilmesini gerektirir.

tip Yapılandırma ve betiğin ne okuduğu
Sayı Varsayılan değeri ve isteğe bağlı üst ve alt limitleri ayarlayın; komut dosyası sayıyı doğrudan okur; örneğin $data.current.limit.
Metin Varsayılan metni ayarlayın; komut dosyası dizeyi doğrudan okur; örneğin $data.current.label.
Anahtar Varsayılan anahtar durumunu ayarlayın; komut dosyası, $data.current.showUnit gibi Boolean değerini doğrudan okur.
Seçim İsteğe bağlı metni ve varsayılanları tanımlayın; komut dosyası, $data.current.style gibi seçilen dizeyi okur.
Temel veriler Hız, G değeri, konum veya zaman gibi bir kaynak seçin; okuma yapısı kaynağa bağlıdır.
OBD verileri Beklenen değer türünü tanımlayın ve giriş bağlamada cihaz ve araç parametrelerini seçin; okuma { value, unit } veya null şeklindedir.

Aşağıdaki alan tablosu örnek tanımlayıcılar kullanır ve her sayacın bu alanlara otomatik olarak sahip olduğu anlamına gelmez. Gerçek arayüz ve tip istemleri, mevcut cihazın giriş tanımına göre oluşturulur.

Ölçüm yapısı ve eksik değerler

Temel miktar değeri ve OBD okuması genellikle { value, unit } şeklindedir; konum, G değeri, tutum vb. gibi temel verilerin kendi bileşenleri vardır ve kayıt durumu bir Boolean değeridir. Değerler, metinler, anahtarlar ve seçimler, yapılandırılmış değerlerini doğrudan döndürür.

OBD bağlı olmadığında veya yapılandırma mevcut olmadığında, girişin tamamı null olur; bağlama mevcut ancak geçici olarak eksik olduğunda, { value: null, unit } korunur. Geçerli 0 değerini koruyarak eksik testleri kontrol etmek için reading?.value == null kullanın. OBD'nın value'si bir eşleme değişmezi olabilir; tür bildirimi çalışma zamanı dönüşümü gerçekleştirmez ve sayısal yöntemler çağrılmadan önce türün kontrol edilmesi gerekir.

Geçmiş penceresi ve zaman birimi

$data.history, Mevcut yolculuk 30 saniye sürüyor'nin en eskiden en yeniye doğru sıralanmış seçilmiş verileridir. Ana bilgisayar, toplanan tüm verileri birleşik bir şekilde kaydeder ve ardından bunları cihazın giriş parametrelerine göre gerektiği şekilde birleştirir; mevcut pencere cihaz açılarak okunabilir. Çizimi duraklatmak, oluşturmayı atlamak veya çalışan bir örneği yeniden oluşturmak pencereyi kaybetmez. Yolculukları sonlandırırken veya değiştirirken veya çalışma modlarını değiştirirken sıfırlayın; etkin bir yolculuk olmadığında geçmiş penceresi boştur.

Geçmiş, bitişik örnekler en az 200 ms ile ayrılmış olacak şekilde maksimum 5 Hz'de örneklenir ve maksimum 151 öğe tutulur. Yalnızca görüntüleme ortamındaki değişikliklerin neden olduğu tekrarlanan örnekleme süreleri ve yeniden çizim, örnekleri artırmayacaktır; Veriler durduktan sonra ana bilgisayar, süresi dolmuş örnekleri komut dosyası yürütmeye gerek kalmadan monoton bir sürede silmeye devam edecektir. Bu üst sınır, current'nin bu son girişi okumasını sınırlamaz ve ek OBD sorguları başlatmaz.

Her örnek current ile tutarlı bir alan yapısına sahiptir ve eksik testler içerebilir. Giriş tanımlarını veya bağlamaları değiştirmek pencereyi yeniden birleştirir; değerler, anahtarlar, metin ve seçenekler gibi sabit parametreler geçerli yapılandırmayı kullanır. Veri güncellemesi, JS'nin yürütülüp yürütülmeyeceğine karar vermek için yalnızca $data.current'nin gerçek içeriğini karşılaştırır. Değerler, birimler ve grup alt alanlarının tümü karşılaştırmaya dahil edilir; aynı değere sahip yeni yanıtlar, tarihsel büyüme veya kesinti, dahili toplama süresi ve seçilmemiş kaynak güncellemeleri, yürütmeyi ayrı ayrı tetiklemez. Ana bilgisayar tüm pencereyi korumaya devam eder ve current bir sonraki değiştiğinde komut dosyası en son geçmişi alır. Açıkça seçilen zaman damgaları veya kaydedilen süreler current'ya aittir ve değer değişiklikleri yine de yürütmeyi tetikleyecektir. OBD Okuma, örnekleme sırasındaki değeri, birimi ve eksik ölçüm durumunu korur ve sonraki okumalarla doldurulmayacaktır; temel hız mevcut ekran birimine göre dönüştürülecektir. elapsed.value geçerli yolculuk sırasında geçen saniye sayısıdır, timestamp.value milisaniyelik zaman damgasıdır ve movingTime.value saniye cinsinden seyahat süresidir. Zaman eğrilerini çizerken gerçek zamanı kullanın ve eksik ölçümlerden kaynaklanan kesme noktalarını koruyun.

Örnek: Hız ve OBD parametrelerinin aynı anda görüntülenmesi

İki giriş tanımlayın: speed tanımlayıcılı temel hız girişi ve coolant tanımlayıcılı OBD girişi. Yerel araç parametrelerini ikincisine bağlayın. Aşağıdaki örnek, okumaları ve birimleri ilgili giriş tanımlayıcılarına göre görüntüler; cihazı yeniden bağlarken örnek kodda herhangi bir değişiklik yapılmasına gerek yoktur.

function main() {
  const speed = $data.current.speed;
  const parameter = $data.current.coolant;
  return (
    <VStack spacing={8}>
      <Text fontSize={40}>
        {speed?.value == null ? '—' : speed.value.toFixed(0)}
      </Text>
      <Text>{speed?.unit ?? $env.speedUnit}</Text>
      <Text>
        {parameter?.value == null ? '—' : parameter.value.toString()}
      </Text>
      <Text>{parameter?.unit ?? ''}</Text>
    </VStack>
  );
}

Güncellemeler ve veri kaynakları

Her komut dosyası yürütmesi en son girişi kullanır; gerçek frekans veri kaynağına, giriş değişikliklerine ve işlem süresine göre belirlenir. current ve history verilerin kopyalarını döndürür; bunların değiştirilmesi sensör okumalarını veya araç konfigürasyonunu değiştirmez.

Temel hız gibi alanlara geçerli yolculuk verileri değiştirme ayarları uygulanacaktır. OBD parametresinin okunması doğrudan parametrenin kendi okumasını ve birimini kullanır. Sorgu aralıkları, araç yanıtları ve diğer istekler asıl güncellemeyi etkileyecektir. Veri kullanılabilirliği ayrıca konumlandırma, tanıma durumu ve cihaz bağlantısından da etkilenir; düzenleyici önizlemeleri ayrı simüle edilmiş girişler kullanır.

Alan

current{ [identifier: string]: number | string | boolean | object | null }

Seçilen verilerin en son değerleri

history{ [identifier: string]: number | string | boolean | object | null }[]

Son 30 saniyenin seçili verileri, eskiden yeniye

current.speed{ value: number | null; unit: "km/h" | "mph" }

Hız

current.gForce{ longitudinal: number | null; lateral: number | null; combined: number | null; unit: string }

G kuvveti

current.heading{ direction: number | null; accuracy: number | null; unit: string }

Burun yönü

current.location{ latitude: number | null; longitude: number | null; unit: string }

Konum

current.vehicleAttitude{ roll: number | null; pitch: number | null; unit: string }

Araç duruşu

current.locationAccuracy{ value: number | null; unit: "m" }

Konum doğruluğu

current.altitude{ value: number | null; unit: "m" }

Rakım

current.distance{ value: number | null; unit: "m" }

Mesafe

current.movingTime{ value: number | null; unit: "s" }

Hareket süresi

current.timestamp{ value: number | null; unit: "ms" }

Ölçüm zamanı

current.elapsed{ value: number | null; unit: "s" }

Kayıt süresi

current.recordingboolean

Kayıt yapılıyor

current.coolant{ value: number | string | null; unit: string | null } | null

OBD verileri

current.limitnumber

Sayı

current.labelstring

Metin

current.showUnitboolean

Anahtar

current.stylestring

Seçim