|
|
|
|
- Detección de eventos e hilos
- Gestión de eventos muy próximos
- Desactivar uno o más eventos
- Cerrar el puerto
Se ramifica un Event en un puerto serial. // Detect characters on COM1 port sEvent(1, sEveCharReceived, "ReadCharacter")
// -- ReadCharacter procedure PROCEDURE ReadCharacter(PortNum, EventNum) Trace(sRead(1, sInEntryQueue(1)))
Sintaxis
<Result> = sEvent(<Port number> , <Event managed> , <WLanguage procedure>)
<Result>: booleano - True si se ejecutó la función,
- False en caso contrario. sEvent no tiene efecto si el puerto no ha sido abierto previamente en modo "gestión Event" (con sOpen).
<Port number>: Integro - Número del puerto serie (1, 2, 3, hasta 32 para COM1, COM2, COM3, ... COM32).
- Número de puerto devuelto por sOpen (si esta función fue llamada con un nombre de puerto).
<Event managed>: Constante o combinación de constantes de tipo Integer Event para recuperar en el puerto: | | sEveBreak (valor: 64) | Recibe una "línea de ruptura" Event | sEveCharReceived (valor: 1) | Recibir un personaje | sEveCTS (valor: 8) | Cambio de estado del CTS | sEveDSR (valor: 16) | Cambio de estado de DSR | sEveEntryQueue80 (valor: 1024) | El búfer de entrada está lleno a 80%
| sEveError (valor: 128) | Detectar un error en el Line
| sEvePrinterError (valor: 512) | Error de impresora detectado
| sEveRing (valor: 256) | Detección de la señal "Ring" (anillo) | sEveRLSD (valor: 32) | Cambio de estado del RLSD
| sEveTransmitCompleted (valor: 4) | El búfer de salida está vacío |
<WLanguage procedure>: Nombre de Procedure Nombre del WLanguage Procedure llamado cada vez que se detecta el Event especificado. Este procedimiento tiene el siguiente formato:PROCEDURE <Procedure name>(<Port number>, <Event number>) donde <Número de puerto> corresponde al puerto donde ocurrió el Event donde <Número de evento> corresponde a una de las constantes de evento. Observaciones Detección de eventos e hilos La detección de eventos se realiza en un hilo específico del WLanguage. La llamada al WLanguage Procedure se realiza en este thread. Por lo tanto, este Procedure está sujeto a las limitaciones de thread (especialmente para la visualización). Gestión de eventos muy próximos Si se dispara otro Event durante el Procedure disparado por el Event, este último Event no será detectado. Si es probable que se desencadenen eventos muy cercanos, le aconsejamos que: - leer solo los datos del evento (con la función sRead) en el procedimiento ejecutado con la función sEvent,
- continuar el resto de la Process en otra thread.
Desactivar uno o más eventos Para desactivar la gestión de uno o varios eventos, utilice sEndEvent. Cerrar el puerto Al cerrar el puerto, todos los eventos gestionados en este puerto se desactivan. Al volver a abrir el puerto, se debe volver a ejecutar la función sEvent para definir los eventos gestionados en este puerto. Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|