Sub bleRxManager_DataAvailable (Service As String, Characteristics As Map)
Dim data() As Byte
Sleep(0)
If Not(notifyEnable) Then
If Service.ToUpperCase = bleServiceUUI Then
notifyEnable = True
Sleep(2000)
bleRxManager.SetNotify (bleServiceUUI.ToLowerCase, bleRxUUID.ToLowerCase, True)
startListening.Text = "Stop Listening"
End If
Else
For Each id As String In Characteristics.Keys
If id = bleRxUUID.ToLowerCase Then
'Log(Service)
'Log(id)
data = Characteristics.Get(id)
Log(bc.HexFromBytes(data))
Log("dataState is " & dataState)
If data(0) = 0x55 And Bit.And(0xFF, data(1)) = 0xFF And dataState = 0 Then
'start recording data Until Next start frame
counter = 0
Log("CURRENT COUNTER = " & counter)
bufferRx = ""
nbOfObjects = data(2)
bufferRx = bc.HexFromBytes(data)
dataState = 1
Else If data(0) = 0x55 And Bit.And(0xFF, data(1)) = 0xFF And dataState = 1 And bufferRx.Length > (nbOfObjects * 6 + 3) * 2 Then
bufferRx = ""
nbOfObjects = data(2)
bufferRx = bc.HexFromBytes(data)
dataState = 1
Else If dataState = 1 Then
bufferRx = bufferRx & bc.HexFromBytes(data)
counter = counter + 1
Log("CURRENT COUNTER = " & counter)
If bufferRx.Length = (nbOfObjects * 6 + 3) * 2 Then
dataState = 2
Log("dataState is " & dataState)
dataRx = bufferRx
tmp = dataRx.Length
Log("Before csv update " & dataRx.Length)
csvFileUpdate
'dataState = False
End If
End If
rxMsg.Text = rxMsg.Text & bc.HexFromBytes(data) & CRLF
'csvFile.Add(bc.HexFromBytes(data))
End If
Next
End If
End Sub