> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/turkish/fonksiyon-bloklari/blocks-reference/input-output/communication/serial-read.md).

# 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.
