Page 1 of 1

RS232

Posted: Mon Dec 03, 2007 7:28 pm
by Robert Frank
From few years I used FW 2.3 version of FW. I've used RS232 to print barcodes on serial printers.
Now when I change my environment to xHarbour and install FWH 7.12 I found that my code doesn't work correctly.

I've started do debug my program and I've found that SetCommState(cDcb)
hangs up my program. Has somebody an idea how to use serial ports with xHarbour?

Function COM_OPEN(xPORT)
Local pNAME:=IIF(xPORT=1,"COM1","COM2")
Local nError,cDCB
Local xRESZTA:=.T.
hPORT:= OpenComm( pNAME, 2048, 2048 )
If ! BuildCommDcb( pNAME+cSPEED, @cDcb )
nError = GetCommError( hPORT )
MsgInfo( "BuildCommDcb Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
If ! SetCommState( cDcb )

// there programs brakes //

nError = GetCommError( hPORT )
MsgInfo( "SetCommState Error: " + Str( nError ) )
xRESZTA:=.F.
EndIf
....
Return

Regards
Robert

RS232

Posted: Mon Dec 03, 2007 7:56 pm
by TimStone
You might want to post that on one of the xHarbour newsgroups.

Re: RS232

Posted: Mon Dec 03, 2007 8:00 pm
by Robert Frank
TimStone wrote:You might want to post that on one of the xHarbour newsgroups.
It works again
I've found my mistake, there are small differences between clipper and harbour in using SetCommState()

correct line is:
If ! SetCommState( hPORT, cDcb )

I'm going to test RS communication with laboratory analysers now. :)

Robert

Posted: Mon Dec 03, 2007 8:40 pm
by Antonio Linares
Robert,

Very good :-)

Posted: Mon Dec 03, 2007 8:55 pm
by Robert Frank
Antonio Linares wrote:Robert,

Very good :-)
Antonio
Like a beginers, I've started to read examples and sources :)