Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CPort -> Parity und FlowControl Einstellungen (https://www.delphipraxis.net/79916-cport-parity-und-flowcontrol-einstellungen.html)

hirnstroem 31. Okt 2006 08:26


CPort -> Parity und FlowControl Einstellungen
 
'loha Folks,

ich suche nach einer Möglichkeit, um die Parity und FlowControl des COM-Ports zu setzen. Die verwendete Komponente ist die ComPort Library ver. 3.0.

Normalerweise werden diese Einstellungen über ein zur Laufzeit generiertes Fenster gemacht. Da ich die Einstellungen allerdings über ein Webinterface machen muss, kann dieses Fenster nicht verwendet werden.

Die folgenden Einstellungen können reibungslos gemacht werden (die Werte kommen aus einer Datenbank):
Delphi-Quellcode:
  IWServerController.ComPort.Port :=
    ADODataSet_BusParameter.FieldByName('COMPort').Value;
  IWServerController.ComPort.BaudRate :=
    StrToBaudRate(ADODataSet_BusParameter.FieldByName('BaudRate').Value);
  IWServerController.ComPort.DataBits :=
    StrToDataBits(ADODataSet_BusParameter.FieldByName('DataBits').Value);
  IWServerController.ComPort.StopBits :=
    StrToStopBits(ADODataSet_BusParameter.FieldByName('StopBits').Value);
Für sämtliche Einstellungen werden diese StringToIrgendwas Funktionen bereitgestellt, auch für Parity und FlowControl. Allerdings ist es so, dass z.B. die Eigenschaft Parity des COM-Ports vom Typ TCOMParity ist, die entsprechende Konvertierung (StrToParity) aber den Typ TParityBits verlangt. Bei der FlowControl dasselbe, die Eigenschaft hat den Typ TCOMFlowControl, die Konvertierung verlangt ABER TFlowControl.

Kennt jemand eine Möglichkeit, diese zwei Eigenschaften direkt im Code zu setzen und wäre zudem so nett sie mir mitzuteilen?

Parity und FlowControl werden in meinem Fall auf jeden Fall die Eigenschaft None haben.

Vielen Dank.
Grüsse
hirnstroem

hirnstroem 31. Okt 2006 08:34

Re: CPort -> Parity und FlowControl Einstellungen
 
*sternkreuzrautetotenkopffluch*

Delphi-Quellcode:
  IWServerController.ComPort.Parity.Bits := prNone;
  IWServerController.ComPort.FlowControl.FlowControl := fcNone;

hirnstroem 31. Okt 2006 10:24

Re: CPort -> Parity und FlowControl Einstellungen
 
Langsam nervt die Sache.

Die Situation ist folgende:

An einem Server ist ein USB-CAN-Dongle angeschlossen, welcher über einen virtuellen COM-Port angesprochen wird.

Um mit den über einen CAN-Bus am CAN-USB-Dongle angeschlossenen Geräten zu kommunizieren, habe ich eine normale Delphi VLC-, sowie eine Webapplikation geschrieben. Die normale Delphi VLC-Applikation dient aber nur zu Testzwecken. Wie auch immer.

In der Testapplikation werden folgende COM-Port Einstellungen gemacht:

Port: COM4
Baud rate: 57600
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None

Diese lassen sich über ein zur Laufzeit von der CPort Library erzeugtes Fenster tätigen.

In der Webapplikation versuche ich dieselben Einstellungen zu machen, bin auch mehr oder minder überzeugt, dass diese korrekt sind, aber die Kommunikation kommt nicht zu Stande. Der Code, in welchem diese Einstellungen gemacht werden sehen folgendermassen aus:

Delphi-Quellcode:
  with ComPort do
  begin
    Connected := True;
    Port := 'COM4';
    BaudRate := StrToBaudRate('57600');
    DataBits := StrToDataBits('8');
    StopBits := StrToStopBits('1');
    Parity.Bits := prNone;
    FlowControl.FlowControl := fcNone;
  end;
Nun versende ich irgendwelche Strings.

Delphi-Quellcode:
ComPort.WriteStr('T000000018B0A1010203040510'#$D)
^^ Dieser String über meine Testapplikation abgesetzt, öffnet einen Rollladen im Büro nebenan, so dass es mir möglich ist, zu sehen, ob die Sache funktioniert oder nicht. Denselben String über die Webapplikation abgesetzt hat keine Wirkung.

Sind die Einstellungen, welche über das COM-Port Setup Fenster gemacht werden dieselben wie jene, welche ich im Code mache? Oder übersehe ich da etwas grundlegendes?!

Beim öffnen des COM-Ports wird keine Fehlermeldung ausgegeben, deshalb nehme ich an, dass da schon irgendetwas verbunden ist.

Grüsse
hirnstroem


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz