2009-03-03 8 views
2

Comment utiliser RTSEnable et DtrEnable? Je constate que certains soldes peuvent communiquer avec mon application, mais d'autres ne peuvent pas même si les paramètres correspondent. (vitesse de transmission, parité, bits de données, bits d'arrêt et établissement de liaison)Port série dans un environnement compact - RTSEnable et DtrEnable

Les paramètres du port série sont enregistrés dans le fichier de configuration et l'idée est de prendre en charge différentes combinaisons de paramètres possibles, si nécessaire. Normalement, nos appareils sont programmés pour avoir handshake = NONE, mais au cas où un dispositif impair ne peuvent pas avoir handshake=NONE, dois-je insérer une condition telle que:

if (serialport.Handshake != NONE) { 
    serialport.RTSEnable = true; 
    serialport.DtrEnable = true; 
} 

Ou plutôt, d'autres seront poignées de main (autres que NONE) travailler sans RTSEnable et DtrEnable étant défini sur true?

Répondre

0

L'établissement ou non d'établissement de liaison matérielle est basé uniquement sur le périphérique série auquel vous vous connectez. Vous devez lire les spécifications OEM pour l'appareil et voir si l'appareil a besoin d'un handshaking et s'il a besoin d'une manipulation spéciale de RTS ou DTR.

+0

Les paramètres du port série (débit en bauds, parité, etc.) sont stockés dans un fichier de configuration, ils peuvent donc être modifiés. En général, tous nos soldes sont configurés de la même manière, mais il y en a d'autres qui ne le sont pas. Si un appareil ne supporte pas Hanshake = None, cela fonctionnerait-il si je ne mets pas ces flags dans mon code? – sarsnake

+0

Je suppose qu'une meilleure façon de demander ceci serait: si un périphérique est configuré pour utiliser la poignée de main = none et que je fais serialPort.Open() avec Hanshake = None, ai-je besoin que ces valeurs soient true? Pourvu que le dispositif actuel SUPPORTS hanshake = none, bien sûr – sarsnake

Questions connexes