SPCOMM的方法

来源:互联网 发布:有关大数据时代的论文 编辑:程序博客网 时间:2024/05/19 17:48
SPCOMM的方法

METHOD
======

    procedure StartComm

        Start a communication for this comm port.
        If failure, raise ECommsError exception and ECommsError.Message contain
        following string:
            'This serial port already opened'
            'Error opening serial port'
            'File handle is not a comm handle'
            'Cannot setup comm buffer'
            'Unable to create event'
            'Unable to create read thread'
            'Unable to create write thread'

    procedure StopComm

        Stop and end all communication threads for this comm port.
        No any return.

    function WriteCommData( pDataToWrite: PChar;
                            dwSizeofDataToWrite: Word ): Boolean

        Send a String to the Write Thread to be written to the Comm.
        This subroutine will return immediately. The send operation will
        do in background.
        Parameters:
            pszStringToWrite       - string to Write to Comm port.
            nSizeofStringToWrite - length of pszStringToWrite.
        Return:
            TRUE : if the PostMessage to write thread is successful.
            FALSE: if PostMessage fails or Write thread doesn't exist.

    function GetModemState : DWORD;

       Get and return the modem state right now. They are the state of modem
       input pin from MSR.
       The return value can be one or more of the following codes:

        Value         Meaning
        ----------    -----------------------------------------------------------
        MS_CTS_ON     The CTS (clear-to-send) signal is on.
        MS_DSR_ON     The DSR (data-set-ready) signal is on.
        MS_RING_ON    The ring indicator signal is on.
        MS_RLSD_ON    The RLSD (receive-line-signal-detect) signal is on.

        The function fails if the hardware does not support the
        control-register values.

EVENT HANDLER
=============

    OnReceiveData : procedure (Sender: TObject;
                               Buffer: Pointer;
                               BufferLength: Word) of object

        When
          1. The input buffer contains received data and
          2. more than a limit size or
          3. read time-out
        the event handler is called
        Sender : point to TComm object which raise this call
        Buffer : the buffer which contains received data
        BufferLength : the size of received data in Buffer

    OnReceiveError : procedure(Sender: TObject; EventMask : DWORD) of object

        When error happend during receiving, the event handler is called.
        Sender : point to TComm object which raise this call
        EventMask : the value get from ClearCommError in 'HandleCommEvent'
                    A 32-bit variable to be filled with a mask indicating the
                    type of error. This parameter can be one or more of the
                    following error codes:

        Value         Meaning
        ----------    -----------------------------------------------------------
        CE_BREAK      The hardware detected a break condition. (no support now)
        CE_DNS        Windows 95 only: A parallel device is not selected.
        CE_FRAME      The hardware detected a framing error.
        CE_IOE        An I/O error occurred during communications with the device.
        CE_MODE       The requested mode is not supported, or the hFile parameter
                    is invalid. If this value is specified, it is the only
                    valid error.
        CE_OOP        Windows 95 only: A parallel device signaled that it is out
                    of paper.
        CE_OVERRUN    A character-buffer overrun has occurred. The next character
                    is lost.
        CE_PTO        Windows 95 only: A time-out occurred on a parallel device.
        CE_RXOVER     An input buffer overflow has occurred. There is either no
                    room in the input buffer, or a character was received after
                    the end-of-file (EOF) character.
                    (second condition is impossible happened under Win32)
        CE_RXPARITY The hardware detected a parity error. (no support)
        CE_TXFULL     The application tried to transmit a character, but the
                    output buffer was full. (no support)


    OnRequestHangup: procedure(Sender: TObject) of object;

        When the program is terminated abnormally, the event handler is
        called.

    OnModemStateChange : procedure(Sender: TObject; ModemEvent : DWORD) of object

        When Modem's RLSD(CD) change state (HIGH<->LOW) or the ring indicator
        signal is detected, this event handler is
        called.
        Sender : point to TComm object which raise this call
        ModemEvent : A 32-bit variable to be filled with a mask indicating
                     what made this call. This parameter can be one or more
                     of the following codes:

        Value         Meaning
        ----------    -----------------------------------------------------------
        ME_CTS        The CTS (clear-to-send) signal has changed state.
                    (support in future, not support now)
        ME_DSR        The DSR (data-set-ready) signal has changed state.
                    (support in future, not support now)
        ME_RING       The ring indicator signal was detected.
        ME_RLSD       The RLSD (receive-line-signal-detect) signal has changed
                    state.

        Call GetModemState method to get the real state of modem state.

LEGALITIES
==========

This component is totally free (along with source code).

原创粉丝点击