cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010
-
3 janv. 2007 à 15:14
cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010
-
5 janv. 2007 à 13:48
Bonjour a tous,
D'habitude quand je rencontre un problème, j'essai de me débrouiller en fouillant le net et ca marche mais cette fois, je suis tombé sur plus fort que moi...
Donc je souhaite réaliser une classe pour communiquer avec un modem gsm, ça fonctionne très bien sous hyper terminal mais j'ai quelques soucis avec MScomm, je ne reçois pas les données provenant du mobile
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Je m’explique :
J’ai réalisé un programme simple pour commencer, dans lequel je demande le numéro IMEI au mobile (connecté soit en usb, soit en lien série, ça marche dans les deux cas.) avec l’objet MSComm créé en statique. Ce bout de programme fonctionne très bien, j’arrive a récupérer les données que renvoi le mobile :
MScomm étant « com » configuré sur le port 4 (usb) settings :115200,n,8,1 et le reste configuré par défaut.
Private
Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 janv. 2007 à 17:11
Salut
Je n'ai pas testé ton code, mais peut-être faudrait-il faire souffler la machine entre la commande de connexion .PortOpen = True et l'envoie de la requète .Output
Le composant Comm qui s'adresse au matériel à peut-être besoin d'au moins un cycle pour réaliser vraiment l'ouverture.
Donc :
- insère un DoEvents entre ces deux instructions
- Regarde si, après une commande PortOpen, il ne faudrait pas s'assurer que le composant est réellement ouvert (a t-il une propriété State par exemple ?) avant d'envoyer les infos : Une boucle Do-Loop serait la beinvenue en attendant que l'objet soit réellement ouvert ... ou refuse la connexion.
Remarque : Bien que cela fonctionne dans ton 1er exemple, il n'est pas judicieux d'utiliser des noms de variables ressemblant à des mots réservés au système, comme "com" (futurs problèmes)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_bumbo
Messages postés26Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention10 février 2010 5 janv. 2007 à 13:48
J'avais déja essayé de mettre une tempo entre l'ouverture du port et la première commande (d'ailleur j'ai essayé de mettre des tempos un peu partout...), mais ca n'y fait rien. Par exemple si je remplace ma trame at qui demande le numero IMEI par une trame qui envoi un sms, le sms est correctement envoyé mais je n'arrive pas a recevoir la réponse "OK" du mobile, donc ce qui veut dire que le port est bien ouvert et que le mobile a bien recu la première commande...
N'existe-t-il pas un sniffer de port com? pour savoir ce qui se passe sur le port pendant que mon programme et mon mobile communiquent?
Merci déjà pour tes premières réponses JACK et ok pour ta remarque, j'en tiendrais compte la prochaine fois