6
votes

Comment simulez-vous un périphérique série?

Je travaille sur le pilote qui parle à un appareil via un port série en C #. Je n'ai pas toujours l'appareil disponible pour effectuer des tests physiques avec. Existe-t-il une façon de simuler un appareil sur un port série afin qu'il réponde de manière idéale?


0 commentaires

5 Réponses :


8
votes

Obtenez un deuxième port COM et utilisez un câble NULL-MODEM pour connecter les ports COM pour permettre à deux programmes C # de se parler.


0 commentaires

6
votes

J'ai utilisé COM0COM pendant un certain temps et a écrit un code simulateur / émulateur.


0 commentaires


1
votes

Quel genre de conducteur? S'il s'agit du pilote d'interface série, cela devient assez délicat.

Toutefois, si votre pilote est un niveau d'application au-dessus du pilote de périphérique Windows, il est assez facile de remplacer le comportement d'E / S en modifiant la chaîne passée à Createefile ou quelle que soit la couche sur le dessus de que c # utilise.

== plus ==

Puisque vous utilisez les outils de bibliothèque .NET, cette technique peut être trop militaire pour déranger. Cependant, l'idée est de remplacer où, à un moment donné, votre code indique Ouvrir COM1: ou autre. Changez que pour être un fichier qui a les données simulées, disons` c: /com1testData.txt '. Code d'émulation supplémentaire qui reconnaît que le contenu du fichier pour des pauses et / ou des réponses pourrait être utile pour certains protocoles. Les données qui sont écrites sur le port peuvent être enregistrées ou ignorées, en fonction de vos besoins.


1 commentaires

C'est un pilote de couche d'application et j'utilise simplement les outils série .NET pour envoyer et recevoir des chaînes sur le port ... Pouvez-vous me donner un peu plus d'informations?



0
votes

Si vous courez dans une machine virtuelle, vous pourrez peut-être attacher des éléments au port série. QEMU, par exemple, vous permet de joindre le port série virtuel à un TTY, que vous pouvez ensuite interagir avec manuellement ou avec un programme en cours d'exécution sur l'hôte.


0 commentaires