Communications Events
A process can monitor a set of events that occur in a communications resource.
For example, an application can use event monitoring to determine when the CTS
(clear-to-send) and DSR (data-set-ready) signals change state.
A process can monitor events on a given communications resource by using the
SetCommMask function to create an event mask. To determine the current event mask for a
communications resource, a process can use the
GetCommMask function. The following values specify events that can be monitored.
Value
| Meaning
|
EV_BREAK
| A break was detected on input.
|
EV_CTS
| The CTS (clear-to-send) signal changed state.
|
EV_DSR
| The DSR (data-set-ready) signal changed state.
|
EV_ERR
| A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and
CE_RXPARITY.
|
EV_RING
| A ring indicator was detected.
|
EV_RLSD
| The RLSD (receive-line-signal-detect) signal changed state.
|
EV_RXCHAR
| A character was received and placed in the input buffer.
|
EV_RXFLAG
| The event character was received and placed in the input buffer. The event
character is specified in the device's DCB structure, which is applied to a serial port by using the SetCommState function.
|
EV_TXEMPTY
| The last character in the output buffer was sent.
|
After a set of events is specified, a process uses the
WaitCommEvent function to wait for one of the events to occur.
WaitCommEvent can be used synchronously or as an overlapped operation. For additional
information about executing a function as an overlapped operation, see
Synchronization.
When one of the events specified in the event mask occurs, the process
completes the wait operation and sets an event mask variable to indicate the type of
event detected. If the
SetCommMask is called for a communications resource while a wait is pending for that
resource,
WaitCommEvent returns an error.
The
WaitCommEvent function detects events that have occurred since the last call to
SetCommMask or
WaitCommEvent. For example, if you specify the EV_RXCHAR event as a wait-satisfying event,
a call to
WaitCommEvent will be satisfied if there are characters in the driver's input buffer that
have arrived since the last call to
WaitCommEvent or
SetCommMask. Thus, given the following pseudo-code,
while (we_care) {
WaitCommEvent
T1: // Read bytes
// process them
T2: }
... any characters received between T1 and T2 will satisfy the next call to
WaitCommEvent.
When monitoring an event that occurs when a signal (CTS, DSR, and so on)
changes state,
WaitCommEvent reports the change, but not the current state. To query the current state of
the CTS (clear-to-send), DSR (data-set-ready), RLSD
(receive-line-signal-detect), and ring indicator signals, a process can use the
GetCommModemStatus function.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database