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? P>
5 Réponses :
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. P>
J'ai utilisé COM0COM pendant un certain temps et a écrit un code simulateur / émulateur. P>
Lorsque vous travaillez dans une équipe concevant un matériel personnalisé, j'ai utilisé un excellent émulateur de terminal appelé Zerm A > (seulement disponible pour Mac, je crois). Il vous permet de faire des réponses de script qui m'ont permis de compléter le logiciel à notre spécification pré-convenu tandis que les puces de contrôleur personnalisées étaient toujours dans la phase d'itération design. P>
Quel genre de conducteur? S'il s'agit du pilote d'interface série, cela devient assez délicat. P>
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 à == plus == p>
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 Createefile code> ou quelle que soit la couche sur le dessus de que c # utilise. p>
COM1: code> 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. P>
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?
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. P>