AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TComPort Problem

Ein Thema von morpheus090682 · begonnen am 18. Mai 2011 · letzter Beitrag vom 19. Mai 2011
Antwort Antwort
morpheus090682

Registriert seit: 5. Dez 2009
Ort: Blomberg
43 Beiträge
 
Delphi 7 Enterprise
 
#1

TComPort Problem

  Alt 18. Mai 2011, 21:50
Moin erst mal!
Habe Delphi7 und TComPort4.
Möchte nun den ComPort auslesen und die 5Byte die ich bekomme im Array schreiben.
Nun habe ich dies schon mal:
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  befehl : array [0..5] of integer;
begin
  ComPort1.Read(befehl,6);
  Label12.Caption:=IntToStr(befehl[0]);
  Label13.Caption:=IntToStr(befehl[1]);
  Label14.Caption:=IntToStr(befehl[2]);
  Label15.Caption:=IntToStr(befehl[3]);
  Label16.Caption:=IntToStr(befehl[4]);

end;
nur so bekomme ich nichts richtiges raus
wo ist mein Fehler!
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#2

AW: TComPort Problem

  Alt 18. Mai 2011, 22:06
Was bekommst du denn angezeigt und was sollte angezeigt werden. Ein Paar mehr Infos zum Problem solltest du uns schon geben. Woher kommen die Daten. Ist überhaupt die Menge an daten im Puffer vorhanden... und und und
Christian
  Mit Zitat antworten Zitat
morpheus090682

Registriert seit: 5. Dez 2009
Ort: Blomberg
43 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: TComPort Problem

  Alt 18. Mai 2011, 22:16
Was bekommst du denn angezeigt und was sollte angezeigt werden. Ein Paar mehr Infos zum Problem solltest du uns schon geben. Woher kommen die Daten. Ist überhaupt die Menge an daten im Puffer vorhanden... und und und
Also ich bekomme in den Labels 47856 und noch vier solche komischen Werte angezeigt!
Die daten schicke ich über HTerm vom anderen PC zu diesem.
Also an den Einstellungen liegt es nicht.
Wenn ich nun das so mache:
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  befehl : integer;
begin
  ComPort1.Read(befehl,1);
  Label12.Caption:=IntToStr(befehl);
  ComPort1.Read(befehl,1);
  Label13.Caption:=IntToStr(befehl);
  ComPort1.Read(befehl,1);
  Label14.Caption:=IntToStr(befehl);
  ComPort1.Read(befehl,1);
  Label15.Caption:=IntToStr(befehl);
  ComPort1.Read(befehl,1);
  Label16.Caption:=IntToStr(befehl);

end;
Dann zeigt er mir das richtige in den Labels an aber nicht immer
da so die gefahr ist das ein Byte verlohren geht.

Ich sende nur zum test 01hex, 02hex, 03hex, 04hex, 05hex.
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#4

AW: TComPort Problem

  Alt 19. Mai 2011, 00:17
Ich benutze die Komponente TComPort nicht. Trotzdem hatte ich nach fünf Minuten (inclusive Goggle Suche und Download) diese Information in der Hilfedatei gefunden:
Zitat:
Call Read function to read Count bytes into Buffer variable. The function does not return until Count bytes are read or timeout elapses.
Ein Integer besteht aber aus 4 Bytes. Damit landen die empfangenen 6 Bytes im ersten und zur Hälfte im zweiten Integer Deines Arrays. Der Rest ist mit irgendwelchen zufälligen Werten belegt, da Du das Array nicht initialisierst. Und da wunderst Du Dich, daß Du nicht die erwarteten Werte angezeigt bekommst?
Korrekt wäre ein array[0..x] of Byte . Mal ganz abgesehen davon, daß von Dir der Parameter Count völlig ignoriert wird...

Weshalb ist es nur so schwer, mal in eine Dokumentation hineinzuschauen?

P.S.:
Du schreibst von 5 einzulesenden Bytes, nimmst aber ein Array mit 6 Elementen ([0..5]) und versuchst auch, 6 Bytes zu lesen (Read(...,6)).
Also was denn nun: 5 oder 6?
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom (19. Mai 2011 um 09:49 Uhr)
  Mit Zitat antworten Zitat
morpheus090682

Registriert seit: 5. Dez 2009
Ort: Blomberg
43 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: TComPort Problem

  Alt 19. Mai 2011, 09:44
Erst mal danke jetzt klappt es!
Nur nächstes mal kann man dies auch freundlicher machen
nicht alle können super gut Programmieren und wenn man mal ne frage hat
ist das ja wohl nicht schlimm. Und ja ich habe auch google benutzt aber es ist immer
noch die sache wie und was man eintippt bei google.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz