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
  • Fonctionnement
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
Ouvre et initialise :
  • soit un port série.
  • soit un port parallèle.
  • soit un port infrarouge. Dans ce cas, seule la deuxième syntaxe est disponible.
Les valeurs par défaut sont les suivantes :
  • Taux de transfert : 9600 Bauds
  • Parité : Aucune
  • 8 bits de données
  • 1 bit stop
Linux La gestion des ports parallèles et infrarouges n'est pas disponible.
WEBDEV - Code Serveur Cette fonction concerne le poste serveur.
Windows
// Ouverture de COM1 (en utilisant le numéro du port)
LigneCom1 = sOuvre(1, 2000, 2000)
SI LigneCom1 = Vrai ALORS
// Paramétrage de COM1 : Taux 9600, parité paire,
// 8 bits de données, 1 bit de stop
sFixeParamètre(1, 9600, 1, 8, 0)
// Suite traitement...
// Fermeture de COM1
sFerme(1)
SINON
Erreur("Erreur d'ouverture de COM1")
FIN
// Ouverture de IR1 (en utilisant le nom du port)
IR1 = sOuvre("IR1", 2000, 2000)
SI IR1 <> 0 ALORS
// Paramétrage de IR1
sFixeParamètre(IR1, 9600, 1, 8, 1)
// Suite traitement...
// Fermeture de IR1
sFerme(IR1)
SINON
Erreur("Erreur d'ouverture de IR1")
FIN
Syntaxe
Linux Non disponible en Linux, Android et Widget Android

Ouvrir et initialiser un port en spécifiant son numéro Masquer les détails

<Résultat> = sOuvre(<Numéro de port> , <Taille du buffer d'entrée> , <Taille du buffer de sortie> [, <Durée d'attente> [, <Gestion des événements>]])
<Résultat> : Booléen
  • Vrai si le port a été ouvert et initialisé,
  • Faux dans le cas contraire.
<Numéro de port> : Entier
Numéro du port concerné :
  • Numéro du port série : 1, 2, 3, ... 256 pour COM1, COM2, COM3, ... COM256.
  • Numéro de port parallèle : -1, -2, -3 ou -4 pour LPT1, LPT2, LPT3 ou LPT4.
<Taille du buffer d'entrée> : Entier
Taille en octets du buffer d'entrée (32768 au maximum).
<Taille du buffer de sortie> : Entier
Taille en octets du buffer de sortie (32768 au maximum).
<Durée d'attente> : Entier optionnel ou Durée optionnelle
Durée (exprimée en millisecondes) accordée pour la lecture ou l'écriture d'un caractère. Ainsi, si <Durée d'attente> vaut 1s avec une lecture de 1024 octets, la durée d'attente effective sera de 1024s.
Ce paramètre permet d'éviter un blocage lors d'un problème de lecture ou d'écriture sur le port d'impression.
  • si <Durée d'attente> est négatif, la durée d'attente sera constante. Par exemple, si <Durée d'attente> vaut "-1s" avec une lecture de 1024 octets, la durée d'attente effective sera de 1s.
  • Lorsque la <Durée d'attente> est expirée, la fonction de lecture ou d'écriture renvoie 0.
  • La valeur par défaut de ce paramètre est définie au niveau du système.
    Pour utiliser la durée d'attente définie par défaut, utilisez la constante sTimeoutDéfaut.
Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
<Gestion des événements> : Booléen optionnel
  • Vrai pour détecter des événements sur le port série,
  • Faux (valeur par défaut) pour ne pas gérer les événements. Ces événements pourront être gérés par la fonction sEvénement.

Ouvrir et initialiser un port en spécifiant son nom Masquer les détails

<Résultat> = sOuvre(<Nom du port> , <Taille du buffer d'entrée> , <Taille du buffer de sortie> [, <Durée d'attente>])
<Résultat> : Entier
  • Identifiant du port ouvert. Cet identifiant peut être directement utilisé dans les fonctions de gestion des ports.
    Cet identifiant correspond :
    • soit au numéro du port série concerné : 1, 2, 3, ... 256 pour COM1, COM2, COM3, ... COM256.
    • soit au numéro de port parallèle concerné : -1, -2, -3 ou -4 pour LPT1, LPT2, LPT3 ou LPT4.
    • soit au numéro du port infrarouge concerné : 1, 2, 3, ... 256 pour IR1, IR2, IR3, ... IR256.
  • 0 en cas d'erreur.
Linux Attention :
  • Cet identifiant ne correspond pas au numéro du port série concerné.
  • La gestion des ports parallèles n'est pas disponible.
<Nom du port> : Chaîne de caractères
Nom du port concerné :
  • Nom du port série : :
    • COM1, COM2, COM3, ... COM256.
    • Linux Nom du port série en Linux (par exemple /dev/ttyS1).
  • Nom du port parallèle : LPT1, LPT2, LPT3 ou LPT4.
  • Nom du port infrarouge : IR1, IR2, ... IR256.
Linux Rappel :
  • La gestion des ports parallèles n'est pas disponible.
<Taille du buffer d'entrée> : Entier
Taille en octets du buffer d'entrée (32768 au maximum).
<Taille du buffer de sortie> : Entier
Taille en octets du buffer de sortie (32768 au maximum).
<Durée d'attente> : Entier optionnel
Durée (exprimée en millisecondes) accordée pour la lecture ou l'écriture d'un caractère. Ainsi, si <Durée d'attente> vaut 1s avec une lecture de 1024 octets, la durée d'attente effective sera de 1024s.
Ce paramètre permet d'éviter un blocage lors d'un problème de lecture ou d'écriture sur le port d'impression.
  • si <Durée d'attente> est négatif, la durée d'attente sera constante. Par exemple, si <Durée d'attente> vaut "-1s" avec une lecture de 1024 octets, la durée d'attente effective sera de 1s.
  • Lorsque la <Durée d'attente> est expirée, la fonction de lecture ou d'écriture renvoie 0.
  • La valeur par défaut de ce paramètre est définie au niveau du système.
    Pour utiliser la durée d'attente définie par défaut, utilisez la constante sTimeoutDéfaut.
Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques

Fonctionnement

  • L'ouverture d'un port ne peut s'effectuer que si ce port a été correctement fermé.
  • Important : Un port doit être ouvert avec la fonction sOuvre avant d'être paramétré par la fonction sFixeParamètre.
  • Le WLangage ne permet pas de gérer les signaux de contrôle.
  • Deux postes s'envoient des caractères par un port : si le second poste utilise la fonction sOuvre après l'envoi des caractères par le premier poste, ces caractères sont ignorés.
Remarques :
  • Windows Il est possible d'obtenir la liste des ports séries et des ports parallèles grâce aux entrées suivantes de la base de registre :
    • "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" pour les ports séries.
    • "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS" pour les ports parallèles.
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.
Classification Métier / UI : Code métier
Composante : wd290com.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Permettre à chaque poste client de lire et écrire sur son port série
Est-il possible de permettre à chaque utilisateur de l'application sur chacun des postes clients (3 par exemple) d'accéder chacun au port série de sa machine? Si oui comment?
Merci.
Franck
19 déc. 2016

Dernière modification : 06/07/2022

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