| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | using System.Text;using BluetoothLENet;namespace InABox.Avalonia.Platform.Desktop;public class Desktop_ConnectedBluetoothDevice : Desktop_BluetoothDevice, IConnectedBluetoothDevice{    public Desktop_ConnectedBluetoothDevice(BLEDevice device) : base(device)    {    }    public async Task<bool> WriteBytesAsync(Guid serviceid, Guid characteristicid, byte[] data)    {        var service = Device?.Services.FirstOrDefault(x=>x.Native.Uuid == serviceid);        if (service != null)        {            var characteristic = service.Characteristics.FirstOrDefault(x=>x.Native.Uuid == characteristicid);            if (characteristic != null)                return await characteristic.WriteAsync(data);        }        return false;    }    public async Task<bool> WriteStringAsync(Guid serviceid, Guid characteristicid, string data)    {        try        {            var encoded = Encoding.UTF8.GetBytes(data);            var result = await WriteBytesAsync(serviceid, characteristicid, encoded);            return result;        }        catch (Exception e)        {            Console.WriteLine(e);            return false;        }           }    public async Task<byte[]?> ReadBytesAsync(Guid serviceid, Guid characteristicid)    {        var service = Device?.Services.FirstOrDefault(x=>x.Native?.Uuid == serviceid);        if (service != null)        {            var characteristic = service.Characteristics.FirstOrDefault(x=>x.Native?.Uuid == characteristicid);            if (characteristic != null)                return await characteristic.ReadAsync();        }        return [];    }        public async Task<String?> ReadStringAsync(Guid serviceid, Guid characteristicid)    {        var data = await ReadBytesAsync(serviceid,characteristicid);        return data != null ? Encoding.UTF8.GetString(data) : null;    }}
 |