Gestion port com sur un module

beberw Messages postés 5 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 11 octobre 2006 - 11 oct. 2006 à 15:12
beberw Messages postés 5 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 11 octobre 2006 - 11 oct. 2006 à 19:02
bonjour,
j'essaie en vain de transformer un bout du code opérationnel sur la gestion port com RS232. ce code est sur le Form1.est ce qu'il y a un moyen de le mettre dans un module.(apparament MScomm_oncomm ne fonctionne pas dans un module)

merci d'avance

Public Tramedefinitif As String
Public Tramerecu As String
Public FinDeTrame As Boolean
Public Lgrecu As String
Const ConfMSCOMM = "9600,n,8,1"
'Public NumPort As integer                  'Port com selectionné dans la barre de menu


 


 


 


 


'**============================================================================
' FUNCTION : OuvrePort()
'**----------------------------------------------------------------------------
' RESUME   : permet d'ouvrir  le port com tout en verifiant si celui
'             est disponible
'**----------------------------------------------------------------------------
' PARAMETRE
'
'**============================================================================




Public Sub OuvrePort()


  'Set Port = FrmPrincipale.MSComm     'initialisation port com a mettre dans l'initialisation du soft
 
  If (MSComm.PortOpen = True) Then
    Exit Sub                            'quitte la fonction
  End If
 
 MSComm.CommPort = NumPort                'N° du port


 MSComm.Settings = ConfMSCOMM             'Config du port
 
On Error GoTo ErrorCOM                  'gestion d'erreur
 MSComm.PortOpen = True


On Error GoTo 0
 Exit Sub
 
ErrorCOM:
 If (MSComm.PortOpen <> True) Then
    MsgBox ("Impossible d'ourir le port Com " & NumPort)
 End If
On Error GoTo 0


End Sub
'**============================================================================
' FUNCTION : FermePort()
'**----------------------------------------------------------------------------
' RESUME   : permet de fermer  le port com
'**----------------------------------------------------------------------------
' PARAMETRE
'
'**============================================================================
Public Sub FermePort()


 MSComm.PortOpen = False
 
End Sub
'**============================================================================
' FUNCTION : SendTrameRep()
'**----------------------------------------------------------------------------
' RESUME   : envoyer sur le port la réponse Pc
'**----------------------------------------------------------------------------
' PARAMETRE
'
'**============================================================================
Public Sub SendTrameRep()
   Tramedefinitif = msg
    'envoyer sur le port la réponse Pc
    MSComm.Output = Tramedefinitif
   
End Sub


'**============================================================================
' FUNCTION : Port_OnComm
'**----------------------------------------------------------------------------
' RESUME   : Gestion du port com - gere les evenements survenant sur le port
'**----------------------------------------------------------------------------
' PARAMETRE
'**============================================================================
Public Sub MScomm_OnComm()


 




Select Case MSComm.CommEvent
    Case comEvReceive
            Lgrecu = MSComm.InBufferCount           'longueur de la trame
            Tramerecu = MSComm.Input                'contenu de la trame
           
            Call espion1
            Call Detectioninfo


         
    End Select


End Sub

3 réponses

B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
11 oct. 2006 à 16:30
Lu,

tu bloque sur un truc à la con
ton objet MSComm se trouve sur ta Form1

alors dans ton module, tu dois l'ecrire comme ca
Form1.MSComm

voila,bon coding ...++
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 oct. 2006 à 16:36
C'est possible

Je pense que comme ça, ça devrait marcher

'**============================================================================

' FUNCTION : OuvrePort()

'**----------------------------------------------------------------------------

' RESUME   : permet d'ouvrir  le port com tout en verifiant si celui

'             est disponible

'**----------------------------------------------------------------------------

' PARAMETRE

'

'**============================================================================

Public 
Sub OuvrePort(ComObj 
As MSComm) 

  'Set Port = FrmPrincipale.MSComm     'initialisation port com a mettre dans l'initialisation du soft

  
If (ComObj.PortOpen = 
True) 
Then 
    
Exit 
Sub                            
 'quitte la fonction
  
End 
If 

 ComObj.CommPort = NumPort                
 'N° du port

 ComObj.Settings = ConfMSCOMM             
 'Config du port

On 
Error 
GoTo ErrorCOM                  
 'gestion d'erreur
 ComObj.PortOpen = 
True 

On 
Error 
GoTo 0 
 
Exit 
Sub 

ErrorCOM: 
 
If (ComObj.PortOpen <> 
True) 
Then 
    
MsgBox ("Impossible d'ourir le port Com " & NumPort) 
 
End 
If 

On 
Error 
GoTo 0 

End 
Sub 

'**============================================================================

' FUNCTION : FermePort()

'**----------------------------------------------------------------------------

' RESUME   : permet de fermer  le port com

'**----------------------------------------------------------------------------

' PARAMETRE

'

'**============================================================================

Public 
Sub FermePort(ComObj 
As MSComm) 

 ComObj.PortOpen = 
False 

End 
Sub 

'**============================================================================

' FUNCTION : SendTrameRep()

'**----------------------------------------------------------------------------

' RESUME   : envoyer sur le port la réponse Pc

'**----------------------------------------------------------------------------

' PARAMETRE

'

'**============================================================================

Public 
Sub SendTrameRep(ComObj 
As MSComm) 
   Tramedefinitif = msg 

    'envoyer sur le port la réponse Pc
    ComObj.Output = Tramedefinitif 

End 
Sub 

<small>Coloration syntaxique
automatique</small>

Par contre MScomm_OnComm étant l'évènement du controle, il devra obligatoirement se trouver sur la feuille acceuillant le controle.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
beberw Messages postés 5 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 11 octobre 2006
11 oct. 2006 à 19:02
merci   je mettais mis dans la tete qu'il y avait moyen de mettre l'evenement Oncomm dans un module

tu me confirme que c'est obligatoire qu'il se trouve dans la form.
  je vais pas  faire un module ou il y a que le port com..
0
Rejoignez-nous