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
  • Varios
  • Transmisión entre dos ordenadores que utilizan cadenas de caracteres en diferentes formatos (UNICODE y ANSI)
  • Utilización de una biblioteca externa: RXTX
  • Características 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
Escribe una cadena de caracteres en el búfer de salida del puerto serie, puerto paralelo o puerto de infrarrojos especificado. El final de la escritura puede ser comprobado por sInExitQueue.
Observaciones:
  • El puerto debe abrirse previamente (sOpen).
  • Java Los puertos de infrarrojos no son compatibles.
  • LinuxAndroidWidget Android Sólo se admiten puertos serie.
  • WEBDEV - Código Servidor Esta función devuelve información sobre el servidor.
Ejemplo
// The COM2 port is opened
PortNum = sOpen("COM2", 2000, 2000) // Open COM2
IF PortNum <> 0 THEN
sMessage is string
// Send a message to the output buffer of COM2
sWrite(PortNum, sMessage)
// Wait for the end of the write operation
LOOP
IF sInExitQueue(2) = 0 THEN BREAK
END
Info("End of write operation")
END
Sintaxis
AndroidWidget Android Sintaxis no disponible en el widget Android y Android

Escribir una cadena de caracteres en el búfer de salida de un puerto Ocultar los detalles

<Result> = sWrite(<Port number> , <String to write>)
<Result>: Integro
  • Número de caracteres escritos,
  • 0 si el tiempo de espera ha terminado y si la escritura no se ha realizado.
<Port number>: Integro
Identificador del puerto utilizado:
  • Número de puerto:
    • Número del puerto serie: 1, 2, 3, ... 32 para COM1, COM2, COM3, ... COM32.
    • Número del puerto paralelo: -1, -2, -3 o -4 para LPT1, LPT2, LPT3 o LPT4.
    • Número del puerto de infrarrojos: 1, 2, 3, ... 32 para IR1, IR2, IR3, ... IR32.
      LinuxJava Los puertos de infrarrojos no son compatibles.
  • Identificador del puerto devuelto por sOpen (si esta función fue llamada con un nombre de puerto).
    Linux Sólo está disponible este tipo de parámetro.
<String to write>: Cadena de caracteres
Cadena de caracteres que se debe escribir en la memoria intermedia de salida.

Escribir un búfer en el búfer de salida de un puerto Ocultar los detalles

<Result> = sWrite(<Port number> , <Buffer to write>)
<Result>: Integro
  • Número de caracteres escritos,
  • 0 si el tiempo de espera ha terminado y si la escritura no se ha realizado.
<Port number>: Integro
Identificador del puerto utilizado:
  • Número de puerto:
    • Número del puerto serie: 1, 2, 3, ... 32 para COM1, COM2, COM3, ... COM32.
    • Número del puerto paralelo: -1, -2, -3 o -4 para LPT1, LPT2, LPT3 o LPT4.
    • Número del puerto de infrarrojos: 1, 2, 3, ... 32 para IR1, IR2, IR3, ... IR32.
      Java Los puertos de infrarrojos no son compatibles.
  • Identificador del puerto devuelto por sOpen (si esta función fue llamada con un nombre de puerto).
    LinuxAndroidWidget Android Sólo está disponible este tipo de parámetro.
<Buffer to write>: Buffer
Buffer que debe escribirse en el buffer de salida.
Observaciones

Varios

  • sOpen no tiene efecto si el puerto no fue abierto por sWrite.
  • Una aplicación de 32 bits se bloquea durante la transferencia.. Para evitar este bloqueo, hay que especificar el tiempo de espera entre dos operaciones de escritura en sOpen. Cuando el tiempo de espera ha terminado y si la escritura no se ha realizado, sWrite devuelve 0.
    Java sWrite es una función de bloqueo durante la transferencia aunque se haya especificado un tiempo de espera en sOpen.
  • El tiempo necesario para transferir la cadena depende de la velocidad de transmisión.
  • El ramal o la memoria intermedia se transfiere automáticamente.
  • WLanguage no soporta las señales de control.
  • El tiempo de espera para leer o escribir un carácter se especifica con sOpen.
    • Si este tiempo se set a 1s al leer 1024 bytes, el tiempo de espera será de 1024s.
    • Si este tiempo se set a "-1s" al leer 1024 bytes, el tiempo de espera será de 1s.
    Esto evita problemas de bloqueo al leer o escribir en el puerto de impresión.

Transmisión entre dos ordenadores que utilizan cadenas de caracteres en diferentes formatos (UNICODE y ANSI)

Algunas conversiones son necesarias para realizar una transmisión entre dos ordenadores que utilizan formatos diferentes de cadenas de caracteres (Windows (ANSI) y Windows Mobile (UNICODE), por ejemplo):
Formato de las cadenas de caracteres en el equipo actual
Escritura
(función sWrite)
Lectura
(sRead)
Cadena en formato ANSI
Cadena en formato UNICODE
ANSI
(PC con Windows, por ejemplo)
La cadena de caracteres estará en formato ANSINo se requiere ninguna conversiónConversión necesaria (UnicodeToAnsi)
UNICODELa cadena de caracteres estará en formato UNICODEConversión necesaria (AnsiToUnicode)No se requiere ninguna conversión
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

Características 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
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