Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A folyamatok figyelhetik a kommunikációs erőforrásokban előforduló eseményeket. Egy alkalmazás például eseményfigyeléssel állapíthatja meg, hogy a CTS (clear-to-send) és a DSR (data-set-ready) jelek mikor változnak.
Egy folyamat eseményeket figyelhet egy adott kommunikációs erőforráson a SetCommMask függvénnyel egy eseménymaszk létrehozásához. Egy kommunikációs erőforrás aktuális eseménymaszkjának meghatározásához egy folyamat használhatja a GetCommMask függvényt. Az alábbi értékek a monitorozásra használható eseményeket határozzák meg.
| Érték | Jelentés |
|---|---|
| EV_BREAK | A rendszer törést észlelt a bemeneten. |
| EV_CTS | A CTS (clear-to-send) jel megváltozott állapotban. |
| EV_DSR | A DSR (data-set-ready) jel megváltozott. |
| EV_ERR | Sorállapot-hiba történt. A sorállapot-hibák CE_FRAME, CE_OVERRUNés CE_RXPARITY. |
| EV_RING | A rendszer egy gyűrűjelzőt észlelt. |
| EV_RLSD | Az RLSD (receive-line-signal-detect) jel megváltozott állapota. |
| EV_RXCHAR | A rendszer egy karaktert fogadott és helyezett el a bemeneti pufferben. |
| EV_RXFLAG | Az esemény karaktere megérkezett, és a bemeneti pufferbe lett helyezve. Az eseménykarakter az eszköz DCB szerkezetében van megadva, amelyet a rendszer a SetCommState függvény használatával alkalmaz egy soros portra. |
| EV_TXEMPTY | A kimeneti puffer utolsó karaktere el lett küldve. |
Egy eseménykészlet megadása után egy folyamat a WaitCommEvent függvénnyel várja meg az egyik esemény bekövetkeztét. WaitCommEvent szinkron módon vagy átfedésben lévő műveletként is használható. További információ a függvények átfedésben lévő műveletként való végrehajtásáról: Szinkronizálási.
Amikor az eseménymaszkban megadott események egyike bekövetkezik, a folyamat befejezi a várakozási műveletet, és beállít egy eseménymaszk változót az észlelt esemény típusának jelzésére. Ha a SetCommMask kommunikációs erőforrásra van meghívva, amíg az adott erőforrásra várakozás van függőben, WaitCommEvent hibát ad vissza.
A WaitCommEvent függvény észleli a SetCommMask vagy WaitCommEventlegutóbbi hívása óta történt eseményeket. Ha például a EV_RXCHAR eseményt várakozásnak megfelelő eseményként adja meg, a WaitCommEvent hívása akkor lesz elégedett, ha az illesztőprogram bemeneti pufferében olyan karakterek találhatók, amelyek a WaitCommEvent vagy SetCommMasklegutóbbi hívása óta érkeztek. Így a következő pszeudokód alapján a T1 és a T2 között kapott karakterek megfelelnek a WaitCommEvent következő hívásának.
while (!bFinished)
{
WaitCommEvent(args)
T1: // Read bytes
// Process bytes
T2:
}
Ha egy jel (CTS, DSR stb.) állapotának változásakor bekövetkező esemény monitorozása során WaitCommEvent jelenti a változást, de az aktuális állapotot nem. A CTS (clear-to-send), a DSR (data-set-ready), az RLSD (receive-line-signal-detect) és a gyűrűjelző jelek aktuális állapotának lekérdezéséhez egy folyamat használhatja a GetCommModemStatus függvényt.