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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| Private client As TcpClient
Private buffer_receive() As Byte
Private s_Adresse_IP As String
Private i_port_ip As Int32
Private adr_ip As IPEndPoint
Private ip_localAddr As IPAddress
#Region "constructeur: @IP, N°Port"
Sub New(ByVal IP As String, ByVal port As Integer)
s_Adresse_IP = IP
i_port_ip = port
Try
ip_localAddr = IPAddress.Parse(s_Adresse_IP)
adr_ip = New System.Net.IPEndPoint(ip_localAddr, i_port_ip)
client = New TcpClient()
client.Client.ReceiveTimeout = 4000
Catch ex As Exception
MessageBox.Show("Erreur instanciation caméra :" + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
#End Region
#Region "Destructeur"
Sub dispose()
If Not client Is Nothing Then
client = Nothing
End If
End Sub
#End Region
#Region "Lecture du DataMatrix"
Function lire_DM(ByVal nb_entete As Integer, ByVal longueur As Integer, ByVal longueur_totale As Integer) As String
Dim DM As String = ""
Dim buffer() As Byte
Try
'connexion
client.Connect(ip_localAddr, i_port_ip)
Catch ex As Exception
'message d'erreur
MessageBox.Show("Erreur connexion caméra :" + ex.Message, "erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
lire_DM = "erreur"
Exit Function
End Try
Try
'''''''''''''''''Mise en forme'''''''''''''
' Mise en forme du buffer à envoyer. Dernier caractère OU CR = 13(ASCII)
'buffer = System.Text.Encoding.ASCII.GetBytes("001001001") 'initialisation et codage en ASCII
'buffer = System.Text.Encoding.ASCII.GetBytes(CByte(Asc(Chr(13))))
'buffer = System.Text.Encoding.ASCII.GetBytes("GVB031") 'initialisation et codage en ASCII
'ReDim Preserve buffer(buffer.Length)
' buffer(buffer.Length - 1) = CByte(Asc(Chr(13)))
''''''''''''''''Ecriture =>envoi'''''''''''''''''''
'Envoie des données à un System.Net.Sockets.Socket connecté.
' client.Client.Send(buffer)
'définit une valeur spécifiant la taille de la mémoire tampon
'de réception de System.Net.Sockets.Socket.
client.Client.ReceiveBufferSize = longueur_totale
'''''''''''''Lecture =>Réception''''''''''''''''''
''''''''''''''''''''''''Session'''''''''''''''''''
'Reçoit les données d'un System.Net.Sockets.Socket lié
'dans la mémoire tampon de réception buffer_receive
ReDim buffer_receive(longueur_totale) 'dimensionne le buffer
client.Client.Receive(buffer_receive) 'déclare le buffer de réception
buffer = System.Text.Encoding.ASCII.GetBytes("admin") 'envoie Username
ReDim Preserve buffer(buffer.Length)
buffer(buffer.Length - 1) = CByte(Asc(Chr(13)))
client.Client.Send(buffer)
DM = System.Text.Encoding.ASCII.GetString(buffer_receive, 0, 60)
Catch ex As Exception
End Try
'lecture du caractère de l'ensemble du string contenu dans la caméra, longueur: nbre octets à décoder
'DM = System.Text.Encoding.ASCII.GetString(buffer_receive, nb_entete, longueur)
'valeur à renvoyer
lire_DM = DM
client.Client.Close()
client.Close()
client = Nothing
End Function
#End Region
End Class |
Partager