apdcomport bileşeni
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56
apdcomport bileşeni
merhaba arkadaşlar apdcomport bileşeni ile ilgili bir kaç sorum olacak
1- bu bileşeni kullanarak porta bağlı barkod yazıcıdan bilet basıyorum. yalnız mesela 1 den 300 e kadar bas diyorum. 200 e doğru "too small bufer for block" gibi bir hata veriyor bu sorunu nasıl çözebilirim.
2- porttan gelen veriyi dinlerken veri iki satırda geliyor. Mesela 12345678910 gibi bir veri gelecek. şöyle geliyor 1234567 bir alt satıra geçiyor 8910 bo sorunu nasıl çözebilirim. şimdiden teşekkürler.
1- bu bileşeni kullanarak porta bağlı barkod yazıcıdan bilet basıyorum. yalnız mesela 1 den 300 e kadar bas diyorum. 200 e doğru "too small bufer for block" gibi bir hata veriyor bu sorunu nasıl çözebilirim.
2- porttan gelen veriyi dinlerken veri iki satırda geliyor. Mesela 12345678910 gibi bir veri gelecek. şöyle geliyor 1234567 bir alt satıra geçiyor 8910 bo sorunu nasıl çözebilirim. şimdiden teşekkürler.
selam @microchip
komponenet asenkron pro device serial port componnet, yani kısa bizim tabirler asenkron pro
2. sorunun cevabı şu olabilir. gelen karakterlernden birini cntrl+enter veya enter ise editin bunu böyle gösterir.. bunu kontrol et. çözüm olarak pchar kullan,
soru 1 için: outgoing bufferda hiç böyle bişey başıma gelmedi, ayarlarda yoksa buffer size falan iki üç seferde bastır yapacaklarını. mesela 50 şer 50 şer.
komponenet asenkron pro device serial port componnet, yani kısa bizim tabirler asenkron pro

2. sorunun cevabı şu olabilir. gelen karakterlernden birini cntrl+enter veya enter ise editin bunu böyle gösterir.. bunu kontrol et. çözüm olarak pchar kullan,
soru 1 için: outgoing bufferda hiç böyle bişey başıma gelmedi, ayarlarda yoksa buffer size falan iki üç seferde bastır yapacaklarını. mesela 50 şer 50 şer.
.-.-.-.-.-.-.-. ^_^
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56
arkadaşlar bu bileşen 3.parti bileşenlerden apro bileşenlerinin apdcomport bileşeni. şu bizim turbo power bileşenlerden.
gelen veriyi kontrol etmeyi bu forumdan almıştım kodu.
** koclarınızı [ CODE ] tagı içine alın. mege
gelen veriyi kontrol etmeyi bu forumdan almıştım kodu.
Kod: Tümünü seç
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
I : Word;
C : Char;
S : String;
begin
s:='';
for I := 1 to Count do
begin
C := ApdComPort1.GetChar;
end;
case C of
#0..#31 : {ekrana bunlar gelmesin} ;
else
s := s + C;
end;
end;
Memo1.Lines.Add(s);
end;
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56
Kod: Tümünü seç
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var LastCount,I : integer;
begin
LastCount:= Count;
for I := 1 to LastCount do
begin
cRcvBuffer[CharCntReceived]:= ApdComPort1.GetChar;
inc(CharCntReceived);
end;
end;

.-.-.-.-.-.-.-. ^_^
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Re: apdcomport bileşeni
Birinci problem seri port çalışma şeklinden kaynaklanıyor. Uygulamanız aktarım hızından daha yüksek bir hızda veri üretiyor ve komponent bunu önlemek için dahili bir buffer tutuyor. Bu buffer dolunca da bu mesajı alıyorsunuz. Eğer component in ayarlarında varsa bu buffer değerini yükseltmelisiniz. (Neticede o buffer da bir thread içinde aktarım hızına bağlı olarak bu buffer dan transfer ediyor bilgileri)mustafaozdemir yazdı: 1- bu bileşeni kullanarak porta bağlı barkod yazıcıdan bilet basıyorum. yalnız mesela 1 den 300 e kadar bas diyorum. 200 e doğru "too small bufer for block" gibi bir hata veriyor bu sorunu nasıl çözebilirim.
2- porttan gelen veriyi dinlerken veri iki satırda geliyor. Mesela 12345678910 gibi bir veri gelecek. şöyle geliyor 1234567 bir alt satıra geçiyor 8910 bo sorunu nasıl çözebilirim. şimdiden teşekkürler.
İkinci problem ise gelen bilginin cihazdan iki parça olarak gelmesinden kaynaklanıyor. Protokol ün 10 karakterlik bilgiler halinde gelen bilgi akışı şeklinde olduğunu varsayarak, gelen bilgiyi bir buffer da birleştirip 10 ar karakter ayırarak bu sorunu çözebilirsiniz. Bir ring buffer işinizi görecektir. Benzer sorun stream tcp bağlantılarında da yaşanır. Belki de bir başlangıç bitiş karakteri vardır gelen, o zaman ona göre ayırırsınız.
Kolay gelsin.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
- mustafaozdemir
- Üye
- Mesajlar: 137
- Kayıt: 19 Haz 2004 01:56