how to open multiple ports simultaneously?
if I try:
nCom1 := OpenComm( "COM1", 1024 , 128)
nCom2 := OpenComm( "COM2", 1024 , 128)
then
nCom1=1
nCom2=1
Milos
[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
how to open multiple ports simultaneously?
if I try:
nCom1 := OpenComm( "COM1", 1024 , 128)
nCom2 := OpenComm( "COM2", 1024 , 128)
then
nCom1=1
nCom2=1
OpenPort() return handle of port
try:
COM_OPEN(1)
COM_OPEN(2)
Be sure that you have both of com ports installed in operating system
Function COM_OPEN(xPORT)
Local pNAME
Local nError,cDCB
Local xRESZTA:=.T.
Do Case
Case xPORT=1
pNAME:="COM1"
Case xPORT=2
pNAME:="COM2"
Case xPORT=3
pNAME:="COM3"
Case xPORT=4
pNAME:="COM4"
Case xPORT=5
pNAME:="COM5"
Case xPORT=6
pNAME:="COM6"
Case xPORT=7
pNAME:="COM7"
Case xPORT=8
pNAME:="COM8"
Case xPORT=9
pNAME:="COM9"
EndCase
hPORT:= OpenComm( pNAME, 2048, 2048 )
If ! BuildCommDcb( pNAME+cSPEED, @cDcb )
nError = GetCommError( hPORT )
MsgInfo( "BuildCommDcb Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
If ! SetCommState( hPORT, cDcb )
nError = GetCommError( hPORT )
MsgInfo( "SetCommState Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
If xRESZTA
oWND:oMSGBAR:cMSGDEF:=PNAME+" : Opened"
oWND:oMSGBAR:Refresh(.T.)
Else
oWND:oMSGBAR:cMSGDEF:=PNAME+" : Error"
oWND:oMSGBAR:Refresh(.T.)
EndIf
Return xRESZTA
The problem is that nCom1 and nCom2 have the same value. It is necessary that this value is different.
Try to use my example and check what BuildCommDcb and GetCommError will say.
definite problem is that it functions opncomm (.....) always returns the value 1. Why!? I do not know! I use FWH6.12
mtajkov wrote:I use FWH6.12