using System; using UnityEngine; namespace CoreBluetoothSample { public class SampleButtonInformation_Data { // See the following for generating UUIDs: // https://www.uuidgenerator.net/ public static readonly string ServiceUUID = "068C47B7-FC04-4D47-975A-7952BE1A576F"; public static readonly string ButtonInformationCharacteristicUUID = "E91E5ECB-A460-4DB1-97F7-F13D52222E15"; /// /// Convert button information to byte array. /// This data format is same as toio button information. /// https://toio.github.io/toio-spec/en/docs/ble_button#read-operations /// /// /// public static byte[] GetButtonInformation(int buttonId, bool isPressed) { byte[] buff = new byte[2]; buff[0] = BitConverter.GetBytes(Mathf.Clamp(buttonId, 0, 255))[0]; buff[1] = (byte)(isPressed ? 0x80 : 0x00); return buff; } public static bool ParseButtonInformation(byte[] data, out int buttonId, out bool isPressed) { if (data.Length != 2) { buttonId = 0; isPressed = false; return false; } buttonId = data[0]; isPressed = (data[1] & 0x80) != 0; return true; } } }