ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Windows functions / Serial/Parallel Ports functions
  • 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
Lit une chaîne de caractères dans le buffer d'entrée du port série spécifié. Le port doit être préalablement ouvert (fonction sOuvre).
Remarques :
  • Cette fonction ne peut pas être utilisée avec un port parallèle.
  • WEBDEV - Code Serveur Cette fonction concerne le poste serveur.
  • Java La gestion des ports infrarouges n'est pas disponible.
  • LinuxAndroidWidget Android Seuls les ports séries sont gérés.
Exemple
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)Ajax
// Lecture dans la variable Message de 20 caractères dans
// le buffer d'entrée de COM1
Mess est une chaîne
Mess = sLit(1, 20)
Syntaxe

Lire un nombre d'octets et récupérer une chaîne Masquer les détails

<Résultat> = sLit(<Numéro de port> , <Nombre d'octets à lire>)
<Résultat> : Chaîne de caractères
  • Chaîne de caractères lue dans le buffer d'entrée,
  • 0 si la lecture n'a pas été effectuée.
<Numéro de port> : Entier
  • Numéro du port série concerné : 1, 2, 3, ... 32 pour COM1, COM2, COM3, ... COM32.
  • Identifiant du port série renvoyé par la fonction sOuvre (si cette fonction a été appelée avec un nom de port série).
    LinuxAndroidWidget Android Seul ce type de paramètre est disponible.
<Nombre d'octets à lire> : Entier
Nombre d'octets à lire dans le buffer d'entrée du port série. Le nombre d'octets à lire peut être obtenu avec la fonction sDansFileEntrée.
Remarques

Divers

  • Si le port n'a pas été ouvert par la fonction sOuvre, la fonction sLit n'a aucune action.
  • La fonction sLit vide la file d'entrée du nombre d'octets réellement lus.
  • 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 lectures dans la fonction sOuvre. Lorsque le temps d'attente est terminé et si la lecture n'a pas pu être réalisée, sLit renvoie 0.
  • 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.
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)Ajax

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 coursEcriture
(fonction sEcrit)
Lecture
(fonction sLit)
Buffer contenant une chaîne au format ANSI
Buffer contenant une chaîne au format UNICODE
ANSI
(PC sous Windows par exemple)
La chaîne de caractères sera au format ANSIAucune conversion nécessaire
Conversion nécessaire (fonction UnicodeVersAnsi)
UNICODELa chaîne de caractères sera au format UNICODE
Conversion 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
Minimum version required
  • Version 9
Comments
Click [Add] to post a comment

Last update: 07/06/2022

Send a report | Local help