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
  • Divers
  • Transmission entre deux postes utilisant des formats de chaînes de caractères différents (UNICODE et ANSI)
  • 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
Écrit une chaîne de caractères dans le buffer de sortie du port série, du port parallèle ou du port infrarouge spécifié. La fin de l'écriture de la chaîne peut être contrôlée grâce à la fonction sDansFileSortie.
Remarques :
  • Le port doit être préalablement ouvert (fonction sOuvre).
  • Java La gestion des ports infrarouges n'est pas disponible.
  • LinuxAndroidWidget Android Seuls les ports séries sont gérés.
  • WEBDEV - Code Serveur Cette fonction renvoie les informations concernant le poste serveur.
Exemple
// Le port COM2 est ouvert
NumPort = sOuvre("COM2", 2000, 2000) // Ouverture de COM2
SI NumPort <> 0 ALORS
sMessage est une chaîne
// Envoi d'un message au buffer de sortie de COM2
sEcrit(NumPort, sMessage)
// Attendre la fin de l'écriture
BOUCLE
SI sDansFileSortie(2) = 0 ALORS SORTIR
FIN
Info("Fin de l'écriture")
FIN
Syntaxe
AndroidWidget Android Syntaxe non disponible sous Android et en mode Widget Android

Écrit une chaîne de caractères dans le buffer de sortie d'un port Masquer les détails

<Résultat> = sEcrit(<Numéro de port> , <Chaîne à écrire>)
<Résultat> : Entier
  • Nombre de caractères écrits,
  • 0 si le temps d'attente est terminé et si l'écriture n'a pas été effectuée.
<Numéro de port> : Entier
Identifiant du port manipulé :
  • Numéro de port :
    • Numéro de port série : 1, 2, 3, ... 32 pour COM1, COM2, COM3, ... COM32.
    • Numéro de 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.
      LinuxJava La gestion des ports infrarouges n'est pas disponible.
  • Identifiant du port renvoyé par la fonction sOuvre (si cette fonction a été appelée avec un nom de port).
    Linux Seul ce type de paramètre est disponible.
<Chaîne à écrire> : Chaîne de caractères
Chaîne de caractères à écrire dans le buffer de sortie.

Écrit un buffer dans le buffer de sortie d'un port Masquer les détails

<Résultat> = sEcrit(<Numéro de port> , <Buffer à écrire>)
<Résultat> : Entier
  • Nombre de caractères écrits,
  • 0 si le temps d'attente est terminé et si l'écriture n'a pas été effectuée.
<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.
      Java La gestion des ports infrarouges n'est pas disponible.
  • 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.
<Buffer à écrire> : Buffer
Buffer à écrire dans le buffer de sortie.
Remarques

Divers

  • Si le port n'a pas été ouvert par la fonction sOuvre, la fonction sEcrit n'a aucune action.
  • Une application 32 bits est bloquée pendant la durée du transfert. Pour éviter ce blocage, il faut préciser le temps d'attente entre deux écritures dans la fonction sOuvre. Lorsque le temps d'attente est terminé et si l'écriture n'a pas pu être réalisée, sEcrit renvoie 0.
    Java La fonction sEcrit est bloquante durant le transfert même si une durée d'attente a été spécifiée dans la fonction sOuvre.
  • La durée de transfert effective de la chaîne dépend de la vitesse de transmission.
  • La chaîne ou le buffer est transféré(e) automatiquement.
  • Le WLangage ne permet pas de gérer les signaux de contrôle.
  • La durée d'attente accordée pour la lecture ou l'écriture d'un caractère est spécifiée avec la fonction sOuvre.
    • Si cette durée vaut 1s avec une lecture de 1024 octets, la durée d'attente effective sera de 1024s.
    • Si cette durée vaut "-1s" avec une lecture de 1024 octets, la durée d'attente effective sera de 1s.
    Il est ainsi possible d'éviter un blocage lors d'un problème de lecture ou d'écriture sur le port d'impression.

Transmission entre deux postes utilisant des formats de chaînes de caractères différents (UNICODE et ANSI)

Lors de la transmission de messages entre deux postes utilisant un format de chaînes de caractères différent (par exemple Windows (ANSI) et Windows Mobile (UNICODE)), certaines conversions sont nécessaires  :
Format des chaînes de caractères sur le poste en cours
Ecriture
(fonction sEcrit)
Lecture
(fonction sLit)
Chaîne au format ANSI
Chaîne au format UNICODE
ANSI
(PC sous Windows par exemple)
La chaîne de caractères sera au format ANSIAucune conversion nécessaireConversion nécessaire (fonction UnicodeVersAnsi)
UNICODELa chaîne de caractères sera au format UNICODEConversion nécessaire (fonction AnsiVersUnicode)Aucune conversion nécessaire
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
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/07/2022

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