Bonjour,
Alors lors de mon projet je doit envoyer une requête a un pont bascule branché a mon pc sur le port Comm2 afin qu'il me retourne un poids . j'ai trouver un code sur un ancien post lien ici : https://www.developpez.net/forums/d5...uete-port-usb/
Mais mon prgrame me retourne l'erreur suivante : Visualisation: Erreur Runtime => screen/1 page aceuil.scc : ID Objet = 5 : Objet requis: 'MSComm2' (-2146827864).
Voila mon codeAuriez vous une solution a me conseiller ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 '------ Requette pont bascule ' Réservation des variables locales Dim varOctet ,MSComm2 Dim lngPtOctet ' Traite chaque événement ou erreur Select Case MSComm2.CommEvent ' Événements Case comEvCD ' Modification dans la ligne détection de porteuse Case comEvCTS ' Modification dans la ligne prêt à émettre Case comEvDSR ' Modification dans la ligne Modem prêt Case comEvRing ' Modification dans l'indicateur d'appel Case comEvReceive ' Nombre de caractères indiqué par la propriété RThreshold reçus While (MSComm2.InBufferCount <> 0) varOctet = MSComm2.Input For lngPtOctet = 0 To LenB(varOctet) - 1 If (lngLongRXD < UBound(bytTrameRXD)) Then bytTrameRXD(lngLongRXD) = CByte(varOctet(lngPtOctet)) lngLongRXD = lngLongRXD + 1 Else strBilanComm = strLsrErrRXDBuf lngCptErrRXDBuf = lngCptErrRXDBuf + 1 End If Next Wend Case comEvSend ' Nombre de caractères indiqué par la propriété SThreshold dans le tampon de transmission. Case comEvEOF ' Caractère de fin de fichier trouvé dans le flux en entrée ' Erreurs Case comEventBreak ' Un signal d'arrêt a été reçu. Case comEventCDTO ' Erreur de délai d'attente détection de porteuse. Case comEventCTSTO ' Erreur de délai d'attente prêt à émettre. Case comEventDSRTO ' Erreur de délai d'attente Modem prêt. Case comEventFrame ' Erreur de trame Case comEventOverrun ' Données perdues. Case comEventRxOver ' Dépassement de la capacité du tampon de réception. Case comEventRxParity ' Erreur de parité. Case comEventTxFull ' Tampon de transmission plein. Case comEventDCB ' Erreur inattendue lors de l'extraction du bloc de contrôle de périphérique] Case Else ' Événement ou erreur non géré(e) !!! End Select If MSComm2.PortOpen = True Then MSComm2.PortOpen = False MSComm2.CommPort = 1 MSComm2.Settings = "19200,E,8,1" MSComm2.PortOpen = True MSComm2.InputLen = 1 ' Raz du buffer d'entrée de la liaison série varOctet = MSComm2.Input 'envoi de la Requête distributeur n°1 A = "01 09 30 31 10 39 39 4D 35 34 0D 0A" For i = 1 To Len(A) - 1 Step 3 MSComm2.Output = Chr(Val("&H" + Mid(A, i, 2))) Next DoEvents 'If MSComm2.PortOpen = True Then MSComm2.PortOpen = False Unload Me 'Si Requête = distributeur 1 If A = "01 09 30 31 10 39 39 4D 35 34 0D 0A" Then 'envoi de la Requête par défaut A = "01 10 00 10 00 01 02 00 00 A4 C0" For i = 1 To Len(A) - 1 Step 3 MSComm2.Output = Chr(Val("&H" + Mid(A, i, 2))) Next DoEvents 'If MSComm2.PortOpen = True Then MSComm2.PortOpen = False Unload Me End If
Merci d’avance
Partager