# Serial Read

Bu fonksiyon bloğu, bir seri bağlantıdan en son satırı okur (bloklamayan) ve seçilen veri tipine dönüştürür. Eski (stale) veya hatalı biçimlendirilmiş girdilere karşı dayanıklı olacak şekilde; gerektiğinde kullanıcı tarafından belirlenen bir varsayılan değeri döndürür.

## 📥 Girdiler

* `Enable` — Okumayı etkinleştiren/devre dışı bırakan boolean giriş soketi.
* `ConnId` — Hangi seri bağlantıdan okunacağını seçen generik giriş soketi (bağlantı kimliği).

## 📤 Çıktılar

* `Data` — En son dönüştürülmüş değeri (veya stale/çözümleme başarısız olduğunda varsayılan değeri) ileten generik çıkış soketi.

## 🕹️ Kontroller

* `Stale timeout (s)` — Yeni bir satır gelene kadar ne kadar bekleyeceğini ayarlayan metin girişi (saniye).
* `Data Type` — Gelen satırların dönüştürülmesi için seçilecek açılır liste. Mevcut seçenekler: `String`, `Int`, `Float`, `Boolean`, `HexInt`, `Bytes`.
* `Default (on stale/parse fail)` — Taze veri yoksa veya dönüştürme başarısız olursa döndürülecek varsayılan değeri belirleyen metin girişi. `Bytes` için hex karakterleri girin (örn. `AA55`).

## 🎯 Özellikler

* En son kullanılabilir satırın bloklamayan şekilde okunması.
* Eski verilerin (stale) tespit edilmesi, böylece eski satırların sonsuza dek iletilmemesi.
* Birden çok dönüşüm tipi ve yapılandırılabilir bir yedek (fallback) değeri.
* Daha büyük senaryolara entegre etmek için basit girişler ve çıkışlar.

## 📝 Kullanım

1. Aktif bir seri bağlantıya işaret eden bir bağlantı kimliğini `ConnId` girişine verin.
2. Bloğu kaldırmadan okuma başlatmak/durdurmak için `Enable` kullanın.
3. Gelen verinin ne kadar taze olması gerektiğini tanımlamak için `Stale timeout (s)` değerini ayarlayın.
4. Gelen satırları dönüştürmek için istenen `Data Type` seçeneğini seçin.
5. Taze veya çözümlenebilir veri olmadığında blok çıkışının ne olacağını kontrol etmek için `Default (on stale/parse fail)` değerini belirleyin.
6. `Data` çıkışından gelen değeri kayıt, görselleştirme veya yayınlama gibi sonraki bloklarda kullanın.

## 📊 Değerlendirme

* Etkinleştirildiğinde, blok seçilen bağlantıdan en son satırı okumaya çalışır.
* Yapılandırılan `Stale timeout (s)` içinde yeni bir satır gelmezse blok yapılandırılmış varsayılan değeri yayar.
* Seçilen veri tipine dönüştürme başarısız olursa blok yapılandırılmış varsayılan değeri yayar.
* `Bytes` tipi için blok, varsayılanı onaltılık (hex) metin olarak kabul eder.

## 💡 İpuçları ve Püf Noktaları

* Geliştirme sırasında ham sonuçları kaydetmek veya incelemek için `Debug Input` kullanın.
* Seri okumalarını yapılandırılmış kayıt veya toplu dışa aktarım için `Data to JSON` veya `CSV Export`a yönlendirin.
* İşlenmiş değerleri yayınlamak için `MQTT Publish` kullanın veya bir web servisine göndermek için `REST API - Post` kullanın.
* Değerleri daha sonra kullanmak üzere `Data Write Local` veya `Data Write Global` ile kaydedin ve ilgili okuma bloklarıyla geri alın.
* Sayısal verileri gerçek zamanlı izlemek ve eğilimleri görmek için `Scope` ile çizdirin.
* Gelen değerlere göre eylem tetiklemek için `Logic Input` veya karşılaştırma bloklarıyla birleştirin (ör. sayısal değer bir eşik değeri aşarsa alarm tetikleme).

## 🛠️ Sorun Giderme

* `Data` üzerinde veri görünmüyorsa, verilen `ConnId`'nin gerçekten aktif bir bağlantıya işaret ettiğini doğrulayın.
* Çıktı her zaman varsayılan değerse, `Stale timeout (s)` değerini artırın veya kaynağın etkin şekilde satır gönderdiğinden emin olun.
* Sayısal veya boolean türü için dönüşüm başarısız oluyorsa, cihazdan gelen ham metin formatını kontrol edin ve varsayılan değeri buna göre ayarlayın.
* `Bytes` türü için varsayılanın geçerli onaltılık karakterler (boşluk veya geçersiz karakter yok) olduğundan emin olun.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/turkish/fonksiyon-bloklari/input-output/communication/serial-read.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
