Sub Process_Globals
Public manager As BleManager2
Public currentStateText As String = "UNKNOWN"
Public currentState As Int
Public connected As Boolean = False
Public ConnectedName As String
Private ConnectedServices As List
Public rp As RuntimePermissions
Public DATA_SERVICE As String = "49535343-fe7d-4ae5-8fa9-9fafd205e455" 'data service for RN-BLE RN4871, write to pc
Public DATA_UART_RX As String = "49535343-8841-43f4-a8d4-ecbe34729bb3" 'write writenoresponse
Public DATA_UART_TX As String = "49535343-1e4d-4bd9-ba61-23c647249616" 'write writenoresponse Notify Indicate, THIS AS 'SET.NOTIFY'
Private messagesToSend As List
End Sub
Public Sub SendMessage(msg() As Byte)
messagesToSend.Add(TrimMessage(msg))
'messagesToSend.Add(msg)
If messagesToSend.Size = 1 Then
Do While messagesToSend.Size > 0
Try
manager.WriteData(DATA_SERVICE, DATA_UART_TX, messagesToSend.Get(0))
Catch
FailedToSend
Return
End Try
Wait For Manager_WriteComplete (Characteristic As String, Status As Int)
If Status <> 0 Then
FailedToSend
End If
If connected = False Or messagesToSend.Size = 0 Then Return
messagesToSend.RemoveAt(0)
Loop
End If
End Sub
Sub FailedToSend
Log("Failed to send message. Disconnecting.")
manager.Disconnect
End Sub
Sub TrimMessage(msg() As Byte) As Byte()
If msg.Length > 20 Then
Dim bc As ByteConverter
Dim NewMsg(20) As Byte
bc.ArrayCopy(msg, 0, NewMsg, 0, 20)
Return NewMsg
End If
Return msg
End Sub