Help me Please !!!

Help me Please !!!

Postby fafi » Mon Mar 15, 2010 6:27 pm

Hi All..
I have to send this to COM port ( RS232 ) with xHarbour
Please guide me ...


Communication Parameters:
- Baud rate: 2400 bits/s;
- Data: 8 bits;
- End code: 1 bit;
- Checksum: Nil;

P.S: Networking Capacity: Up to 128 nos. LED signs in maximum. Sign address is addressable at the
controller card, ranging from 0 to 127 (lower 7 bits).

Format For Transmitting Package
Each package has no restriction in length, and can contain different data groups. But, the “Data 1”
should be Sign Address, and the end code is “0”. As follows;

“Data 1” + “Data 2” + “Data 3” - - - - - “Data n” + “0”

Protocol For Different Data Group:
There are 11 different data groups in total.
I: Data for sign address
II: Data for file
III: Data for special file
IV: Data for alarming
V: Data for time alarming
VI: Data for sign on
VII: Data for sign off
VIII: Data for date / time resetting
IX: Data for custom graphic
X: Data for testing
XI: Data for signs’ list

P.S: The length for each data group cannot exceed 8190 bytes (1FFE).

Code: Select all  Expand view


Example I :  Send Data For Sign Address

Format   :  “0” + “Sign Address” + “1

Code                      Description
-------------------------------------------------------------
0”                        Leading code for Sign Address
----------------------------------------------------------------------------                          
“Sign Address”      2 bytes (16 bits)
                             e.g: sign 0 = bit 0; sign 1 = bit 1…etc.
------------------------------------------------------------------------------------------------------------
1”                       Clear all the previous messages
                            Remark: Previous messages will be retained if the bit is not “1
---------------------------------------------------------------------------------------------------------------

P.S: If there are 128 nos. LED signs linked together, sign address=”FFFFH”, and then followed by data group for signs’ list



How to send this->  "10" +"01H " + "0FFH" to test
"10" = Leading Code
"01H" = Testing Code
"0FFH" = Ending Code

#include "fivewin.ch"

function Main()

   local oWnd,oDlg,nCom,oGet,cText := spac(200)


   DEFINE WINDOW oWnd TITLE "Com Port"
   
   DEFINE DIALOG oDlg FROM 180, 0 TO 350,1400 PIXEL OF oWnd

   @ 0, 8 GET oGet VAR cText size 300,80 MEMO READONLY of oDlg

   ACTIVATE DIALOG oDlg NOWAIT VALID oWnd:End()
   
   
   ACTIVATE WINDOW oWnd  MAXIMIZED ;
                       ON INIT ( nCom := APRICOM( oDlg, oGet), ;
                       IF( nCom < 0, oWnd:End(), ), InitCom(nCom) ) VALID Keluar()

return nil


static function InitCom(nCom)
   WRITECOMM( nCom, "10" +"01H " + "0FFH" +chr(13) )
return nil
   
static function ExitKeluar()

if MsgYesNo("Exit ?")
   dbCloseAll()
   return .t.
endif

return .f.


STATIC FUNCTION APRICOM( oDlg, oGet )

    LOCAL nCom, cDcb

    BEGIN SEQUENCE
        nCom = OPENCOMM( "COM1", 16384, 16384 )

        IF nCom < 0
            ? "Error Open COM1"
            BREAK
        ENDIF

        BUILDCOMMDCB( "COM1:2400,N,8,1", @cDcb )

        IF !SETCOMMSTATE( nCom, cDcb )
            ? "Error Open COM1"
            BREAK
        ENDIF

        oDlg:bCommNotify = { | nCom | Connect( nCom, oGet ),;
                                      EnableCommNotification( nCom, oDlg:hWnd, 1, -1) }

        IF !ENABLECOMMNOTIFICATION( nCom, oDlg:hWnd, 1, -1 )
            ? "Error Open COM1"
            BREAK
        ENDIF
    RECOVER
        nCom = -1
    END SEQUENCE

    RETURN nCom


STATIC FUNCTION CONNECT( nCom, oGet )

    LOCAL cStr

    ENABLECOMMNOTIFICATION( nCom, 0, 1, -1 )

    cStr = RECEIVESTR( nCom )

    oGet:append(cStr+CRLF)
   
   
    RETURN NIL


STATIC FUNCTION SENDSTR( nCom, cString )

    LOCAL nBytes := WRITECOMM( nCom, cString )

RETURN nBytes = LEN( cString )


STATIC FUNCTION RECEIVESTR( nCom )

    LOCAL cBuf := SPACE( 1000 )

RETURN LEFT( cBuf, READCOMM( nCom, @cBuf ) )


 


Thanks for help..
Regards
Fafi
User avatar
fafi
 
Posts: 169
Joined: Mon Feb 25, 2008 2:42 am

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 74 guests