Sub Process_Globals
Public xui As XUI
Public rp As RuntimePermissions
End Sub
Sub Globals
Private BTA As BluetoothAsynchStream
Private BtnConnect, Sortie As Button
Private lblStatus, Pilotage As Label
Private pnlMain As B4XView
Private Forward, Backward, STOP, TR, TL, Square, Etoile, Pen As ImageView
Private ProgressBar1 As ProgressBar
Public DeviceName = "HC-05" As String
Public Connected As Boolean
Private x=0, y=0 As Int 'Default values not triggering any turtle maneuvers
Private BLT As ImageView
Private turtle As ImageView
Public Write=False As Boolean
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
BTA.Initialize(Me, "BTA", lblStatus, ProgressBar1)
Pilotage.Text=" Welcome aboard the Graphic " & CRLF & " Turtle Bluetooth cockpit! "
Pilotage.Text=Pilotage.Text & CRLF & " The commands will appear " & CRLF & " as soon as the connection is " & CRLF & " established with the turtle."
Pilotage.Text=Pilotage.Text & CRLF & CRLF &" Please, press the green " & CRLF & " CONNECTION button! "
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
If UserClosed = True And Connected = True Then
BTA.SendBytes(Array As Byte(0, 0))
BTA.Disconnect
End If
End Sub
Private Sub Activity_PermissionResult (Permission As String, Result As Boolean)
End Sub
Sub BtnConnect_Click
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then
lblStatus.Text = "Status: Permission denied..."
Else
BTA.Connect(DeviceName)
End If
End Sub
Sub Pen_LongClick
' pencil up or down
' A long press on the PEN key causes the pencil to descend >>> Pen Down
' A second long press on the PEN key causes the pencil to rise >>> Pen Up
If Write = False Then
Pen.Bitmap = LoadBitmap(File.DirAssets,"Pen_Down.jpg")
Write = True
x = 1
y = 1 'The value y = 1 triggers the lighting of an LED when the pencil is lowered
Else
Pen.Bitmap = LoadBitmap(File.DirAssets,"Pen_Up.jpg")
Write = False
x = 2
y = 0
End If
BTA.SendBytes(Array As Byte(x,y))
End Sub
Sub Etoile_Click
x=3
BTA.SendBytes(Array As Byte(x,y))
End Sub
Sub Square_Click
x = 4
BTA.SendBytes(Array As Byte(x,y))
End Sub
Sub Cercle_Click
x=13
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub STOP_Click
x=0
BTA.SendBytes(Array As Byte(x,y))
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
End Sub
Sub Forward_Click 'Forward
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
x = 5
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub Forward_LongClick 'Quick Forward
Forward.Bitmap = LoadBitmap(File.DirAssets,"avplus.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
x=6
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub Backward_Click 'Backward
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
x=7
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub Backward_LongClick ' Quick Backward
Backward.Bitmap = LoadBitmap(File.DirAssets,"arplus.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
x=8
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub TR_Click 'Right
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
x=9
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub TR_LongClick 'Right +
TR.Bitmap = LoadBitmap(File.DirAssets,"tdplus.jpg")
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
x=10
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub TL_Click 'Left
TL.Bitmap = LoadBitmap(File.DirAssets,"tg.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
x=11
BTA.SendBytes(Array As Byte(x, y))
End Sub
Sub TL_LongClick ' Left +
TL.Bitmap = LoadBitmap(File.DirAssets,"tgplus.jpg")
TR.Bitmap = LoadBitmap(File.DirAssets,"td.jpg")
Forward.Bitmap = LoadBitmap(File.DirAssets,"av.jpg")
Backward.Bitmap = LoadBitmap(File.DirAssets,"ar.jpg")
x=12
BTA.SendBytes(Array As Byte(x, y))
End Sub
Private Sub BTA_Connected (Success As Boolean)
If Success = True Then
Connected = Success
BtnConnect.Visible=False
BLT.Visible=True
Sortie.Visible=True
Pilotage.Visible=False
Forward.Visible=True
Backward.Visible=True
TR.Visible=True
TL.Visible=True
Square.Visible=True
STOP.Visible=True
Pen.Visible=True
Etoile.Visible=True
End If
End Sub
Private Sub BTA_StateChanged (State As String)
If State <> "" Then
Connected = False
BtnConnect.Visible=True
BLT.Visible=False
Sortie.Visible=False
Pilotage.Visible=True
Forward.Visible=False
Backward.Visible=False
TR.Visible=False
TL.Visible=False
Square.Visible=False
STOP.Visible=False
Pen.Visible=False
Etoile.Visible=False
End If
End Sub
Sub Sortie_Click
Msgbox2Async("Are you sure you want to close the Bluetooth connection?","To leave ?", "Yes", "", "No", Null, True)
Wait For Msgbox_Result (Result As Int)
If Result=DialogResponse.POSITIVE Then
BTA.SendBytes(Array As Byte(0,0)) 'Stopping the engines
Activity.Finish
End If
End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean
If KeyCode = KeyCodes.KEYCODE_BACK Then openMsgBox
Return True
End Sub
Sub openMsgBox
Msgbox2Async("Are you sure you want to close the Bluetooth connection? ?","To leave ?", "Yes", "", "No", Null, True)
Wait For Msgbox_Result (Result As Int)
If Result=DialogResponse.POSITIVE Then
BTA.SendBytes(Array As Byte(0,0)) 'Stopping the engines
Activity.Finish
End If
End Sub