Sel al.arkadaşlar forumda çok konuşuldu ama bi turlu mantık yürütemedim.şimdi bi labaratuvar cihazı var.cihazdan gelen bilgilileri okuyabiliyorum sorun yok.ama cihaza örneğin 5 satırlık bi komut yollayacam.ilk satırı yolladığım zaman cihaz bana ack bilgisi yollacak ack bilgisi gelince ben 2 nci satırı yollayacam.şöyle bişey yaptım.(kullandığım bileşen apdcomport).devam diye bi global değişken tanımladım.portun trigger avail olayına ack bilgisi gelince devam değişkenini 1 yaptım. komutları yollarkende devam değişkeni 1 se komutu yolla yolladıktan sonra devam değişkenini sıfır yap dedim.ama ack bilgisi biraz geç geliyor sanırım ki gönderme kodlarım çalışmadan geçiyor yani şart hiç gerçekleşmiyor.
bunu nasıl yapabalirim fikir verebilecek arkadaşlar varmı.önce ack yı bekle sonra ack nın geldiğini anla ve komutu yolla yeniden ack yı bekle gibi.
comport bilgi yollama hakkında.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Forma bir memo koy. ilk satırı sen kendin gönder cihaza ki sana 'ack' göndersin. geri kalan satırlarıda memo ya satır satır ekle.
Kod: Tümünü seç
procedure TZiyaretci.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
I : Word;
C : Char;
S : String;
begin
S := '';
for I := 1 to Count do
begin
C := ApdComPort1.GetChar;
case C of
#0..#31 : {Don't display} ;
else S := S + C;
end;
end;
if s='ack' then
begin
if memo1.Lines.Count=0 then exit;
ApdComPort1.Output:=memo1.Lines.Strings[0];
Memo1.Lines.Delete(0);
end;
end;