Question

Je fais face à des systèmes existants qui utilisent RS232 pour communiquer avec les périphériques. Je ne suis pas très expérimenté avec interface COM. J'ai un code qui peut ouvrir et utiliser les ports COM, mais il ne peut pas ouvrir les ports qui sont utilisés par d'autres applications. Je dois boîte noire les paquets afin que nous puissions utiliser le même protocole pour les communications mises à jour.

Est-il possible de « l'homme du milieu » des paquets entrants vers un port COM ouvert et détecter quels paquets sont envoyés? J'utilise .NET, mais je suis ouvert à tout type de solution.

(j'ai trouvé cette là-bas, mais je ne pense pas que cela fonctionnera pour moi.)

Était-ce utile?

La solution

Je l'ai utilisé com0com - il est idéal pour la mise en place des ports COM virtuels -. Qui ne vous aide pas du tout

L'interface de port COM est essentiellement un «fichier lu. Mon application renvoie une exception lorsque je tente de se connecter à un port COM qui a déjà une autre instance la lecture de celui-ci. Je ne sais pas si vous pouvez essayer de l'ouvrir comme une « lecture seule » au lieu de lecture-écriture, mais il vaut la peine d'essayer.

Vous devriez être en mesure d'écrire un port COM virtuel qui peut bifurquer vos données dans un fichier journal. Com0com est open-source, vous pouvez donc l'utiliser comme point de départ.

Une autre solution possible pourrait être de ramasser un rs232 câble séparateur fourches du signal série à un autre port série.

Ou encore une autre possibilité est un programme de série Sniffer (ou renifleur open source ).

Ou essayez hub4com application du même site com0com!

Autres conseils

  

Est-il possible de « l'homme du milieu »

Oui, il y a beaucoup. Fortement soutenu dans Windows à travers le concept d'un « pilote de filtre ». Un tel pilote peut être inséré à l'avance un pilote qui se demande d'E / S et voit tout ce qui passe. Normalement destiné à modifier les requêtes d'E / S, mais aussi très approprié pour surveiller simplement les demandes. L'homme au milieu.

L'exemple canonique d'un tel conducteur est le vénérable PortMon utilitaire de SysInternals . vous montre tout ce qu'une application envoie et reçoit à / à partir d'un port série, y compris la configuration et les données. Il y a beaucoup de ces applications, juste Google « pilote de filtre de port série » (lourd sur des échantillons de code source) et « moniteur de port série ».

Une note avec cela, vous tendent à avoir un problème sur une version 64 bits de Windows. La grande majorité de ces applications, y compris PortMon, ne fonctionnent que sur la version 32 bits. La version 64 bits permet uniquement des pilotes certifiés à installer, il y a très peu d'argent dans la vente de ces applications pour justifier la dépense. Il faut se méfier lorsque vous magasinez.

Je suis dans cette même voie. Un séparateur de matériel est la solution la plus simple.

hub4com installation décrit l'assistant « Ajout de nouveau matériel ». Si vous avez beaucoup de machines, machines séparées géographiquement, ou les utilisateurs qui ne sont pas techniquement avertis et ne disposent pas des autorisations nécessaires, pourrait être gênant l'installation.

Si cela est une application héritée, est-il exécuté en NTVDM? Si oui, vous pouvez courir dans DOSBox au lieu et modifier le code DOSBox pour écrire dans un fichier en plus envoi / réception depuis / vers le port série. DosBox est multi-plateforme aussi bien.

Vous pouvez également utiliser TCPcom pour convertir les données en paquets Ethernet et surveiller avec Wireshark - et également diffusé ailleurs. Vous utilisez ensuite une autre instance de TCPcom de le transmettre à un port com vous le souhaitez - y compris un port COM virtuel. Maintenant, vous avez essentiellement pris en otage les données via Ethernet. https://sourceforge.net/projects/combytcp/?source=directory

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top