# Serial Write

Bu fonksiyon bloğu, seçilen bir seri bağlantı üzerinden ham veri göndermek için kullanılır. Basit, bloklamayan iletimler için tasarlanmıştır ve yaygın veri türlerini dönüştürme, satır sonu ekleme ve yeniden gönderim davranışını kontrol etme gibi kullanışlı UI seçenekleri sunar.

## 📥 Girdiler

* `Enable`\
  Gönderimi etkinleştirmek veya devre dışı bırakmak için kullanılır. `false` olduğunda blok veri göndermez.
* `Data`\
  Gönderilecek yük. Seçilen kontrollere bağlı olarak sayı, metin, liste, boolean veya byte-benzeri değerleri kabul eder.
* `ConnId`\
  Kullanılacak seri bağlantının kimliği. Bir connection manager bloğu tarafından üretilen connection id değerini sağlayın.

## 📤 Çıktılar

Bu fonksiyon bloğu herhangi bir çıktı üretmez.

## 🕹️ Kontroller

* `Data Type`\
  Gönderilmeden önce `Data` değerinin nasıl dönüştürüleceğini seçin. Yaygın seçenekler: string, integer, float, boolean, byte/hex formatları.
* `Line ending`\
  Yükün sonuna eklenecek takılı diziyi seçin. Seçenekler genellikle LF, CRLF, CR veya none (yok) içerir.
* `Send policy`\
  Ne zaman gönderim yapılacağını belirleyin:
  * `On change`: Son gönderilen byte yükünden farklıysa gönderir.
  * `Always`: Her değerlendirmede ve etkin olduğunda gönderir.

## 🎨 Özellikler

* Yaygın formatlar için veri tipi dönüşümü; insan dostu değer girin, blok uygun byte dizisini gönderir.
* Uzak cihaz beklentilerine uyacak şekilde yapılandırılabilir satır sonu.
* Gereksiz tekrarları önlemek için gönderim politikası.
* Veri gönderimi sırasında akışın çalışmaya devam etmesini sağlayan bloklamayan yazma davranışı.
* `ConnId` değerleri sağlayan harici connection manager blokları ile çalışır.

## 📊 Çalışma Mekanizması

Blok değerlendirildiğinde:

1. `Enable` girişi etkin değilse veya boşsa hiçbir şey gönderilmez.
2. Geçerli `Data` ve `ConnId` varsa blok, seçilen `Data Type`a göre `Data`yı dönüştürür ve seçilen `Line ending`i ekler.
3. `Send policy` `On change` ise hazırlanan yük önceki yük ile karşılaştırılır; aynıysa gönderim atlanır.
4. Hazırlanan byte yükü, `ConnId` ile referanslanan seri bağlantıya sistemi engellemeden gönderilir.

## 📝 Kullanım Talimatları

1. Bir seri bağlantı oluşturun veya seçin ve bağlantı kimliğini not edin.
2. Bu kimliği `ConnId` girişine verin.
3. Göndermek istediğiniz değeri `Data` girişine bağlayın.
4. Veri formatına uyan `Data Type` kontrolünü ayarlayın (ör. hex dizeleri için `HexBytes`, ham byte listeleri için `Bytes`).
5. Alıcı cihaz bir satır sonu bekliyorsa uygun `Line ending`i seçin.
6. Sürekli aynı değeri akış halinde gönderiyorsanız gereksiz tekrarları önlemek için `Send policy`i kullanın.
7. Göndermeyi başlatmak/durdurmak için `Enable`i değiştirin.

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

* `Serial Connect` veya sistemin connection manager blokları ile birlikte kullanarak `ConnId` değerlerini alın ve yönetin.
* Göndermeden önce veriyi hazırlamak ve doğrulamak için `String Input` veya `Number Input` bloklarını kullanın.
* Yapısal stringlere (ör. JSON) ihtiyaç duyuyorsanız `String Merge` veya `Data to JSON` ile karmaşık yükleri önceden biçimlendirin.
* Gönderilen verileri kaydetmek veya dışa aktarmak isterseniz downstream’e `CSV Export` veya görsel loglar için `Image Logger` ekleyin.
* Mantıksal koşullara bağlı göndermeler için `Logic Input`, `And`, `Or` veya `Greater` bloklarıyla gönderimi kontrol edin.
* Geliştirme sırasında giden yükleri incelemek için `Debug Input` kullanın.

## 🛠️ Sorun Giderme

* Hiçbir şey gönderilmiyor: `Enable`in aktif olduğunu, `Data`ın boş olmadığını ve `ConnId`in aktif bir bağlantıyı işaret ettiğini doğrulayın.
* Alıcı cihaz mesajları yok sayıyor: seçilen `Line ending`i kontrol edin ve farklı seçenekleri (LF, CRLF, CR, none) deneyin.
* Aynı mesajların gönderilmemesi gerektiği halde gönderilmiyor: tekrar yapılmasını istiyorsanız `Send policy`i `Always` olarak ayarlayın.
* Hattaki beklenmeyen byte’lar: sağladığınız değerin formatına uygun `Data Type` kullandığınızdan emin olun (ör. hex stringler için `HexBytes`, sayısal listeler için `Bytes`).


---

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