ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Windows functions / Serial/Parallel Ports functions
  • Using an external library: RXTX
  • Features specific to Android and Android widget
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Defines or modifies the parameters for configuring the specified serial port, parallel port or infrared port. This setting is optional.
The default values are as follows:
  • Transfer rate: 9600 Bauds
  • Parity: None
  • 8 data bits
  • 1 stop bit
Caution: The setting for two linked computers must be identical.
Remarks:
  • The port must be opened (sOpen) before the call to sParameter. sOpen automatically initializes the serial port.
  • LinuxAndroidAndroid Widget Java Infrared ports are not supported.
  • WEBDEV - Server code This function returns information regarding the server.
  • LinuxAndroidAndroid Widget Only serial ports are supported.
Example
PortNum = sOpen("COM1", 2000, 2000) // Open COM1
IF PortNum <> 0 THEN
// Configure Com1: Rate 9600, even parity, 
// 8 data bits, 1 stop bit
IF sParameter(PortNum, 9600, 1, 8, 0) THEN // Configure COM1 
// Rest of process...
ELSE
Error("COM1 configuration error", ErrorInfo(errFullDetails))
END
sClose(PortNum) // Close COM1
ELSE
Error("Error opening COM1", ErrorInfo(errFullDetails))
END
Syntax
<Result> = sParameter(<Port number> , <Rate> , <Parity> , <Nb Data Bits> , <Nb Stop Bits> [, <DTR/DSR> [, <RTS/CTS> [, <XON/XOFF>]]])
<Result>: Boolean
  • True if the parameters have been initialized properly,
  • False otherwise. HErrorInfo returns more details.
Remark: sParameter has no effect if the port was not opened beforehand (by sOpen).
<Port number>: Integer
Identifier of the port used:
  • Port number:
    • Number of the serial port: 1, 2, 3, ... 32 for COM1, COM2, COM3, ... COM32.
    • Number of the parallel port: -1, -2, -3 or -4 for LPT1, LPT2, LPT3 or LPT4.
    • Number of the infrared port: 1, 2, 3, ... 32 for IR1, IR2, IR3, ... IR32.
  • Port identifier returned by sOpen (if this function was called with a port name).
    LinuxAndroidAndroid Widget Only this type of parameter is available.
<Rate>: Integer
Rate of data transfer (expressed in Bauds or Bits per second).
<Parity>: Integer
Parity of the transfer:
0No parity
1Even parity
2Odd parity
<Nb Data Bits>: Integer
Number of bits per character: 4, 5, 6, 7 or 8.
<Nb Stop Bits>: Integer
Number of stop bits:
01 stop bit
11.5 stop bits
22 stop bits
<DTR/DSR>: Optional integer
  • 0 (or False, default value) if the DTR/DSR protocol must be ignored and if it should be in "active" mode.
  • 1 (or True) if the DTR/DSR protocol must be in "Handshake" mode,
  • 2 if the DTR/DSR protocol must be ignored and if it should be in "inactive" mode.
    For more details, see the documentation for managing communication ports.
AndroidAndroid Widget Java This parameter is ignored.
<RTS/CTS>: Optional integer
  • 0 (or False, default value) if the RTS/CTS protocol must be ignored and if it should be in "active" mode.
  • 1 (or True) if the RTS/CTS protocol must be in "Handshake" mode,
  • 2 if the RTS/CTS protocol must be ignored and if it should be in "inactive" mode.
    For more details, see the documentation for managing communication ports.
AndroidAndroid Widget Java This parameter is ignored.
<XON/XOFF>: Optional boolean
  • True if the XON/XOFF protocol must be taken into account,
  • False (default value) if this protocol must be ignored.
AndroidAndroid Widget Java This parameter is ignored.
Remarks
Linux Special case for Linux:
  • Only serial ports can be opened and initialized.
  • By default, users do not have access to serial ports. It is necessary to grant them specific rights to manage serial ports.
Java

Using an external library: RXTX

In Java, the use of functions for handling the serial and parallel ports (sOpen, sWrite, sRead, ...) requires the presence of an external library: RXTX.
This library includes a Jar archive and one or more native libraries that depend on the operating system on which the application is run. To use these functions:
  • the Jar archive (RXTXComm.jar) must:
    • be found in the same directory as the Java application generated by WINDEV,
    • be found in the execution classpath of the application,
    • be directly included in the generated application (from the wizard for Java generation).
  • the native libraries corresponding to the operating system on which the application is run must be found:
    • in the same directory as the Java application generated by WINDEV,
    • in the path of the application libraries (librarypath).
The RXTX library and its documentation can be downloaded from: http://users.frii.com/jarvi/rxtx/index.html (link valid at the time this documentation was published).
Caution: The management of infrared ports is not available in Java.
AndroidAndroid Widget

Features specific to Android and Android widget

In Android and Android widget mode, the serial and parallel port functions can be used:
  • Only on serial (not parallel or infrared) ports.
  • Only with devices that support the CDC/ACM protocol (Arduino ATmega32U4) and the following USB to serial converter chips:
    • FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD
    • Silabs CP210x
    • Qinheng CH340, CH341A
    • Prolific PL2303
Business / UI classification: Business Logic
Component: wd290com.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
exemplo
sClose(EDT_Porta_COM)
// Open COM (using the port number)
// sOpen(Porta,SizeInBuffer,SizeOutBuffer,Timeout,ManagerEvents)
LineCom is boolean = sOpen(EDT_Porta_COM, EDT_Buffer_de_Entrada, EDT_Buffer_de_Saida)

IF LineCom = True THEN
// Configure COM1: Rate 9600, even parity,
// 8 data bits, 1 stop bit
//sParameter()
LineCom = sParameter(EDT_Porta_COM, EDT_Bit_por_segundos, EDT_Paridade, EDT_Bit_de_Dados, EDT_Bit_de_Parada)
// Rest of process...
EDT_Historico += sRead(EDT_Porta_COM,EDT_Buffer_de_Entrada) + CR + CR

EDT_Historico += sWrite(EDT_Porta_COM,EDT_Comando_AT) + CR + CR

EDT_Historico += sRead(EDT_Porta_COM,EDT_Buffer_de_Entrada) + CR + CR
// Close COM1
sClose(EDT_Porta_COM)
ELSE
Error("Error while opening COM"+EDT_Porta_COM)
END




Boller
20 May 2022

Last update: 01/13/2023

Send a report | Local help