Bonjour,
Un projet simple qui me permet de dialoguer avec un Arduino.
Tout fonctionne parfaitement (je transmet et reçoit mes données)
Le seul problème est que les données reçues ne sont pas toujours complètes.
Je dois recevoir une trame de 24 caractères (en fait 24 chiffres).
Des fois je reçois les 24 chiffres, des fois une dizaine, des fois 5, des fois 1, etc...
Je n'ai aucune erreur de fonctionnement.
Ou est mon erreur ?
Cordialement
Un projet simple qui me permet de dialoguer avec un Arduino.
Tout fonctionne parfaitement (je transmet et reçoit mes données)
Le seul problème est que les données reçues ne sont pas toujours complètes.
Je dois recevoir une trame de 24 caractères (en fait 24 chiffres).
Des fois je reçois les 24 chiffres, des fois une dizaine, des fois 5, des fois 1, etc...
Je n'ai aucune erreur de fonctionnement.
Ou est mon erreur ?
Cordialement
B4X:
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("accueil")
MyDeviceName = "linvor"
ToastMessageShow("Trying to connect to " & MyDeviceName, True)
Timer1.Initialize("timer1",50000)
Timer1.Enabled = False
Try
BT.Initialize("BT")
Serial1.Initialize("Serial1")
Catch
ToastMessageShow("No BlueTooth Device visible...", True)
End Try
End Sub
Sub Activity_Resume
Try
If BT.IsEnabled = False Then
BT.Enable
Else
'connect to SK
BTConnectToDevice
End If
Catch
End Try
End Sub
Sub BT_StateChanged(NewState As Int,OldState As Int)
If NewState = BT.STATE_ON Then
BTConnectToDevice
Log("BT Connect")
Else
Serial1.Disconnect
Timer1.Enabled = False
Log("BT Disconnect")
End If
End Sub
Sub BTConnectToDevice
Dim PairedDevices As Map
PairedDevices = Serial1.GetPairedDevices
Try
Serial1.Connect3(PairedDevices.Get(MyDeviceName),1)
Catch
ToastMessageShow("Device not available",True)
End Try
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'Sub mnuConnect_Click
' Dim PairedDevices As Map
' PairedDevices = Serial1.GetPairedDevices
' Dim l As List
' l.Initialize
' For i = 0 To PairedDevices.Size - 1
' l.Add(PairedDevices.GetKeyAt(i))
' Next
' Dim res As Int
' res = InputList(l, "Choose device", -1)
' If res <> DialogResponse.CANCEL Then
' Serial1.Connect(PairedDevices.Get(l.Get(res)))
' End If
'End Sub
Sub Serial1_Connected (Success As Boolean)
If Success = True Then
ToastMessageShow("Bluetooth connected to " & Serial1.Address, False)
AStreams.Initialize(Serial1.InputStream,Serial1.OutputStream,"AStreams")
Timer1.Enabled = True
Else 'disconnected
ToastMessageShow("Connection to " & Serial1.Address & _
" broken!", True)
Timer1.Enabled = False
connected = False
End If
End Sub
Sub AStreams_NewData (Buffer () As Byte)
msg = BytesToString (Buffer, 0 , Buffer.Length, "UTF8" )
ToastMessageShow (msg, False )
End Sub