Pb avec mscomm

Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005 - 11 juin 2003 à 11:54
zied_sfax Messages postés 2 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 27 avril 2007 - 29 juil. 2005 à 13:34
Bonjour,

Je cherche depuis deux semaines comment recuperer un numero de telephone provenant d'un telephone en vb/vba. j'aurais bien essaye avec tAPI, mais je n'y comprends rien. Alors j'ai entendu parler de MSCOMM.
J'ai donc ecrit un petit programme pour récuperer ce qui arrive sur mon port COM (le téléphone est relie a ce port), mais Input me renvoie une hcaine vide...
voici ce que j'ai ecrit:

Private Sub Form_Timer()
Dim recbuffer As String
If COM1.CommEvent = comEvReceive Then
With COM1
.CommPort = 1
.Settings = "57600,N,8,1"
.InputLen = 0
.PortOpen = True
recbuffer = .Input
MsgBox recbuffer, vbOKOnly
.PortOpen = False
End With
End If

End Sub

Saurez vous m'aider à trouver ce qui ne va pas?

Merci d'avance, c'est très important!

Assis sur la banquise :clown)

9 réponses

sylric Messages postés 91 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 22 août 2003
11 juin 2003 à 14:51
Essaie ça :
Dans la sub de départ tu configures le port, puis tu l'ouvres.
Ensuite quand tu veux le lire tu utilise cette fonction, elle tente 50 fois de lire le port (tu peux changer ce chiffre si tu veux). Quand il y'a une réponse, elle paramètre la taille du buffer et le lit. Ensuite la valeur lue est retournée.
N'oublies pas de refermée le port une fois fini.

Function LitPort() as String
Dim res as String
Dim buflen as Integer
res=""
If Not COM1.PortOpen Then
LitPort = res
Exit Sub
End If
i=0
While buflen = 0 And i < 50
buflen = COM1.InBufferCount
i = i + 1
Wend
If Not buflen = 0 Then
COM1.InputLen = buflen
res = COM1.Input
End If
LitPort = res
End Function
0
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
11 juin 2003 à 15:17
Woauoa!! il y a de l'avancement, mais j'ai encore qqs problemes: res recupere bien une chaine de valeurs ' mais quand je la regarde ( dans le debuggeur ) les infos express m'affichent seulement des carres et des euros, et la fonction mle renvoie une chaine vide.... bizarre bizarre...
0
sylric Messages postés 91 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 22 août 2003
11 juin 2003 à 15:22
Es tu sûr des paramètres du port (vitesse, controle de flux, etc...) ?
Toute la chaine renvoyée n'est peut être pas utile, il est courant d'avoir à enlever les caractères situés après (ou avant) un caractère générique, encore faut il le connaitre !
0
cs_BFR Messages postés 88 Date d'inscription mardi 30 juillet 2002 Statut Membre Dernière intervention 1 mars 2008
11 juin 2003 à 16:26
Info: pour les carrés se sont des caractères que windows ne peut pas lire alors il les afficher sous forme de carrés pour les voir il suffit de les mettre dans un fichioer et ouvrir se dernier en mode Dos j'ai déja eu ce probleme avec un caractère qui resemble a un double !! et que windows affiche en carre
A++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
12 juin 2003 à 07:41
En fait je dois utiliser un telephone branche sur COM, et je n'ai aucune indication sur la configuration du port....
Alors j'essaie aussi via un modem....
J'ai fait un label et un bouton, et lorsque le phone sonne, je clique dessus et label.caption = chaine renvoyee. Mais c'est bizarre, il ne me renvoie que le mot ring.... comprends pas...
0
sylric Messages postés 91 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 22 août 2003
12 juin 2003 à 10:18
Comme le dit BFR, les carrés sont dus aux pb de conversion entre code ASCII et ANSI mais tu peux avoir leurs valeurs avec la fonction ASC().
Sans les infos pour le téléphone, ça risque d'être très dure pour bien communiquer... mais déjà je pense que les paramètres que tu as donné au début me paraissent optimistes (57600 bauds). En général, tous les téléphones, calculettes et autres petits appareils sont limités à 9600 bauds. pour les autres paramètres, il est courant d'utiliser aucune parité, 8 bits de données et un bit de stop. Ce qui nous donne, 9600,N,8,1. Cependant, c'est qu'une configuration parmis tant d'autres, sans savoir ce qu'attend ton téléphone.
Sinon pour le modem, je ne connais pas sufisament...
0
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
12 juin 2003 à 10:47
je vais essayer pour ce probleme de ASCII.... Pour le phone je vais essayer de me renseigner, et pour le modem, et le RING recu, ca pourrait peut etre venir du fait que je n'ai pas de presentation du numero de tel sur la ligne...
0
captaincav Messages postés 16 Date d'inscription vendredi 2 août 2002 Statut Membre Dernière intervention 18 janvier 2006
16 oct. 2003 à 09:07
salut :)

et j'ai exactement le meme cas de figure que toi !!! Je pensais passer d'abord par le TAPI mais c'est un le bordel ce truc alors, vu que mon tel est relie au pc via le port com, je voulais interceper les infos du port com

cependant, je ne recois aucune données ou alors des choses inexploitables :/

as tu trouvé comment exploiter les signes bizarres recus ? (les carres blanc, etc)

en te remerciant :)
0
zied_sfax Messages postés 2 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 27 avril 2007
29 juil. 2005 à 13:34
salut,
je suis un élève ingenieur
mon email est meratunis@yahoo.fr
j'ai reussi à se connecter avec un telephone par vb (mscomm)
le problème dans le transfert des données vocaux
0
Rejoignez-nous