Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Neuerer Beitrag  |  Älteres Thema 
 Open COM mit RSCOM_DLL
Autor: Ludwig Bernhard (---.dip0.t-ipconnect.de)
Datum:   11.01.22 11:18

Ich habe die DLL "RSCOM.DLL" im Zusammenhang mit der Steuerung einer seriellen Schnittstelle
über USB - UART gefunden.

Die DLL entsprechend eingebunden. Funktioniert auch bis auf Einschränkungen problemlos.

Mit der Funktion in der DLL : Function OPENCOM Lib "RSCOM" (ByVal OpenString$) As Integer

definiert im Profan-Progr :
Def ComPortOPEN(1)  !"RSCOM.dll","OPENCOM"

aufgerufen zB so:
ComPortOPEN("COM1:") oder ComPortOPEN("COM1:1200,N,8,1")
beides ist möglich

klappt soweit auch.
allerdings muss ich "COM1:1200,N,8,1" bzw. "COM1:" als Literal angeben und auch nur von COM1: bis COM9: funkt es.
Darüber hinaus nicht.

Diese Form zBsp.:
 Port$ = "COM1:1200,N,8,1"
 ComPortOPEN(Port$)
funktioniert nicht

Kann mir jemand einen Tip geben ?
Gruss
Ludwig




Beitrag beantworten
 
 Re: Open COM mit RSCOM_DLL
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   11.01.22 13:44

Kommt drauf an, wie die DLL programmiert ist.
Manchmal ist es dennoch nötig, eine Variable per
Adresse zu übergeben.

ComPortOPEN(Addr(Port$))


Normalerweise sollte die Variable automatisch per Referenz
übergeben werden. Ich habe aber auch schon erlebt, daß es
nur mit Addr() ging.

Schaden tut das sowieso nicht.

Wenn das nicht hilft, gibt es noch
Zitat:

Set("CallConv", S)

um auf C - Deklaration umzustellen. Außerdem
hilft oft auch ein Bereich# anstelle eines Strings.

Aber probiers mal erst mit Addr(Port$).

H.Brill
XProfan X4 + FreeProfan

Nachricht bearbeitet (11.01.22 13:45)

Beitrag beantworten
 
 Re: Open COM mit RSCOM_DLL
Autor: Ludwig Bernhard (---.dip0.t-ipconnect.de)
Datum:   11.01.22 14:00

Danke Heinz,

also mit Bereich# geht's nicht.

Aber mit Addr(Port$) funkt es. :-) Den Code hatte ich mir aus einem Delphi-Progr. abgeschaut. Dort ging es mit einer "normalen" Stringvariablen also ohne Adresse.
Mal sehen, ob es dann auch mit COM-Ports > 9 funkt

Gruss
Ludwig



Beitrag beantworten
 
 Re: Open COM mit RSCOM_DLL
Autor: Ludwig Bernhard (---.dip0.t-ipconnect.de)
Datum:   11.01.22 14:11

Zitat:

Mal sehen, ob es dann auch mit COM-Ports > 9 funkt
....leider nicht... warum ???

Dass es geht, weiss ich, weil ich zBsp. diese Ports mit der "Terminal.exe" ansprechen kann, von der ich weiss dass diese auch die RSCOM.DLL nutzt.

Edit: Also, die Open Funktion gibt schon '1' zurück.

PortSTR$ = "COM13:1200,N,8,1"
Print ComPortOPEN(Addr(PortSTR$))

Allerdings reagieren die Prozeduren (hier bei Port 13):

SetRTS(1)
SetDTR(1)
SetTXD(1)

zum Setzen der Leitungen nicht. Bei COM Ports 1 bis 9 funkt es.



Nachricht bearbeitet (11.01.22 14:21)

Beitrag beantworten
 Foren-Liste  |  Baumstruktur   Neuerer Beitrag  |  Älteres Thema 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org