Simuler port série RS232 [Résolu]

alilou2955 8 Messages postés mercredi 9 juin 2010Date d'inscription 4 avril 2012 Dernière intervention - 29 oct. 2010 à 13:11 - Dernière réponse : alilou2955 8 Messages postés mercredi 9 juin 2010Date d'inscription 4 avril 2012 Dernière intervention
- 15 nov. 2010 à 10:19
Bonjour.
Je voudrais faire des modif/ajouts sur une application C/C++ existante. Celle-ci utilise le port série RS232 (COM1 par exemple) pour recevoir des données envoyées par des capteurs de détection de mouvement.
Pour faire mes tests, je ne veux pas attendre les signaux envoyés par ces capteurs, car je cherche à détecter des mouvements particuliers qui se produisent rarement. C'est pour cela que je cherche à simuler la réception de ces signaux en les lisant par exemple directement à partir d'un fichier xml (ou .txt pour faciliter les traitements).

Est-ce que quelqu'un a déjà sous la main un code (en C ou en C++) qui me permettra de simuler le port série RS232 en lisant directement les données à partir d'un fichier au lieu de les lire du port RS232 ? Si ce n'est pas le cas, y a-t-il quelqu'un qui peut m'aider à le faire ? Ca fait un bail depuis que je n'ai pas programmé. J'ai perdu la main .
Merci d'avance.
PS :
1) Je suis sous Windows XP ou 7.
2) J'ai déjà écrit un programme C qui lit et écrit sur les ports RS232. Si qlq en a besoin, je peux le lui envoyer. Je peux aussi vous le poster ici si vous jugez que cela peut vous aider à m'aider .
Afficher la suite 

3 réponses

Répondre au sujet
fregolo52 1106 Messages postés mercredi 15 juin 2011Date d'inscription 19 juillet 2016 Dernière intervention - 29 oct. 2010 à 17:30
+3
Utile
L'ami google (avec "c++ com port emulator") m'a trouvé ceci en moins de 2sec.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de fregolo52
fregolo52 1106 Messages postés mercredi 15 juin 2011Date d'inscription 19 juillet 2016 Dernière intervention - 29 oct. 2010 à 17:32
0
Utile
Ca ne répond pas à ta question, mais je pense que ca peut t'aider. Il te suffira de crée ton propre programme de test qui simule ton détecteur (en lisant le fichier texte).
Commenter la réponse de fregolo52
alilou2955 8 Messages postés mercredi 9 juin 2010Date d'inscription 4 avril 2012 Dernière intervention - 15 nov. 2010 à 10:19
0
Utile
Bonjour.
Ce n'était pas l'idé du départ, mais fregolo52 m'a donné une autre idée (merci ). J'ai créé avec l'utilitaire "com0com" 3 paires virtuelles de ports RS232 et j'ai utilisé l'utilitaire "hub4com" pour envoyer le contenu d'un port sur les deux autres.
Pour faire un test simple, j'envoie mes données sur COM1 et j'écoute sur COM2 pour voir si je vais les recevoir ou pas. Etant donné que COM1 et COM2 appartiennent à la même paire, ce qui est envoyé sur COM1 devrait apparaître sur COM2.
Le test est presque concluant, mais j'ai un petit problème. Les messages reçus sur COM2 sont parfois un peu tronqués! Par exemple j'envoie "DETX001" puis "DETX002", puis je reçois "DETX001DE" puis "TX002". Au final, ce qui est envoyé est reçu mais malheureusement les chaînes sont tronquées, ce qui n'est pas acceptable car ces chaînes sont des commandes à envoyer à une autre application.
Le problème me semble venir du vidage du contenu du buffer du port série mais je n'arrive pas à le résoudre.

Le code source, les tests effectués et d'autres explications sont sur le lien suivant que j'ai posté hier :
Envoi sur port série(url=http://www.cppfrance.com/forum/sujet-ENVOI-SUR-PORT-SERIE_1479440.aspx).
Je vous remercie d'avance pour vos réponses ou commentaires et le temps que vous y consacrez.
Commenter la réponse de alilou2955

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.