AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de Windows / Funciones de puertos serie y paralelo
  • Modo de funcionamiento
  • Utilización de una biblioteca externa: RXTX
  • Funciones específicas del widget Android y Android
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Abre e inicializa:
  • to serial port.
  • a parallel port.
  • un puerto de infrarrojos. En este caso, sólo está disponible la segunda sintaxis.
Los valores de Default son los siguientes:
  • Velocidad de transferencia: 9600 Baudios
  • Paridad: nono
  • 8 bits de datos
  • 1 bit de parada
LinuxAndroidWidget Android Java Los puertos paralelos e infrarrojos no son compatibles.
WEBDEV - Código Servidor Esta función afecta al servidor.
WindowsJava
// Open COM1 (using the port number)
LineCom1 = sOpen(1, 2000, 2000)
IF LineCom1 = True THEN
// Configure COM1: Rate 9600, even parity,
// 8 data bits, 1 stop bit
sParameter(1, 9600, 1, 8, 0)
// Rest of process...
// Close COM1
sClose(1)
ELSE
Error("Error while opening COM1")
END
// Open IR1 (using the port name)
IR1 = sOpen("IR1", 2000, 2000)
IF IR1 <> 0 THEN
// Configure IR1
sParameter(IR1, 9600, 1, 8, 1)
// Rest of process...
// Close IR1
sClose(IR1)
ELSE
Error("Error while opening IR1")
END
Sintaxis
LinuxAndroidWidget Android No disponible en Linux, widget Android y Android

Abrir e inicializar un puerto especificando su número Ocultar los detalles

<Result> = sOpen(<Port number> , <Size of input buffer> , <Size of output buffer> [, <Timeout> [, <Managing events>]])
<Result>: booleano
  • True si se abrió e inicializó el puerto,
  • False en caso contrario.
<Port number>: Integro
Número de puerto pertinente:
  • Número del puerto serie: 1, 2, 3, ... 256 para COM1, COM2, COM3, ... COM256.
  • Número del puerto paralelo: -1, -2, -3 o -4 para LPT1, LPT2, LPT3 o LPT4.
<Size of input buffer>: Integro
Tamaño del búfer de entrada en bytes (hasta 32768).
<Size of output buffer>: Integro
Tamaño del búfer de salida en bytes (hasta 32768).
<Timeout>: Entero o duración opcional
Duración (expresada en milisegundos) para que lea o escriba un carácter. Si <Timeout> se set a 1s al escribir 1024 bytes, el tiempo de espera será de 1024s.
Este parámetro se utiliza para evitar un bloqueo cuando se produce un problema de lectura o escritura en el puerto de impresión..
  • si <Timeout> es negativo, el tiempo de espera será constante. Por ejemplo, si el tiempo de <Timeout> es set a "-1s" al leer 1024 bytes, el tiempo de espera será de 1s.
  • Cuando <Timeout> ha expirado, la función de lectura o escritura devuelve 0.
  • El valor de Default de este parámetro se define a nivel de sistema.
    Para usar el tiempo de espera definido de forma predeterminada, utilice la constante sDefaultTimeout.
Este parámetro puede ser:
  • un número entero que corresponde al número de milisegundos,
  • una variable de tipo Duration,
  • la duración en un formato legible (por ejemplo, 1 s o 10 ms).
Java No se aplicará ningún tiempo de espera si no se especifica este parámetro.. La constante sDefaultTimeout no está disponible. Si se especifica un tiempo de espera, se aplicará a las operaciones de lectura realizadas en los puertos serie..
<Managing events>: Booleano opcional
  • True para detectar los eventos en el puerto serie,
  • False (valor predeterminado) para no gestionar eventos. Estos eventos pueden ser gestionados por sEvent.

Abrir e inicializar un puerto especificando su nombre Ocultar los detalles

<Result> = sOpen(<Port name> , <Size of input buffer> , <Size of output buffer> [, <Timeout>])
<Result>: Integro
  • Identificador de puerto abierto. Este identificador se puede utilizar en el programa funciones para la gestión de puertos.
    Este identificador corresponde a:
    • el número del puerto serie correspondiente: 1, 2, 3, ... 256 para COM1, COM2, COM3, ... COM256.
    • el número del puerto paralelo correspondiente: -1, -2, -3 o -4 para LPT1, LPT2, LPT3 o LPT4.
    • el número del puerto de infrarrojos correspondiente: 1, 2, 3, ... 256 para IR1, IR2, IR3, ... IR256.
  • 0 si se produce un error.
LinuxAndroidWidget Android Atención:
  • Este identificador no se corresponde con el número de puerto de serie..
  • La gestión de puertos paralelos no está disponible.
  • Java Los puertos de infrarrojos no son compatibles.
<Port name>: Cadena de caracteres
Nombre del puerto pertinente:
  • Nombre del puerto serie::
    • COM1, COM2, COM3, ... COM256.
    • Java Nombre del puerto en serie en Java: /dev/ttyS4, /dev/ttyS5, ... /dev/ttyS9.
    • Linux Número de puerto serial en Linux (por ejemplo /dev/ttyS1).
    • AndroidWidget Android Nombre del puerto serie devuelto por sListPort.
  • Nombre del puerto paralelo: LPT1, LPT2, LPT3 o LPT4.
  • Nombre del puerto de infrarrojos: IR1, IR2, ... IR256.
LinuxAndroidWidget Android Recordatorio:
  • La gestión de puertos paralelos no está disponible.
  • Java Los puertos de infrarrojos no son compatibles.
<Size of input buffer>: Integro
Tamaño del búfer de entrada en bytes (hasta 32768).
<Size of output buffer>: Integro
Tamaño del búfer de salida en bytes (hasta 32768).
<Timeout>: Entero opcional
Duración (expresada en milisegundos) para que lea o escriba un carácter. Si <Timeout> se set a 1s al escribir 1024 bytes, el tiempo de espera será de 1024s.
Este parámetro se utiliza para evitar un bloqueo cuando se produce un problema de lectura o escritura en el puerto de impresión..
  • si <Timeout> es negativo, el tiempo de espera será constante. Por ejemplo, si el tiempo de <Timeout> es set a "-1s" al leer 1024 bytes, el tiempo de espera será de 1s.
  • Cuando <Timeout> ha expirado, la función de lectura o escritura devuelve 0.
  • El valor de Default de este parámetro se define a nivel de sistema.
    Para usar el tiempo de espera definido de forma predeterminada, utilice la constante sDefaultTimeout.
Este parámetro puede ser:
  • un número entero que corresponde al número de milisegundos,
  • una variable de tipo Duration,
  • la duración en un formato legible (por ejemplo, 1 s o 10 ms).
Java No se aplicará ningún tiempo de espera si no se especifica este parámetro.. La constante sDefaultTimeout no está disponible. Si se especifica un tiempo de espera, se aplicará a las operaciones de lectura realizadas en los puertos serie..
Observaciones

Modo de funcionamiento

  • No se puede abrir un puerto si no se ha cerrado correctamente.
  • Importante: Un puerto debe ser abierto por sOpen antes de que pueda ser configurado por sParameter.
  • WLanguage no le permite manejar las señales de control.
  • Dos ordenadores se envían caracteres a través de un puerto: si el segundo ordenador llama a sOpen una vez que los caracteres han sido enviados por el primer ordenador, estos caracteres son ignorados.
Observaciones:
  • WINDEV Si el archivo WIN.INI contiene valores de inicialización para el puerto serie especificado, se utilizan estos valores.
  • Windows Las siguientes entradas del registro devuelven la lista de puertos serie y puertos paralelos:
    • "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" para los puertos serie.
    • "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS" para los puertos paralelos.
Linux Caso especial para Linux:
  • Sólo se pueden abrir e inicializar los puertos serie.
  • Por Default, los usuarios no tienen acceso a los puertos seriales. Es necesario concederles derechos específicos para la gestión de los puertos serie..
Java

Utilización de una biblioteca externa: RXTX

En Java, el uso de funciones para el manejo de los puertos serie y paralelo (sOpen, sWrite, sRead, ...) requiere la presencia de una biblioteca externa: RXTX.
Esta biblioteca incluye un archivo Jar y una o más bibliotecas nativas que dependen del sistema operativo en el que se ejecuta la aplicación.. Para utilizar estas funciones:
  • el archivo Jar (RXTXComm.jar) debe:
    • en el mismo directorio que la aplicación Java generada por WINDEV,
    • en el classpath de ejecución de la aplicación,
    • ser incluido directamente en la aplicación generada (de la asistente para la generación de la Java).
  • se deben encontrar las bibliotecas nativas correspondientes al sistema operativo en el que se ejecuta la aplicación:
    • en el mismo directorio que la aplicación Java generada por WINDEV,
    • en la ruta de las librerías de aplicaciones (librarypath).
La biblioteca RXTX y su documentación pueden descargarse de: http://users.frii.com/jarvi/rxtx/index.html (enlace válido en el momento de la publicación de esta documentación).
Atención: La gestión de los puertos de infrarrojos no está disponible en Java.
AndroidWidget Android

Funciones específicas del widget Android y Android

En el modo de widget Android y Android, se pueden utilizar las funciones de puerto serie y paralelo:
  • Sólo en los puertos serie (no en los paralelos ni en los infrarrojos).
  • Sólo con dispositivos que soporten el protocolo CDC/ACM (Arduino ATmega32U4) y los siguientes chips convertidores de USB a serie:
    • FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD
    • Silabs CP210x
    • Qinheng CH340, CH341A
    • Prolífico PL2303
Características específicas de sOpen:
  • Sólo se pueden abrir e inicializar puertos serie.
  • El usuario verá un cuadro de diálogo para permitir que la aplicación se conecte al dispositivo.
  • Esta función debe ser llamada en la el hilo principal de la aplicación.
  • Los eventos no son compatibles.
  • Sólo está disponible la sintaxis para abrir e inicializar un puerto especificando su nombre.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 17/07/2022

Señalar un error o enviar una sugerencia | Ayuda local