Comment faire pour résoudre les problèmes de Port de communication commun QuickBasic

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

Résumé

Cet article présente des conseils de dépannage pour l’utilisation des communications série dans Microsoft QuickBasic versions 4.0 et 4.5, dans les versions 6.0 et 6.0b pour MS-DOS et MS OS/2 de compilateur Basic de Microsoft et de Microsoft base Professionnel développement système (PDS) versions 7.0 et 7.1 4.0b.


Cet article donne une instruction OPEN COM qui devrait fonctionner correctement. Conseils de résolution des problèmes de communications supplémentaires sont également indiquées. Pour un article, consultez l’article suivant dans la Base de connaissances Microsoft :
39386 des explications de Message d’erreur lorsque vous utilisez COM1 : et COM2 :

Plus d'informations

Si vous avez des problèmes à l’aide de « COM1 : » ou « COM2 : », essayez de l’instruction OPEN suivante, ce qui rend Basic comme tolérance de problèmes liés au matériel :
OUVRIR « COM1:300, N, 8, 1, EMPLACEMENT, CD0, CS0, DS0, OP0, RS, TB2048, RB2048 » # 1
(Cette ouverture est de vive). Voici une explication de chaque paramètre recommandé utilisé dans cette instruction OPEN :


  1. Plus le débit est élevé, plus le risque de voir les problèmes ; 300 bauds est donc peu probable pour vous donner des problèmes. 2400 bauds est la vitesse la plus élevée possible sur la plupart des lignes téléphoniques, en raison de leur capacité de haute fréquence limitée. 19 200 bauds, qui requiert une connexion par câble directe, est plus susceptible de provoquer des problèmes. (Débit en bauds possible pour QuickBasic est 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600 et 19 200.)
  2. Parité généralement ne permet pas de manière significative ; de ce fait, vous devriez sans parité (N).


    Pour les périphériques nécessitant une parité, vous devez utiliser l’option PE (activer la parité) dans l’instruction OPEN COM, qui est requis pour activer le contrôle de parité. Lorsque l’option PE active la vérification de la parité, une « erreur de périphérique d’e/s » se produit si les deux programmes de communication ont deux parités différentes. (Parité peut être pair, impair, aucun, espace ou la marque). Par exemple, une « erreur de périphérique d’e/s » se produit lors de deux programmes de communiquer entre eux sur une ligne série avec les instructions COM ouvrir différentes deux suivantes :
          OPEN "COM1:1200,O,7,2,PE" FOR RANDOM AS #1
    et
          OPEN "COM2:1200,E,7,2,PE" FOR RANDOM AS #2
    Si l’option PE est supprimée à partir d’instructions COM ouverte ci-dessus, aucun message d’erreur s’affiche.
  3. L’exemple ci-dessus utilise les 8 bits de données et 1 bit d’arrêt. Huit bits de données ne nécessite aucune parité (N), en raison de la limite de taille de trame de données communication de Basic (10 bits).
  4. L’emplacement (mode binary) est la valeur par défaut. Remarque : L’option ASC ne prend pas en charge les protocole XON/XOFF, et les caractères XON et XOFF sont transmis sans prise en charge spéciale.
  5. Ignorer le protocole de transfert matériel souvent corrige de nombreux problèmes. Par conséquent, si votre application ne requiert pas de protocole de communication, vous devriez désactiver la suivant ligne-vérification du matériel :
    Cd0 = désactive le délai pour la ligne de détection de porteuse (DCD)
    CS0 = désactive délai d’attente pour la ligne d’envoyer CTS (Clear To)
    DS0 = désactive le délai pour la ligne du jeu de données prêt (DSR)
    OP0 = désactive du délai d’attente pour une ouverture réussie
  6. RS supprime la détection de demande à envoyer (RTS).
  7. Pour les problèmes liés à la mémoire tampon, essayez d’augmenter la transmission et les tailles de tampon au-dessus de la valeur par défaut de 512 octets :
    TB2048 = augmente la taille du tampon de transmission à 2 048 octets
    RB2048 = augmente la taille de la mémoire tampon à 2 048 octets
    Un plus grande mémoire tampon de réception peut vous aider à contourner les délais base causés par des instructions telles que peinture, qui utilisent le processeur de manière intensive.
Autres conseils importants pour la résolution des problèmes de communication sont les suivantes :


  1. Soyez la fonction INPUT$(x) en association avec la fonction LOC(n) pour recevoir toutes les entrées du périphérique de communications (où « x » est le nombre de caractères retournés par LOC(n), qui est le nombre de caractères dans la file d’attente d’entrée en attente pour la lecture. « n » est le numéro du fichier que vous avez ouvert pour « COM1 : » ou « COM2 : »).


    Évitez d’entrer dans le port de communication, car l’entrée #n attend un chariot (ASCII 13) retour à l’aide de l’instruction INPUT #n.


    Évitez d’utiliser l’instruction GET #n pour communications car GET #n attend que la mémoire tampon à remplir (et dépassement de mémoire tampon pourrait se produire ensuite).


    Également, évitez d’utiliser l’instruction PUT #n pour les communications et utilisez à la place de l’instruction de #n PRINT. Par exemple, dans la syntaxe QuickBasic 4.0b et 4.5, base du compilateur 6.0 et 6.0b et base PDS 7.0 et 7.1, à l’aide de l’instruction PUT #n,, x$ pour l’envoi d’une variable de chaîne de longueur variable comme le troisième argument de l’instruction PUT #n instruction envoie un 2 octets supplémentaires, qui contient la longueur de la chaîne avant la chaîne réelle. Ces 2 octets envoyés vers le port de communication risque de perturber votre programme de réception s’il n’est pas conçu pour les gérer. Aucun octet de longueur n’est envoyés avec l’instruction PUT #n,, x$ dans QuickBasic 4.0. (QuickBasic versions antérieures à 4.0 n’offrent pas la fonctionnalité à utiliser une variable en tant que troisième argument de l’instruction PUT #n.)
  2. Pour obtenir un exemple de communication de données, veuillez vous reporter au TERMINAL. BAS exemple de programme qui est fourni sur le disque de version pour les versions 7.0 et 7.1 de Microsoft base Professionnel développement système (PDS) pour QuickBasic versions 4.0 et 4.5 4.0b et pour les versions 6.0 et 6.0b de compilateur Basic de Microsoft. De nombreux problèmes de communication peuvent être dû à la conception du code source inapproprié et de flux de contrôle.
  3. De nombreux problèmes de communication peuvent uniquement être affichées sur certaines configurations matérielles et sont difficiles à résoudre, ou dupliquer sur d’autres ordinateurs. Nous vous recommandons d’expérimenter une connexion directe (avec un petit câble null-modem) plutôt qu’avec une liaison modem téléphonique entre l’expéditeur et le destinataire à identifier des problèmes sur une configuration donnée.
  4. Les schémas de câblage pour câbles varient considérablement. Vérifiez le câblage de code pin sur le câble. Pour les connexions directes par câble, un câble long ou à haute résistance est plus susceptible de donner des problèmes à un câble court, faible résistance.
  5. Si les deux « COM1 : » et « COM2 : » sont ouverts, « COM2 : » seront révisés tout d’abord. À des vitesses élevées, « COM1 : » peuvent perdre les caractères en situation de concurrence pour le temps processeur avec « COM2 : ».
  6. À l’aide de l’instruction GOSUB de COM sur plutôt que d’appeler la fonction LOC(n) pour détecter les communications entrée peut parfois contourner de temporisation ou de mise en mémoire tampon des problèmes causés par des retards dans Basic. Retards dans Basic peuvent résulter de nettoyage de l’espace de la chaîne, instructions de peinture ou d’autres opérations qui utilisent beaucoup le processeur.
  7. Assurez-vous que les lignes de protocole de transfert matériel approprié (CS, DS, CD, etc.) sont vérifiées par Basic. Bien que la désactivation de ces délais d’attente (définition de la valeur correspondante dans l’instruction OPEN base zéro) est utile pour déterminer les lignes par votre matériel, il ne doit pas être considérée une méthode généraliste pour établir les communications série, car en ignorant le protocole de transfert matériel peut augmenter le risque d’un problème de synchronisation qui pourrait entraîner un blocage.
Utilisation de programmes de communications commerciales avancées techniques introuvables dans Microsoft Basic et peut offrir de meilleures performances.


Si vous avez besoin de meilleures performances de communication que vous obtenez par le biais de Basic, vous souhaiterez peut-être essayez C. Microsoft (vous pouvez appeler les routines de Microsoft C à partir de Microsoft QuickBasic 4.0, 4.0b, 4.5, 6.0 du compilateur base de Microsoft et des 6.0b et des versions de Microsoft base Professionnel développement système (PDS) 7.0 et 7.1). Voici une excellente référence :
« Guide du programmeur C pour les Communications série » par Joe Campbell, publié par Howard W. Sams & de la société.
QuickBasic 3.0, 4.0, 4.0b et 4.5 implémenter des communications par des interruptions directes sur les lignes d’entrée IRQ3 et IRQ4 sur la puce de contrôleur du 8259 (au lieu d’appeler les interruptions de la ROM BIOS).


L’ouvrage suivant donne une description de la technique, au niveau du matériel excellent des communications séries pour PC IBM :
« Programmation en langage assembleur 8088 : PC IBM » deuxième édition par Willen & Krantz, publié par Howard W. Sams & Co. (1983, 1984). Pages 92-93 et le chapitre 7 (Pages 166 à 188).
Propriétés

ID d'article : 39342 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires