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
  • Exemple : Ouverture d'un port avec délai d'attente
Exemple : Ouverture d'un port avec délai d'attente
WINDEVWEBDEV - Code ServeurCode Utilisateur (MCU)Ajax Cet exemple ouvre un port série avec gestion du délai d'attente.
NumPort est un entier = 1 // Numéro du port
// Chaîne à écrire sur le port
ChaîneAEcrire est une chaîne = "Chaîne à écrire"
TailleEcrite est un entier // Taille de la chaîne qui a pu être écrite
TailleBufferEntrée est un entier = 5000 // Taille du buffer des lectures
TailleBufferSortie est un entier = 5000 // Taille du buffer des écritures
// Temps d'attente des fonctions sLit/sEcrit entre deux caractères (en ms)
TempsAttentePort est un entier = 100
 
// Ouverture du port
SI sOuvre(NumPort, TailleBufferEntrée, TailleBufferSortie, TempsAttentePort) = Faux ALORS
// Traitement de l'erreur d'ouverture
Erreur("Erreur d'ouverture de COM" + NumPort)
SINON
  // Paramétrage du port
SI sFixeParamètre(NumPort, 9600, 0, 8, 0, Vrai, Vrai, Vrai) = Faux ALORS
// Traitement de l'erreur de paramétrage
Erreur("Erreur de paramétrage de COM" + NumPort)
SINON
BOUCLE
  // Ecriture sur le port
  TailleEcrite = sEcrit(NumPort, ChaîneAEcrire)
  // On teste ce qui a pu être écrit
SI TailleEcrite = 0 ET ChaîneAEcrire <> "" ALORS
// Rien n'a été écrit alors que la chaîne à écrire n'est pas vide
// Vérification du buffer de sortie
SI sDansFileSortie(NumPort) < TailleBufferSortie ALORS
// Le buffer de sortie n'est pas plein : problème de périphérique
SI OuiNon("Impossible d'écrire sur le port" + ...
 "COM" + NumPort,...
 "Vérifier qu'un périphérique est prêt" + ...
 "et correctement connecté.", ...
 "Voulez-vous ré-essayer ?") = Faux ALORS
SORTIR // Abandon de l'écriture
FIN
SINON
// Le buffer de sortie est plein
// Temporisation pour que le buffer de sortie puisse se vider
Multitâche(200)
// Re-vérification du buffer de sortie
SI sDansFileSortie(NumPort) >= TailleBufferSortie ALORS
// Le buffer de sortie est plein
SI OuiNon("Impossible d'écrire sur le port" + ...
  "COM" + NumPort, ...
  "Vérifier qu'un périphérique est prêt" + ...
  "et correctement connecté.", ...
  "Voulez-vous ré-essayer ?") = Faux ALORS
  SORTIR // Abandon de l'écriture
FIN
FIN
  FIN
SINON
SI TailleEcrite = Taille(ChaîneAEcrire) ALORS
// Tout a été écrit
SORTIR
// Sinon, seule une partie a été écrite
// Mais on a écrit, donc on continue d'essayer
FIN
FIN
FIN
FIN
  // Fermeture de COM1
  sFerme(NumPort)
FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

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