Buon giorno a tutti,
sto sviluppando un'App per leggere dati da centraline Rfid alla quale mi collego con un client Socket e scriverli in un database Sqllite.
La centralina manda delle stringhe di lunghezza variabile con il terminatore CRLF.
Se mi arrivano 10 stringhe insieme la procedura che ho fatto non riesce a separarle e quindi la perdo.
Public Sub ConnectToServer(Host As String)
Log("Trying to connect to: " & Host)
CloseExistingConnection
Dim client As Socket
client.Initialize("client")
client.Connect(Host, PORT, 0)
Wait For Client_Connected (Successful As Boolean)
If Successful Then
astream.Initialize(client.InputStream, client.OutputStream, "astream")
UpdateState (True)
ContatoreChip = 0
Else
Log("Failed to connect: " & LastException)
End If
End Sub
Sub AStream_NewData (Buffer() As Byte)
CallSub2(Main, "NewData", Buffer)
End Sub
Public Sub NewData (data() As Byte)
Dim ready_fornext As Boolean
Dim rsp As String
rsp = BytesToString(data, 0, data.Length, "UTF8")
all_string_TCP= all_string_TCP & rsp
ready_fornext = rsp.EndsWith(Chr(10))
If ready_fornext Then
If all_string_TCP.Length = 60 Then
AnalizzaDato(rsp)
all_string_TCP=""
End If
all_string_TCP=""
End If
End Sub
Grazie 1000 per l'eventuale aiuto
sto sviluppando un'App per leggere dati da centraline Rfid alla quale mi collego con un client Socket e scriverli in un database Sqllite.
La centralina manda delle stringhe di lunghezza variabile con il terminatore CRLF.
Se mi arrivano 10 stringhe insieme la procedura che ho fatto non riesce a separarle e quindi la perdo.
Public Sub ConnectToServer(Host As String)
Log("Trying to connect to: " & Host)
CloseExistingConnection
Dim client As Socket
client.Initialize("client")
client.Connect(Host, PORT, 0)
Wait For Client_Connected (Successful As Boolean)
If Successful Then
astream.Initialize(client.InputStream, client.OutputStream, "astream")
UpdateState (True)
ContatoreChip = 0
Else
Log("Failed to connect: " & LastException)
End If
End Sub
Sub AStream_NewData (Buffer() As Byte)
CallSub2(Main, "NewData", Buffer)
End Sub
Public Sub NewData (data() As Byte)
Dim ready_fornext As Boolean
Dim rsp As String
rsp = BytesToString(data, 0, data.Length, "UTF8")
all_string_TCP= all_string_TCP & rsp
ready_fornext = rsp.EndsWith(Chr(10))
If ready_fornext Then
If all_string_TCP.Length = 60 Then
AnalizzaDato(rsp)
all_string_TCP=""
End If
all_string_TCP=""
End If
End Sub
Grazie 1000 per l'eventuale aiuto