Comment communiquer avec un modem USB 3G?
J'ai un D-Link DWM-156 3G modem USB que je veux envoyer des commandes AT à partir de mon application C# .NET 4.0 en cours d'exécution sur Windows XP SP3).
Après plug-in et l'installation des pilotes du modem s'affiche comme ceci:
Dans le Gestionnaire de Périphériquesdeux ports série sont ajoutés:
- D-Link HSPADataCard Diagnostic Interface (COM4)
- D-Link HSPADataCard Appareil NMEA (COM5)
Dans Panneau de configuration, Options de Modem et téléphonieun nouveau modem est ajouté:
- D-Link HSPADataCard Propriétaires Modem USB (attaché à COM19)
QUESTION: quel port com dois-je utiliser pour envoyer des commandes AT, et à quelle vitesse?
J'ai essayé tous les trois ports à des vitesses différentes, mais avec pas de chance que ce soit.
Pour apprendre, j'ai ensuite installé le "Free Serial Port Monitor" espion application, en espérant être en mesure de surveiller la communication avec le D-Link ustility qu'il ouvre et ferme la connexion internet (qui fonctionne bien).
Sur démarrer, l'espion app me demande quel port pour moniteur et me propose de le port suivant les noms à choisir à partir de:
- "Agere Systems HDA Modem",
- "D-Link HSPADataCard Propriétaires Modem USB",
- "COM3",
- "COM4",
- "COM5"
- ...et plusieurs autres, dont "COM19".
Le choix de la "D-Link..." nom fonctionne OK, maintenant je peux regarder toutes les commandes utilisées comme elles se produisent, mais je ne peut pas déterminer le débit en bauds du port est utilisé. En outre, ni COM4, COM5 ou COM19 œuvres pour renifler de cette façon (rien ne semble se produire sur ces ports).
Maintenant, je voudrais utiliser la SerialPort classe .NET pour ouvrir la "D-Link..." port et de parler avec le modem USB, mais le SerialPort classe, le nom de port pour commencer par la "COM", sinon une exception est levée. Mais aucun de l'ordinaire COM-ports travail. Et je ne sais toujours pas qui débit en bauds à utiliser. Je suis assez confus et enfermé ici - que pourrais-je faire pour aller au fond de cette?
source d'informationauteur Martin Christiansen
Vous devez vous connecter pour publier un commentaire.
Ok les gars, merci à vous pour vos idées et de vos commentaires. J'ai fait un peu plus de recherche, et enfin j'ai réalisé que pour faire ce que je voulais, je n'ai pas eu à se soucier avec les ports série et AU-commandes. Tout ce qui était nécessaire pour faire un peu RAS de Windows appels.
Si j'avais été un peu plus précis dans ma question sur ce que je voulais faire avec mes commandes AT, vous seriez certainement m'ont dit à propos de RAS depuis longtemps!
J'ai trouvé un joli .Net DLL (DotRas) qui encapsule natif de Windows RAS pour utiliser du code managé, et il semble faire exactement ce dont j'ai besoin (connexion à un modem 3G de code, avec n'importe quel type de modem 3G j'attache).
Merci encore pour votre temps.
Vous pouvez utiliser
GetCommState()
après l'obtention de la poignée parCreateFile()
à la cible de COM port:http://msdn.microsoft.com/en-us/library/aa915369.aspx