Advertisement
Guest User

Untitled

a guest
Jan 7th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Region  Service Attributes
  2.     #StartAtBoot: False
  3.     #ExcludeFromLibrary: True
  4. #End Region
  5.  
  6. Sub Process_Globals
  7.     Public manager As BleManager2
  8.     Public currentStateText As String = "UNKNOWN"
  9.     Private serviceId, charId As String
  10.     Private connected As Boolean
  11. End Sub
  12.  
  13. Sub Service_Create
  14.     manager.Initialize("manager")
  15.     serviceId = UUID("ffe0")   
  16.     charId = UUID("ffe1")
  17. End Sub
  18.  
  19. Sub Service_Start (StartingIntent As Intent)
  20.  
  21. End Sub
  22.  
  23.  
  24. Sub Manager_StateChanged (State As Int)
  25.     Select State
  26.         Case manager.STATE_POWERED_OFF
  27.             currentStateText = "POWERED OFF"
  28.         Case manager.STATE_POWERED_ON
  29.             currentStateText = "POWERED ON"
  30.         Case manager.STATE_UNSUPPORTED
  31.             currentStateText = "UNSUPPORTED"
  32.     End Select
  33.     CallSub(Main, "BleStateChanged")
  34.     If State = manager.STATE_POWERED_ON Then
  35.         manager.Scan2(Array (serviceId), False)
  36.     End If
  37. End Sub
  38.  
  39.  
  40. Sub Manager_DeviceFound (Name As String, Id As String, AdvertisingData As Map, RSSI As Double)
  41.     Log($"Device found: ${Name}"$)
  42.     manager.Connect2(Id, False)
  43. End Sub
  44.  
  45.  
  46. Sub manager_Connected (Services As List)
  47.     Log("connected: " & Services)
  48.     connected = True
  49.     Log(serviceId)
  50.     manager.SetNotify(serviceId, charId, True)
  51. End Sub
  52.  
  53. Sub Manager_Disconnected
  54.     connected = False
  55.     manager.Scan2(Array (serviceId), False)
  56. End Sub
  57.  
  58.  
  59. Sub Manager_DataAvailable (sid As String, Characteristics As Map)
  60.     Dim b() As Byte = Characteristics.Get(charId)
  61.     Dim msg As String = BytesToString(b, 0, b.Length, "utf8")
  62.     CallSub2(Main, "DeviceMessage", msg)
  63. End Sub
  64.  
  65. Public Sub SendMessage(msg() As Byte)
  66.     If Not(connected) Then Return
  67.     manager.WriteData(serviceId, charId, msg)
  68. End Sub
  69.  
  70. Private Sub UUID(id As String) As String
  71. #if B4A
  72.     Return "0000" & id.ToLowerCase & "-0000-1000-8000-00805f9b34fb"
  73. #else if B4I
  74.     Return id.ToUpperCase
  75. #End If
  76. End Sub
  77.  
  78.  
  79.  
  80. 'Return true to allow the OS default exceptions handler to handle the uncaught exception.
  81. Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
  82.     Return True
  83. End Sub
  84.  
  85. Sub Service_Destroy
  86.  
  87. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement