![]() |
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:
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.
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); 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 |
Re: CPort -> Parity und FlowControl Einstellungen
*sternkreuzrautetotenkopffluch*
Delphi-Quellcode:
IWServerController.ComPort.Parity.Bits := prNone;
IWServerController.ComPort.FlowControl.FlowControl := fcNone; |
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:
Nun versende ich irgendwelche Strings.
with ComPort do
begin Connected := True; Port := 'COM4'; BaudRate := StrToBaudRate('57600'); DataBits := StrToDataBits('8'); StopBits := StrToStopBits('1'); Parity.Bits := prNone; FlowControl.FlowControl := fcNone; end;
Delphi-Quellcode:
^^ 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.
ComPort.WriteStr('T000000018B0A1010203040510'#$D)
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