Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TComPort Problem (https://www.delphipraxis.net/155712-tcomport-problem.html)

Muellermilchtrinker 4. Nov 2010 15:55

TComPort Problem
 
Hallo DP,

ich probiere gerade mit TComport von hier einen String über RS232 zu senden.
Ich mache das so:
Delphi-Quellcode:
comport1.writestr('&B00110011');
Comport wurde davor geöffnet. Daneben überwache ich das noch über die im Paket enthaltene Terminalkomponente. Doch leider schickt mein Delphiprogramm, wenn ich es so mit dem Code oben mache nur &B.
weiß auch nicht warum. Kann mir jmd. helfen? Wäre echt nett.

Bummi 4. Nov 2010 16:25

AW: TComPort Problem
 
Bei TComport kann soviel eingestellt werden daß es manchmal mühssm ist die richtige Einstellung für empfindliche Geräte zu finden.
Vielleicht hast Du auch nur ein Unicodeproblem, nimm AnsiStrings.

LargoD 4. Nov 2010 17:05

AW: TComPort Problem
 
Zeig mal Deine Einstellungen oder ein Stück Kode.
Als Hinweis:
Für erste Versuche Flowcontrol ausschalten
Gruß
Erich

shmia 4. Nov 2010 17:21

AW: TComPort Problem
 
Ich weiss nicht, ob du das schon getan hast, aber es gibt bei RS232 etwas Wichtiges zu beachten.
Teste die RS232-Verbindung mit einem Terminalprogramm (z.B. Hypherterminal)!!

Dazu die Kommandos in eine TXT-Datei speichern und mit ASCII-Transfer (Hypherterm: Übertragung->Textdatei senden) wegschicken.
Erst wenn das funktioniert hat, sprich wenn du erfolgreich Kommandos in deinen Controller übertragen hast, darfst du mit der TComPort Komponente arbeiten.

Bei RS232 können so viele Dinge schiefgehen, dass es sehr ungeschickt wäre, nicht zuvor einen Test mit einem Terminalprogramm durchzuführen.

Dies gilt überigens für jede Art von Kommunikation (TCP/IP, UDP, HTTP, SOAP,...).
Man beginnt immer mit einem fertigen Client und geht dann erst zum eigenen Programm über.

Muellermilchtrinker 4. Nov 2010 17:23

AW: TComPort Problem
 
Mit einem Terminalprogramm funktioniert auch alles. Damit hab ich alles getestet und damit die Software für den AVR entwickelt.
Im Terminalprgramm sieht es so aus:
Code:
feld>2
muster>&B00110011
Und funktioniert auch.

shmia 4. Nov 2010 17:38

AW: TComPort Problem
 
Zitat:

Zitat von Muellermilchtrinker (Beitrag 1059702)
Mit einem Terminalprogramm funktioniert auch alles

Gut. Bei TComport ist doch auch ein Beispielprojekt MiniTerm dabei.
Wie sieht's denn damit aus?
Da kannst das Projekt auch in ein anderes Verzeichnis kopieren und dann zum Test an deine Belange anpassen.

Muellermilchtrinker 5. Nov 2010 12:43

AW: TComPort Problem
 
Mit dem Beispiel klappts auch. Doch ich möchte das nicht mit der Terminalkomponente machen sondern einfach nur mit Comport.
So ist mein Code vom Button:
Delphi-Quellcode:
var s:ansistring;
begin
comPort1.Write(pchar(edit1.Text),1);
comport1.Write(#13,1);
s := ansistring(edit2.Text);
comport1.WriteStr(s);
comport1.Write(#13,1);
Edit1.Text = 2
Edit2.Text = &B00110011

Im Terminal siehts dann so aus:
Code:
feld>2
muster>&B
feld>
Aber bei Muster sollte der ganze Text ausm Editfeld stehen.

Nersgatt 5. Nov 2010 13:15

AW: TComPort Problem
 
Bei Write heißt der 2. Parameter (wo Du die 1 übergibtst) "Count". Ich vermute, dort wird die Länge des Strings erwartet:
Delphi-Quellcode:
comPort1.Write(pchar(edit1.Text),length(edit1.text));

Muellermilchtrinker 5. Nov 2010 13:17

AW: TComPort Problem
 
Bei genauer hinschauen hättest du gesehen, dass das nicht an write liegt sondern erst bei writestr und die ist anders aufgebaut

taveuni 5. Nov 2010 13:56

AW: TComPort Problem
 
Ich hab jetzt nicht alles genau durchgelesen.
Aber - handelt es sich hier um ein ASCII-Protokoll?
Denn nur dann kannst Du WriteString() anwenden.
Also kann der Empfänger (was oder wer ist das überhaupt?) ASCII interpretieren?.

Edit: Satz zu Ende geschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Seite 1 von 2  1 2      

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