173 lines
3.7 KiB
C#
173 lines
3.7 KiB
C#
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.Android;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
|
||
|
|
public class RTKDevManager : MonoBehaviour
|
||
|
|
{
|
||
|
|
private Text textConnState;
|
||
|
|
|
||
|
|
private Button btnTest;
|
||
|
|
private Text textTestPrompt;
|
||
|
|
|
||
|
|
|
||
|
|
private Button btnConnect;
|
||
|
|
private Text textConnStatus;
|
||
|
|
// Start is called before the first frame update
|
||
|
|
private Button btnDisconnect;
|
||
|
|
|
||
|
|
|
||
|
|
private Button btnDiscovery;
|
||
|
|
private Text textDiscovery;
|
||
|
|
|
||
|
|
|
||
|
|
private string mStrMacAddr = "20:AC:3B:26:C7:EB";
|
||
|
|
|
||
|
|
void Start()
|
||
|
|
{
|
||
|
|
RTKDev.RequestPermissions();
|
||
|
|
RTKDev.EnsureInstance();
|
||
|
|
|
||
|
|
InitControls();
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void InitControls()
|
||
|
|
{
|
||
|
|
|
||
|
|
GameObject go1 = GameObject.Find("/Canvas/ButtonConn");
|
||
|
|
btnConnect = go1.GetComponent<Button>();
|
||
|
|
|
||
|
|
GameObject go2 = GameObject.Find("/Canvas/TextConn");
|
||
|
|
textConnStatus = go2.GetComponent<Text>();
|
||
|
|
|
||
|
|
GameObject go3 = GameObject.Find("/Canvas/ButtonTest");
|
||
|
|
btnTest = go3.GetComponent<Button>();
|
||
|
|
|
||
|
|
GameObject go4 = GameObject.Find("/Canvas/TextTest");
|
||
|
|
textTestPrompt = go4.GetComponent<Text>();
|
||
|
|
|
||
|
|
GameObject go5 = GameObject.Find("/Canvas/ButtonDisc");
|
||
|
|
btnDiscovery = go5.GetComponent<Button>();
|
||
|
|
|
||
|
|
GameObject go6 = GameObject.Find("/Canvas/TextDisc");
|
||
|
|
textDiscovery = go6.GetComponent<Text>();
|
||
|
|
|
||
|
|
GameObject go7 = GameObject.Find("/Canvas/TextConnState");
|
||
|
|
textConnState = go7.GetComponent<Text>();
|
||
|
|
|
||
|
|
GameObject go8 = GameObject.Find("/Canvas/ButtonDisconn");
|
||
|
|
btnDisconnect = go8.GetComponent<Button>();
|
||
|
|
|
||
|
|
|
||
|
|
btnDiscovery.onClick.AddListener(Discovery);
|
||
|
|
btnConnect.onClick.AddListener(Connect);
|
||
|
|
btnTest.onClick.AddListener(Test);
|
||
|
|
btnDisconnect.onClick.AddListener(Disconnect);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void Discovery()
|
||
|
|
{
|
||
|
|
BluetoothManager.StartDiscovery();
|
||
|
|
textDiscovery.text = ("Start Searching...");
|
||
|
|
StopAllCoroutines();
|
||
|
|
StartCoroutine(PopulateListAsync());
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
IEnumerator PopulateListAsync()
|
||
|
|
{
|
||
|
|
bool founded = false;
|
||
|
|
while (true)
|
||
|
|
{
|
||
|
|
// Get List
|
||
|
|
var deviceList = BluetoothManager.GetAvailableDevices();
|
||
|
|
|
||
|
|
// Populate List
|
||
|
|
foreach (var device in deviceList)
|
||
|
|
{
|
||
|
|
int len = deviceList.Count;
|
||
|
|
if (device.mac.Equals(mStrMacAddr))
|
||
|
|
{
|
||
|
|
textDiscovery.text = ("Dev founded");
|
||
|
|
founded = true;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
if (founded == true)
|
||
|
|
{
|
||
|
|
yield return null;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
// update every 1s
|
||
|
|
// print("Updated device list. count="+deviceList.Length);
|
||
|
|
textDiscovery.text = "Dev re discovery";
|
||
|
|
yield return new WaitForSecondsRealtime(1);
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void Connect()
|
||
|
|
{
|
||
|
|
RTKDev.Connect();
|
||
|
|
|
||
|
|
int i = 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void Disconnect()
|
||
|
|
{
|
||
|
|
RTKDev.Disconnect();
|
||
|
|
|
||
|
|
int i = 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void Test()
|
||
|
|
{
|
||
|
|
StopAllCoroutines();
|
||
|
|
int result = RTKDev.Test();
|
||
|
|
textTestPrompt.text = string.Format("Add Result from unity:{0}\n", result);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Update is called once per frame
|
||
|
|
void Update()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void OnGUI()
|
||
|
|
{
|
||
|
|
int state = RTKDev.GetConnectState();
|
||
|
|
|
||
|
|
if (state == 0)
|
||
|
|
{
|
||
|
|
textConnState.text = "Not Connect";
|
||
|
|
}
|
||
|
|
else if (state == 1)
|
||
|
|
{
|
||
|
|
textConnState.text = "Connecting";
|
||
|
|
}
|
||
|
|
else if (state == 2)
|
||
|
|
{
|
||
|
|
textConnState.text = "Connected";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
textConnState.text = "Unknown";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|