IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET]Pb de convertion C# vers VB.NET


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 92
    Points : 48
    Points
    48
    Par défaut [VB.NET]Pb de convertion C# vers VB.NET
    Bonjour,
    je viens de récuperer une classe sur le Net en C# que je souhaite convertir en VB.net mais je n'arrive pas à me sortir d'une erreur

    l'erreur est la suivante
    'Friend Event OnException(id As Integer, function As Byte, exception As Byte)' est un événement. Il ne peut donc pas être appelé directement. Utilisez une instruction 'RaiseEvent' pour déclencher un événement.

    et le code converti est le suivant
    (la ou cela bloque c'est en gras)

    Private Class ListenClass
    ' --------------------------------------------------------------------
    Friend Delegate Sub ResponseData(ByVal id As Integer, ByVal [function] As Byte, ByVal data As Byte())
    Friend Event OnResponseData As ResponseData
    Friend Delegate Sub ExceptionData(ByVal id As Integer, ByVal [function] As Byte, ByVal exception As Byte)
    Friend Event OnException As ExceptionData

    Private tcpClient As TcpClient
    Private sync As Boolean = False
    Private req_id As Integer = 0
    Public resp_data As Byte() = {}

    ' --------------------------------------------------------------------
    Public Function WriteData(ByVal _tcpClient As TcpClient, ByVal write_data As Byte(), ByVal _req_id As Integer, ByVal _sync As Boolean) As Boolean
    tcpClient = _tcpClient
    req_id = _req_id
    sync = _sync
    ' ----------------------------------------------------------------
    ' Send request to slave
    Try
    If _connected Then
    tcpClient.GetStream().Write(write_data, 0, write_data.Length)
    Dim thrListen As New Thread(New ThreadStart(AddressOf ListenThread))
    thrListen.Start()
    If sync = True Then
    thrListen.Join()
    End If
    Return True
    ElseIf OnException IsNot Nothing Then
    RaiseEvent OnException(req_id, 0, excExceptionNotConnected)
    End If
    Catch [error] As Exception
    ' ----------------------------------------------------------------
    ' Trap connection lost exception
    If [error].InnerException.[GetType]() = GetType(System.Net.Sockets.SocketException) Then
    RaiseEvent OnException(req_id, 0, excExceptionConnectionLost)
    Else
    Throw ([error])
    End If
    End Try
    Return False
    End Function

    ' --------------------------------------------------------------------
    ' Wait for slave response
    Public Sub ListenThread()
    Dim time As Integer = 0
    Dim buffer As Byte() = New Byte(255) {}
    Dim id As Integer = 0
    Dim data As Byte()
    Dim [function] As Byte

    While time < _timeout
    ' ----------------------------------------------------------------
    ' Wait for new data
    If (tcpClient.GetStream().CanRead) AndAlso (tcpClient.GetStream().DataAvailable) Then
    tcpClient.GetStream().Read(buffer, 0, buffer.GetUpperBound(0))
    id = BitConverter.ToInt16(buffer, 0)
    [function] = buffer(7)
    ' ------------------------------------------------------------
    ' Write response data
    If [function] >= fctWriteSingleCoil Then
    data = New Byte(1) {}
    Array.Copy(buffer, 10, data, 0, 2)
    Else
    ' ------------------------------------------------------------
    ' Read response data
    data = New Byte(buffer(8) - 1) {}
    Array.Copy(buffer, 9, data, 0, buffer(8))
    End If
    ' ------------------------------------------------------------
    ' Response data is slave exception
    If [function] > fctExceptionOffset Then
    [function] -= fctExceptionOffset
    RaiseEvent OnException(id, [function], buffer(8))
    ElseIf OnResponseData IsNot Nothing AndAlso (sync = False) Then
    RaiseEvent OnResponseData(id, [function], data)
    Else
    resp_data = data
    ' ------------------------------------------------------------
    ' Response data is regular data
    End If
    Exit While
    End If
    ' ----------------------------------------------------------------
    ' Retry reading every 10ms until timeout
    time += 10
    Thread.Sleep(10)
    End While
    If (time >= _timeout) AndAlso (OnException IsNot Nothing) Then
    RaiseEvent OnException(req_id, 0, excExceptionTimeout)
    End If
    End Sub
    End Class

    je sais ce n'est pas tres digeste, mais bon que faire ? je suis trop novice pour m'en sortir tout seul
    Merci pour votre aide
    @+ Viejo

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Je pense que tu devrais simplement retirer les vérifications des évents ie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If sync = True Then
    thrListen.Join()
    End If
    Return True
    ElseIf OnException IsNot Nothing Then
    RaiseEvent OnException(req_id, 0, excExceptionNotConnected)
    End If
    qui deviens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If sync = True Then
    thrListen.Join()
    End If
    Return True
    Else
    RaiseEvent OnException(req_id, 0, excExceptionNotConnected)
    End If
    ah et puis

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Merci pour la reponse
    je vais faire le test,ce qui me gene quand meme c'est que la personne qui a developpé ce morceau de code a realisé ce test et que j'ai du mal a trouver la syntaxe qui lui correspond en VB
    Encore merci
    et@+ Vijeo

Discussions similaires

  1. [Débutant] Convertion vers ASP. NET Possible ?
    Par toutoune95800 dans le forum VB.NET
    Réponses: 4
    Dernier message: 19/05/2012, 11h40
  2. Réponses: 26
    Dernier message: 12/11/2008, 17h59
  3. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  4. [C#] Convertion de structure vers Delphi .NET
    Par Laurent Dardenne dans le forum Windows Forms
    Réponses: 21
    Dernier message: 08/01/2005, 02h36
  5. [VB.NET] Conseil migration d'ADO vers ADO.NET
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/12/2004, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo