in BluetoothLEExplorer/BluetoothLEExplorer/ViewModels/CharacteristicPageViewModel.cs [684:731]
public async void WriteTransaction()
{
if (!String.IsNullOrEmpty(ValueToWrite))
{
IBuffer writeBuffer = null;
if (WriteType == WriteTypes.Decimal)
{
DataWriter writer = new DataWriter();
writer.ByteOrder = ByteOrder.LittleEndian;
writer.WriteInt32(Int32.Parse(ValueToWrite));
writeBuffer = writer.DetachBuffer();
}
else if (WriteType == WriteTypes.Hex)
{
try
{
// pad the value if we've received odd number of bytes
if (ValueToWrite.Length % 2 == 1)
{
writeBuffer = GattConvert.ToIBufferFromHexString("0" + ValueToWrite);
}
else
{
writeBuffer = GattConvert.ToIBufferFromHexString(ValueToWrite);
}
}
catch (Exception ex)
{
MessageDialog dialog = new MessageDialog(ex.Message, "Error");
await dialog.ShowAsync();
return;
}
}
else if (WriteType == WriteTypes.UTF8)
{
writeBuffer = CryptographicBuffer.ConvertStringToBinary(ValueToWrite,
BinaryStringEncoding.Utf8);
}
context.WriteTransaction(Characteristic.Characteristic, writeBuffer);
}
else
{
NotifyUser.Insert(0, "No data to write to device");
}
}