Aşağıdaki resimdeki gibi bir karakter setini elimizdeki bir terminale gönderip, bir mekanizmayı tetikleyebiliyoruz.
Bu karakter setini Delphi tarafından nasıl / hangi formatta gönderebilirim.
Doğrudan $01$03$01$20$00$14$29$CF string olarak gönderiyorum. Fakat sonuç alamıyorum.
Yardımcı olabilir misiniz?
Öncelikle RS232 ile doğru Com port'u açabiliyor musunuz ? Eğer cevabınız evet ise yazdığınız değeri, GonderilecekDegisken := #$01#$06#$00#$22 ... şeklinde atadıktan sonra gönderin.
Ayrıca kullandığınız program yani "Hercule" ne yazarsanız onu gönderir. Yani "$" işaretini Hex olarak algılamaz. Oysa Delphi'de bunun karşılığı HEX demektir.
(29-09-2021, Saat: 13:48)enigma Adlı Kullanıcıdan Alıntı: [ -> ]Öncelikle RS232 ile doğru Com port'u açabiliyor musunuz ? Eğer cevabınız evet ise yazdığınız değeri, GonderilecekDegisken := #$01#$06#$00#$22 ... şeklinde atadıktan sonra gönderin.
Ayrıca kullandığınız program yani "Hercule" ne yazarsanız onu gönderir. Yani "$" işaretini Hex olarak algılamaz. Oysa Delphi'de bunun karşılığı HEX demektir.
Evet com porta open ile sorunsuz bağlanıyorum. #$01#$06#$00#$22 bu formatta deneyeceğim.
(30-09-2021, Saat: 10:53)enigma Adlı Kullanıcıdan Alıntı: [ -> ]Sonuç alabildiniz mi ?
Henüz test etme imkanım olmadı.
Cihaz siparişi verdim.
gelince test edip, sonuç bildireceğim.
İlginiz için teşekkür ederim.
Tüm karakterleri arada $ işareti olmadan aşağıdaki yöntemle gönderebildim.
Yardımcı olan arkadaşlara teşekkür ederim.
procedure Tfrm1.btToHexClick(Sender: TObject);
var
LStr1, LStr2: String;
begin
LStr1 := Edit1.Text;
SetLength(LStr2, Length(LStr1) * 4);
BinToHex(LStr1[1], PWideChar(LStr2), Length(LStr1) * SizeOf(Char));
FComPort.WriteString(LStr2);
end;
Kaynak:
BinHexMethods