2010-08-13 9 views
3

J'utilise visual studio 2008 et le développement d'une application Windows Forms en C# en utilisant .net 3.5problème avec port de communication dans l'application C# sur un ordinateur portable

Je suis en train de faire une communication série et sur un bouton cliquez sur l'application d'obtenir une liste de tous les ports de communication disponibles. Je recherche ensuite l'appareil que je recherche en ouvrant chaque port à tour de rôle, en envoyant ma commande de demande de prise de contact personnalisée et en attendant la réponse pendant un certain nombre de secondes.

Tout fonctionne très bien sur mon PC (et sur les 8 autres PC sur lesquels j'ai testé) mais quand je lance le programme sur un ordinateur portable mon programme semble voir tous les ports de communication et envoie un mais nécessite mon appareil le reçoit. J'ai essayé d'utiliser le port de comm de matériel et les convertisseurs d'usb-à-série. J'ai également testé sur plusieurs ordinateurs portables de différents fabricants. Tous les se comportent exactement la même chose.

Est-ce que quelqu'un a rencontré des problèmes similaires?

MISE À JOUR 1

Les ordinateurs portables semblent être en mesure de recevoir des données de l'appareil, mais ne peut pas transmettre. Et bien sûr, aucun problème avec les ordinateurs de bureau.

UPDATE 2

Un ordinateur portable peut recevoir et transmettre des données. Par conséquent, cela réduit le problème à mon logiciel C# qui peut faire la communication série sur un ordinateur de bureau, mais ne peut pas faire la même chose sur un ordinateur portable.

MISE À JOUR 3

Résolu. Le problème a été causé par les modems intégrés de mes ordinateurs portables de test. Le port de communication réservé par le modem (généralement COM3) n'apparaît pas dans le gestionnaire de périphériques, mais peut être vu dans le regestry de Windows. Ainsi, chaque fois que mon objet port série demandait une liste de ports COM, il obtenait le port modem, et ces modems s'étranglaient sur mes demandes de prise de contact pendant l'analyse du port. Comme d'habitude, tout est stupide et simple.

Répondre

2

Il semble que votre appareil soit pointilleux sur les niveaux de tension. RS-232 ne cloue pas très bien ce qui permet entre +/- 5V à +/- 28V. La plupart des appareils sont plus heureux avec +/- 12V, une tension standard disponible dans les machines de bureau. Les ordinateurs portables sont cependant toujours bas, +/- 5V typ. Vous ne pouvez pas faire grand chose à ce sujet.

Pour tester cette théorie, éliminez la possibilité que cela soit induit par votre code et assurez-vous qu'il fonctionne avec un modem nul. Connectez TxD à RxD afin que vous receviez ce que vous envoyez. Ensuite, utilisez Hyperterminal ou Putty. Si ce dernier ne voit pas le périphérique, c'est un problème matériel.

+0

Oui. Maintenant, jusqu'à l'antiquaire-boutiques pour un câble nul-modem. –

+0

J'ai essayé l'hypertermie. Je peux recevoir des données de l'appareil mais je ne peux pas le transmettre sur l'ordinateur portable. – udushu

+0

Cela correspond au motif. L'appareil a beaucoup de oompf sur ses signaux de sortie, l'ordinateur portable n'aura pas de problème avec cela. Pas assez sur les signaux de sortie du portable, l'appareil ne peut pas le voir. "Booster de signal rs232" de Google. –