Comment trouver par programme tous les Baudrates disponibles en C # (classe serialPort)
Est-il un moyen de trouver tous les taux de transmission d'un particulier
le système prend en charge via C#? Cette option est disponible dans le Gestionnaire de Périphériques-->Ports
mais je veux la liste de ces programmant.
Grâce.
source d'informationauteur HiteshP
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé un couple de façons de le faire. Les deux documents suivants ont été un point de départ
L'indice est dans le paragraphe suivant, à partir du premier document
À ce stade, il y a deux choix à faire en C#:
1.0 Utilisation de l'interopérabilité (P/Invoke) comme suit:
Définir la structure de données suivante
Ensuite définir les signatures suivantes
Maintenant faire les appels suivants (reportez-vous à http://msdn.microsoft.com/en-us/library/aa363858(SV.85).aspx)
Où portName est quelque chose comme COM?? (COM1, COM2,...). commProp.dwSettableBaud doit maintenant contenir les informations souhaitées.
2.0 Utilisation de C# réflexion
La réflexion peut être utilisé pour accéder à la SerialPort BaseStream et, de là, les données nécessaires comme suit:
Noter que dans les deux méthodes ci-dessus le port(s) doit être ouvert au moins une fois pour obtenir ces données.
Je ne pense pas que vous le pouvez.
J'ai récemment eu ce problème, et a terminé le codage en dur des le taux en bauds je voulais utiliser.
MSDN dit simplement, "Le débit en bauds doit être pris en charge par le pilote de série".
Évidemment, cela ne m'aide pas.
C'est ce que je suis actuellement en train de s'appuyer sur l':
Le taux de transmission sont dans les chaînes, car elles sont destinées à une zone de liste modifiable.
Vous pouvez améliorer les performances si vous connaissez le minimum de débit en bauds pris en charge par tous les ports série que vous souhaitez ouvrir. Par exemple, en commençant par 115,200 semble comme un coffre-fort limite inférieure pour les ports série fabriqués dans ce siècle.