Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RECHERCHE ET TEST MODEMS


Information sur la source

Catégorie :Périphériques Niveau : Initié Date de création : 31/07/2002 Date de mise à jour : 31/07/2002 16:52:26 Vu / téléchargé: 5 882 / 1 296

Note :
9,25 / 10 - par 4 personnes
9,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Recherche et test le(s) modem(s) sur port com. Vérifie également qu'il est bien raccordé à la prise téléphonique

Necessite les composants : MSComm et MSFlexGrid

Placer : 2 boutons (quitter_btn et test_btn), 2 label (test_lbl, diagnostic_statut), 1 MSFlexGrid (diagnostic_table), 1 timer (test_timer) et 1 MSComm (MSComm1)...... le plus simple est de passer par le zip......


 

Source

  • '################################################################
  • '# #
  • '# TEST ET VERIFS MODEM #
  • '# #
  • '################################################################
  • '# #
  • '# Permet de chercher les modems raccordé au port com de l'ordi #
  • '# Verifie leur fonctionnement, et leur raccordement à la ligne #
  • '# Donne aussi la réf du modem #
  • '# #
  • '# Par : vichamp (vichamp@noos.fr) 30/07/02 #
  • '# #
  • '# nésitez pas a m'envoyer toutes vos remarques... je sais #
  • '# l'hortographe.................. #
  • '################################################################
  • '
  • Private Sub Form_Load()
  • Me.Visible = True
  • 'mise en place de la table de diag
  • diagnostic_table.ColWidth(0) = 800
  • diagnostic_table.ColWidth(1) = 2000
  • diagnostic_table.ColWidth(2) = 5000
  • diagnostic_table.ColWidth(3) = 800
  • diagnostic_table.ColWidth(4) = 2000
  • diagnostic_table.ColAlignment(0) = 4
  • diagnostic_table.ColAlignment(1) = 4
  • diagnostic_table.ColAlignment(2) = 4
  • diagnostic_table.ColAlignment(3) = 4
  • diagnostic_table.ColAlignment(4) = 4
  • End Sub
  • Private Sub test_modem()
  • Dim modem_etat, modem_model, modem_ligne, modem_ligne_test As String
  • Dim system_ok, erreur As Integer
  • Dim coul_good, coul_bad As Double
  • coul_good = &H0 'couleur du text des test reussi et pas bon
  • coul_bad = &H808080
  • diagnostic_table.Clear
  • diagnostic_table.Visible = True
  • system_ok = 0 'passe à 2 si il y a un modem correctement branché
  • 'passe à 1 si le modem ne peut pas acceder à la ligne
  • modem_ligne_test = "ATDT" & "00123456789" & Chr(13) 'numero a la con pour voir le modem peut composé
  • 'Rajouter le préfix de sortie dans le cas de standart téléphonique
  • 'Entete de la grille
  • diagnostic_table.Row = 0
  • diagnostic_table.Col = 0
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.Text = "Port"
  • diagnostic_table.Col = 1
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.Text = "Etat"
  • diagnostic_table.Col = 2
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.CellAlignment = 4
  • diagnostic_table.Text = "Modem"
  • diagnostic_table.Col = 3
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.Text = "Etat"
  • diagnostic_table.Col = 4
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.Text = "Ligne"
  • test_timer.Interval = 500 'temp maxi des tests
  • '
  • 'Boucle des test port par port
  • 'POUR RAJOUTER DES PORTS : il suffit de rajouter des ligne a la grille et d'augmenter la boucle
  • '
  • For port_com = 1 To 4
  • diagnostic_table.Row = port_com
  • diagnostic_table.Col = 0
  • diagnostic_table.CellFontBold = True
  • diagnostic_table.Text = "COM" & port_com 'affiche le port tester
  • diagnostic_statut.Caption = "Test d'accès au port de communication " & port_com
  • MSComm1.CommPort = port_com
  • erreur = 0
  • 'test du port
  • diagnostic_table.Col = 1
  • diagnostic_table.Font.Bold = False
  • On Error Resume Next
  • If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
  • MSComm1.PortOpen = True
  • If Err Then 'si le porr ne peut pas etre ouvert
  • diagnostic_table.CellForeColor = coul_bad
  • diagnostic_table.Text = "Utilisé ou inexistant " 'si il y a une erreur sur le port, passe direct au prochain port à tester
  • Else 'si pas d'erreur
  • diagnostic_table.CellForeColor = coul_good
  • diagnostic_table.Text = "Disponible"
  • MSComm1.PortOpen = True
  • 'test de réponse d'un modem
  • diagnostic_statut.Caption = "Attente de réponse d'un modem sur COM" & port_com
  • MSComm1.Output = "atE1" & Chr(13)
  • diagnostic_table.Col = 3
  • modem_etat = ""
  • test_lbl.Caption = "0"
  • test_timer.Enabled = True
  • While Val(test_lbl.Caption) = 0 'attent une réponse du modem, au pire le timer stop le test
  • If MSComm1.InBufferCount > 0 Then
  • modem_etat = modem_etat & MSComm1.Input
  • test_lbl.Caption = 1
  • End If
  • DoEvents
  • Wend
  • test_timer.Enabled = False
  • If modem_etat = "" Or InStr(1, etat_modem, "OK") <> 0 Then 'si pas de modem
  • diagnostic_table.CellForeColor = coul_bad
  • diagnostic_table.Text = "NC"
  • diagnostic_table.Col = 2
  • diagnostic_table.CellForeColor = coul_bad
  • diagnostic_table.Text = "Aucun modem opérationnel détecté"
  • Else 'Si modem il y a
  • diagnostic_table.CellForeColor = coul_good
  • diagnostic_table.Text = "OK" 'affiche ok pour l'etat du modem
  • 'recupere la ref du modem
  • diagnostic_statut.Caption = "Demande du modèle du modem sur COM" & port_com
  • diagnostic_table.Col = 2
  • diagnostic_table.CellForeColor = coul_good
  • MSComm1.Output = "atI4" & Chr(13)
  • modem_model = ""
  • test_lbl.Caption = "0"
  • test_timer.Enabled = True
  • While Val(test_lbl.Caption) = 0
  • If MSComm1.InBufferCount > 0 Then
  • modem_model = modem_model & MSComm1.Input
  • test_lbl.Caption = 1
  • End If
  • DoEvents
  • Wend
  • test_timer.Enabled = False
  • modem_model = Right(modem_model, Len(modem_model) - 7)
  • modem_model = Left(modem_model, Len(modem_model) - 6)
  • If modem_model <> "" Then diagnostic_table.Text = modem_model Else diagnostic_table.Text = "Modèle inconnu"
  • 'tente de prende la ligne
  • diagnostic_statut.Caption = "Test de la ligne téléphonique du modem sur COM" & port_com
  • diagnostic_table.Col = 4
  • MSComm1.Output = modem_ligne_test
  • modem_ligne = ""
  • test_lbl.Caption = "0"
  • test_timer.Interval = 10000 'temp maxi de reponse du modem augmenter a 1sec
  • test_timer.Enabled = True
  • While Val(test_lbl.Caption) = 0
  • If MSComm1.InBufferCount > 0 Then modem_ligne = modem_ligne & MSComm1.Input
  • DoEvents
  • Wend
  • test_timer.Enabled = False
  • If InStr(1, modem_ligne, "NO DIALTONE") <> 0 Then 'si pas de tonalité
  • diagnostic_table.CellForeColor = coul_bad
  • diagnostic_table.Text = "pas de tonalité"
  • If system_ok < 2 Then system_ok = 1
  • Else
  • If InStr(1, modem_ligne, "NO CARRIER") <> 0 Then 'si pas de porteuse
  • diagnostic_table.CellForeColor = coul_bad
  • diagnostic_table.Text = "pas de porteuse"
  • If system_ok < 2 Then system_ok = 1
  • Else
  • diagnostic_table.CellForeColor = coul_good 'si tout est bon
  • diagnostic_table.Text = "Ok"
  • system_ok = 2
  • End If
  • End If
  • End If
  • MSComm1.PortOpen = False 'referme le port
  • End If
  • Next port_com
  • diagnostic_statut.Caption = "Tests terminé"
  • 'If system_ok = 2 Then
  • ' MsgBox ("Votre system est correctement configuré pour accèder à internet")
  • 'Else
  • ' If system_ok = 1 Then
  • ' MsgBox ("Un modem opérationnel à été detecter, mais il ne peut pas accèder à la ligne téléphonique" & Chr(13) & Chr(13) & "Veuillez vérifier son raccordement et recommencer")
  • ' Else 'system_ok = 0
  • ' MsgBox ("Aucun modem n'a été détecter sur votre ordinateur..." & Chr(13) & Chr(13) & "Essayer de fermer toutes les applications ouvertes et recommencer")
  • ' End If
  • 'End If
  • End Sub
  • Private Sub Quitter_btn_Click()
  • End
  • End Sub
  • Private Sub test_btn_Click()
  • test_btn.Enabled = False
  • Call test_modem
  • test_btn.Enabled = True
  • End Sub
  • Private Sub test_timer_Timer()
  • test_lbl.Caption = "1"
  • test_timer.Enabled = False
  • End Sub
'################################################################
'#                                                              #
'#                     TEST ET VERIFS MODEM                     #
'#                                                              #
'################################################################
'#                                                              #
'# Permet de chercher les modems raccordé au port com de l'ordi #
'# Verifie leur fonctionnement, et leur raccordement à la ligne #
'# Donne aussi la réf du modem                                  #
'#                                                              #
'# Par : vichamp (vichamp@noos.fr)                    30/07/02  #
'#                                                              #
'# nésitez pas a m'envoyer toutes vos remarques... je sais      #
'# l'hortographe..................                              #
'################################################################
'

Private Sub Form_Load()
Me.Visible = True
'mise en place de la table de diag
diagnostic_table.ColWidth(0) = 800
diagnostic_table.ColWidth(1) = 2000
diagnostic_table.ColWidth(2) = 5000
diagnostic_table.ColWidth(3) = 800
diagnostic_table.ColWidth(4) = 2000
diagnostic_table.ColAlignment(0) = 4
diagnostic_table.ColAlignment(1) = 4
diagnostic_table.ColAlignment(2) = 4
diagnostic_table.ColAlignment(3) = 4
diagnostic_table.ColAlignment(4) = 4
End Sub

Private Sub test_modem()
Dim modem_etat, modem_model, modem_ligne, modem_ligne_test As String
Dim system_ok, erreur As Integer
Dim coul_good, coul_bad As Double
coul_good = &H0 'couleur du text des test reussi et pas bon
coul_bad = &H808080
diagnostic_table.Clear
diagnostic_table.Visible = True

system_ok = 0 'passe à 2 si il y a un modem correctement branché
              'passe à 1 si le modem ne peut pas acceder à la ligne

modem_ligne_test = "ATDT" & "00123456789" & Chr(13) 'numero a la con pour voir le modem peut composé
                                                    'Rajouter le préfix de sortie dans le cas de standart téléphonique

'Entete de la grille
diagnostic_table.Row = 0
diagnostic_table.Col = 0
diagnostic_table.CellFontBold = True
diagnostic_table.Text = "Port"
diagnostic_table.Col = 1
diagnostic_table.CellFontBold = True
diagnostic_table.Text = "Etat"
diagnostic_table.Col = 2
diagnostic_table.CellFontBold = True
diagnostic_table.CellAlignment = 4
diagnostic_table.Text = "Modem"
diagnostic_table.Col = 3
diagnostic_table.CellFontBold = True
diagnostic_table.Text = "Etat"
diagnostic_table.Col = 4
diagnostic_table.CellFontBold = True
diagnostic_table.Text = "Ligne"

test_timer.Interval = 500 'temp maxi des tests


'
'Boucle des test port par port
'POUR RAJOUTER DES PORTS : il suffit de rajouter des ligne a la grille et d'augmenter la boucle
'
For port_com = 1 To 4
    diagnostic_table.Row = port_com
    diagnostic_table.Col = 0
    diagnostic_table.CellFontBold = True
    diagnostic_table.Text = "COM" & port_com 'affiche le port tester
    
    diagnostic_statut.Caption = "Test d'accès au port de communication " & port_com
    MSComm1.CommPort = port_com
    erreur = 0
    
    'test du port
    diagnostic_table.Col = 1
    diagnostic_table.Font.Bold = False
    On Error Resume Next
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    MSComm1.PortOpen = True
    If Err Then 'si le porr ne peut pas etre ouvert
        diagnostic_table.CellForeColor = coul_bad
        diagnostic_table.Text = "Utilisé ou inexistant " 'si il y a une erreur sur le port, passe direct au prochain port à tester
    Else 'si pas d'erreur
        diagnostic_table.CellForeColor = coul_good
        diagnostic_table.Text = "Disponible"
        MSComm1.PortOpen = True
        
        'test de réponse d'un modem
        diagnostic_statut.Caption = "Attente de réponse d'un modem sur COM" & port_com
        MSComm1.Output = "atE1" & Chr(13)
        diagnostic_table.Col = 3
        modem_etat = ""
        test_lbl.Caption = "0"
        test_timer.Enabled = True
        While Val(test_lbl.Caption) = 0 'attent une réponse du modem, au pire le timer stop le test
            If MSComm1.InBufferCount > 0 Then
                modem_etat = modem_etat & MSComm1.Input
                test_lbl.Caption = 1
            End If
            DoEvents
        Wend
        test_timer.Enabled = False
        If modem_etat = "" Or InStr(1, etat_modem, "OK") <> 0 Then  'si pas de modem
            diagnostic_table.CellForeColor = coul_bad
            diagnostic_table.Text = "NC"
            diagnostic_table.Col = 2
            diagnostic_table.CellForeColor = coul_bad
            diagnostic_table.Text = "Aucun modem opérationnel détecté"
        Else 'Si modem il y a
            diagnostic_table.CellForeColor = coul_good
            diagnostic_table.Text = "OK" 'affiche ok pour l'etat du modem
      
            'recupere la ref du modem
            diagnostic_statut.Caption = "Demande du modèle du modem sur COM" & port_com
            diagnostic_table.Col = 2
            diagnostic_table.CellForeColor = coul_good
            MSComm1.Output = "atI4" & Chr(13)
            modem_model = ""
            test_lbl.Caption = "0"
            test_timer.Enabled = True
            While Val(test_lbl.Caption) = 0
                If MSComm1.InBufferCount > 0 Then
                    modem_model = modem_model & MSComm1.Input
                    test_lbl.Caption = 1
                End If
                DoEvents
            Wend
            test_timer.Enabled = False
            modem_model = Right(modem_model, Len(modem_model) - 7)
            modem_model = Left(modem_model, Len(modem_model) - 6)
            If modem_model <> "" Then diagnostic_table.Text = modem_model Else diagnostic_table.Text = "Modèle inconnu"
        
            'tente de prende la ligne
            diagnostic_statut.Caption = "Test de la ligne téléphonique du modem sur COM" & port_com
            diagnostic_table.Col = 4
            MSComm1.Output = modem_ligne_test
            modem_ligne = ""
            test_lbl.Caption = "0"
            test_timer.Interval = 10000 'temp maxi de reponse du modem augmenter a 1sec
            test_timer.Enabled = True
            While Val(test_lbl.Caption) = 0
                If MSComm1.InBufferCount > 0 Then modem_ligne = modem_ligne & MSComm1.Input
                DoEvents
            Wend
            test_timer.Enabled = False
            If InStr(1, modem_ligne, "NO DIALTONE") <> 0 Then 'si pas de tonalité
                diagnostic_table.CellForeColor = coul_bad
                diagnostic_table.Text = "pas de tonalité"
                If system_ok < 2 Then system_ok = 1
            Else
                If InStr(1, modem_ligne, "NO CARRIER") <> 0 Then 'si pas de porteuse
                    diagnostic_table.CellForeColor = coul_bad
                    diagnostic_table.Text = "pas de porteuse"
                    If system_ok < 2 Then system_ok = 1
                Else
                    diagnostic_table.CellForeColor = coul_good 'si tout est bon
                    diagnostic_table.Text = "Ok"
                    system_ok = 2
                End If
            End If
        End If
        MSComm1.PortOpen = False 'referme le port
    End If
Next port_com
diagnostic_statut.Caption = "Tests terminé"
'If system_ok = 2 Then
'    MsgBox ("Votre system est correctement configuré pour accèder à internet")
'Else
'    If system_ok = 1 Then
'        MsgBox ("Un modem opérationnel à été detecter, mais il ne peut pas accèder à la ligne téléphonique" & Chr(13) & Chr(13) & "Veuillez vérifier son raccordement et recommencer")
'    Else 'system_ok = 0
'        MsgBox ("Aucun modem n'a été détecter sur votre ordinateur..." & Chr(13) & Chr(13) & "Essayer de fermer toutes les applications ouvertes et recommencer")
'    End If
'End If
        
End Sub

Private Sub Quitter_btn_Click()
End
End Sub

Private Sub test_btn_Click()
test_btn.Enabled = False
Call test_modem
test_btn.Enabled = True
End Sub

Private Sub test_timer_Timer()
test_lbl.Caption = "1"
test_timer.Enabled = False
End Sub

Conclusion

Ceci est ma premiere contribution sur vbfrance, j'espere qu'elle servira...
Je me suis inspiré de pas de source du site pour la faire...

Je suis ouvert à toute les remarques et critiques... n'ésitez pas à me les envoyer (vichamp@noos.fr)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de max12 le 01/08/2002 04:08:47 administrateur CS

Il plante ma machine, et faudrais que se soit en option le numéro a composer pour le test.

9/10

@+

signaler à un administrateur
Commentaire de vichamp le 01/08/2002 10:57:12

J'ai pas pu le tester sur des masses de machines, mais sur le peu que j'ai fait ca tournais bien.... Il plante à quelle moment ?.....

signaler à un administrateur
Commentaire de vichamp le 20/08/2002 10:17:10

ce petit message pour dire qu'apres de multiple test, mon prog MARCHE bien, sous 9x, nt, 2k..... et que le plantage de max12 etait du a son windows mal entretenu ! ;)....
Y'a juste un pb avec les modem configuré avec les drivers generique de windows qui renvoye un modele de modem assé exotique... mais sans conséquences ! :)
ji ferai une maj ulterieurement






signaler à un administrateur
Commentaire de pioug43 le 29/01/2003 20:38:06

Salut c cool ce que tu a fais par contre je recherche comment tester l'envoye de trame avec un timeout ou autre....
Je voudrais tester une deconnexion du cable rs232

signaler à un administrateur
Commentaire de ASEBT le 13/07/2003 22:35:56

Ok mais j'ai testé avec mon modem non branché sur la ligne téléphonique et il me dit ok

signaler à un administrateur
Commentaire de Ashtheone le 09/05/2004 11:35:15

Execellent programme! 10/10  ;o)

signaler à un administrateur
Commentaire de vichamp le 10/06/2004 11:47:08

merci... ashtheone ! :)

signaler à un administrateur
Commentaire de vichamp le 10/06/2004 11:47:10

merci... ashtheone ! :)

signaler à un administrateur
Commentaire de vichamp le 10/06/2004 11:47:13

merci... ashtheone ! :)

signaler à un administrateur
Commentaire de vichamp le 10/06/2004 11:47:16

merci... ashtheone ! :)

signaler à un administrateur
Commentaire de Ashtheone le 10/06/2004 19:22:38

Je ne mérite pas autant de compliment.... Lol... ;o)
Mais je doit t'avouer que ton code m'a été d'une utilité précieuse...
Bonne continuation!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.