DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Ports série et parallèle
  • Utilisation d'une librairie externe : RXTX
  • Spécificités Android et Widget Android
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Fixe ou modifie les paramètres de configuration du port série, du port parallèle ou du port infrarouge spécifié. Ce paramétrage est facultatif.
Les valeurs par défaut sont les suivantes :
  • Taux de transfert : 9600 Bauds
  • Parité : Aucune
  • 8 bits de données
  • 1 bit stop
Attention : Le paramétrage de deux postes en liaison doit être identique.
Remarques :
  • Le port doit être ouvert (fonction sOuvre) avant l'appel de la fonction sFixeParamètre. La fonction sOuvre initialise automatiquement le port série.
  • LinuxAndroidWidget AndroidJava La gestion des ports infrarouges n'est pas disponible.
  • WEBDEV - Code Serveur Cette fonction renvoie les informations concernant le poste serveur.
  • LinuxAndroidWidget Android Seuls les ports séries sont gérés.
Exemple
NumPort = sOuvre("COM1", 2000, 2000) // Ouverture de COM1
SI NumPort <> 0 ALORS
// Paramétrage Com1 : Taux 9600, Parité paire,
// 8 bits de données, 1 bit de stop
SI sFixeParamètre(NumPort, 9600, 1, 8, 0) ALORS // Paramétrage de COM1
// Suite traitement...
SINON
Erreur("Erreur de configuration de COM1", ErreurInfo(errComplet))
FIN
sFerme(NumPort) // Fermeture de COM1
SINON
Erreur("Erreur d'ouverture de COM1", ErreurInfo(errComplet))
FIN
Syntaxe
<Résultat> = sFixeParamètre(<Numéro de port> , <Taux> , <Parité> , <Nb Bits Données> , <Nb Bits Stop> [, <DTR/DSR> [, <RTS/CTS> [, <XON/XOFF>]]])
<Résultat> : Booléen
  • Vrai si les paramètres ont été correctement initialisés,
  • Faux dans le cas contraire. La fonction HErreurInfo permet d'obtenir plus de détails.
Remarque : Si le port n'a pas été ouvert préalablement (par la fonction sOuvre), la fonction sFixeParamètre n'a aucun effet.
<Numéro de port> : Entier
Identifiant du port manipulé :
  • Numéro de port :
    • Numéro du port série : 1, 2, 3, ... 32 pour COM1, COM2, COM3, ... COM32.
    • Numéro du port parallèle : -1, -2, -3 ou -4 pour LPT1, LPT2, LPT3 ou LPT4.
    • Numéro du port infrarouge : 1, 2, 3, ... 32 pour IR1, IR2, IR3, ... IR32.
  • Identifiant du port renvoyé par la fonction sOuvre (si cette fonction a été appelée avec un nom de port).
    LinuxAndroidWidget Android Seul ce type de paramètre est disponible.
<Taux> : Entier
Taux de transfert des données (exprimé en Bauds ou Bits par seconde).
<Parité> : Entier
Parité du transfert :
0Aucune parité
1Parité paire
2Parité impaire
<Nb Bits Données> : Entier
Nombre de bits par caractère : 4, 5, 6, 7 ou 8.
<Nb Bits Stop> : Entier
Nombre de bits stop :
01 bit stop
11.5 bits stop
22 bits stop
<DTR/DSR> : Entier optionnel
  • 0 (ou Faux, valeur par défaut) si le protocole DTR/DSR doit être ignoré et s'il doit être en mode "actif".
  • 1 (ou Vrai) si le protocole DTR/DSR doit être en mode "Handshake",
  • 2 si le protocole DTR/DSR doit être ignoré et s'il doit être en mode "inactif".
    Pour plus de détails sur les valeurs possibles, consultez la documentation de référence de gestion des ports de communication.
AndroidWidget AndroidJava Ce paramètre est ignoré.
<RTS/CTS> : Entier optionnel
  • 0 (ou Faux, valeur par défaut) si le protocole RTS/CTS doit être ignoré et s'il doit être en mode "actif".
  • 1 (ou Vrai) si le protocole RTS/CTS doit être en mode "Handshake",
  • 2 si le protocole RTS/CTS doit être ignoré et s'il doit être en mode "inactif".
    Pour plus de détails sur les valeurs possibles, consultez la documentation de référence de gestion des ports de communication.
AndroidWidget AndroidJava Ce paramètre est ignoré.
<XON/XOFF> : Booléen optionnel
  • Vrai si le protocole XON/XOFF doit être pris en compte,
  • Faux (valeur par défaut) si ce protocole doit être ignoré.
AndroidWidget AndroidJava Ce paramètre est ignoré.
Remarques
Linux Cas particulier sous Linux :
  • Seuls les ports série peuvent être ouverts et initialisés.
  • Par défaut, l'utilisateur n'a pas accès aux ports série. Il est nécessaire de lui accorder des droits spécifiques pour manipuler les ports série.
Java

Utilisation d'une librairie externe : RXTX

En Java, l'utilisation des fonctions de manipulation des ports séries et parallèles (fonctions sOuvre, sEcrit, sLit, ...) nécessite la présence d'une librairie externe : RXTX.
Cette librairie est composée d'une archive Jar et d'une ou plusieurs librairies natives dépendantes du système d'exploitation sur lequel s'exécute l'application. Pour utiliser ces fonctions :
  • l'archive jar (RXTXComm.jar) doit :
    • soit se trouver dans le même répertoire que l'application Java générée par WINDEV,
    • soit se trouver dans le classpath d'exécution de l'application,
    • soit être directement intégrée dans l'application générée (depuis l'assistant de génération Java).
  • la ou ou les librairies natives correspondant au système d'exploitation sur lequel s'exécute l'application doivent se trouver:
    • soit dans le même répertoire que l'application Java générée par WINDEV,
    • soit dans le chemin des librairies de l'application (librarypath).
Il est possible de télécharger la librairie RXTX et sa documentation grâce au lien suivant : http://users.frii.com/jarvi/rxtx/index.html (lien valide lors de l'écriture de cette documentation).
Attention : La gestion des ports infrarouges n'est pas disponible en Java.
AndroidWidget Android

Spécificités Android et Widget Android

Sous Android et en mode Widget Android, les fonctions de manipulations des ports séries et parallèles sont utilisables :
  • Uniquement sur les ports séries (pas sur les ports parallèles ni sur les ports infrarouges).
  • Uniquement avec les appareils qui implémentent le protocole CDC/ACM (Arduino ATmega32U4) et les puces de conversion USB vers série suivantes :
    • FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD
    • Silabs CP210x
    • Qinheng CH340, CH341A
    • Prolific PL2303
Classification Métier / UI : Code métier
Composante : wd290com.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
ACM0 sur Raspberry ou plateforme Linux
Contrairement au port ttyUSB0 les ports ACM0 ne sont pas reconnu.
il faut absolument les déclares en java :
public static void SERIALINIT ()
{

String SerialPortID = "/dev/ttyACM0" ;
System . setProperty ( "gnu.io.rxtx.SerialPorts" , SerialPortID );

}

De plus 'sFixeParamètre' ne fonctionne pas . aussi bien sur ttyUSB0 que ACM0
Jean luc
25 oct. 2016
Pour gérer la parité Mark et Space
Si vous désirez gérer la parité Mark et Space, il faut donner la bonne valeur à la variable de parité:

0 Aucune parité
1 Parité paire
2 Parité impaire
3 Mark
4 Space

Exemple:
sFixeParamètre(1, 9600, 3, 8, 0)

Port 1, 9600 bauds, parité Mark, 8 bits de données, 1 bit de stop
Eric LAURENT ( SYSTE
11 juin 2010

Dernière modification : 24/10/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale