private void btnGATTReadValue_Click(object sender, EventArgs e)
{
bool flag = false;
if (cbReadType.SelectedIndex == 0)
{
HCICmds.GATTCmds.GATT_ReadCharValue gattReadCharValue = new HCICmds.GATTCmds.GATT_ReadCharValue();
tbReadValue.Tag = string.Empty;
tbReadValue.Text = "";
tbReadStatus.Text = "Reading...";
try
{
gattReadCharValue.connHandle = Convert.ToUInt16(tbReadConnHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Connection Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadConnHandle.Focus();
flag = true;
}
try
{
gattReadCharValue.handle = Convert.ToUInt16(tbReadAttrHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Characteristic Value Handle(s)\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadAttrHandle.Focus();
flag = true;
}
if (!flag)
devForm.sendCmds.SendGATT(gattReadCharValue, TxDataOut.CmdTypes.General, (SendCmds.SendCmdResult)null);
else
tbReadStatus.Text = "Error!!!";
}
else if (cbReadType.SelectedIndex == 1)
{
HCICmds.GATTCmds.GATT_ReadUsingCharUUID readUsingCharUuid = new HCICmds.GATTCmds.GATT_ReadUsingCharUUID();
tbReadValue.Tag = string.Empty;
tbReadValue.Text = "";
tbReadStatus.Text = "Reading...";
try
{
readUsingCharUuid.connHandle = Convert.ToUInt16(tbReadConnHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Connection Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadConnHandle.Focus();
flag = true;
}
try
{
readUsingCharUuid.startHandle = Convert.ToUInt16(tbReadStartHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Start Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadStartHandle.Focus();
flag = true;
}
try
{
readUsingCharUuid.endHandle = Convert.ToUInt16(tbReadEndHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid End Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadEndHandle.Focus();
flag = true;
}
try
{
switch (tbReadUUID.Text.Length)
{
case 5:
case 47:
readUsingCharUuid.type = tbReadUUID.Text;
break;
default:
throw new ArgumentOutOfRangeException();
}
}
catch (Exception ex)
{
string msg = string.Format("Invalid UUID Entry.\nFormat Is Either 00:00 or 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadUUID.Focus();
flag = true;
}
if (!flag)
devForm.sendCmds.SendGATT(readUsingCharUuid);
else
tbReadStatus.Text = "Error!!!";
}
else if (cbReadType.SelectedIndex == 2)
{
HCICmds.GATTCmds.GATT_ReadMultiCharValues readMultiCharValues = new HCICmds.GATTCmds.GATT_ReadMultiCharValues();
tbReadValue.Tag = string.Empty;
tbReadValue.Text = "";
tbReadStatus.Text = "Reading...";
try
{
readMultiCharValues.connHandle = Convert.ToUInt16(tbReadConnHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Connection Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadConnHandle.Focus();
flag = true;
}
try
{
readMultiCharValues.handles = tbReadAttrHandle.Text.Trim();
}
catch (Exception ex)
{
string msg = string.Format("Invalid Characteristic Value Handle(s)\nFormat: 0x0001;0x0002\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadAttrHandle.Focus();
flag = true;
}
if (!flag)
devForm.sendCmds.SendGATT(readMultiCharValues);
else
tbReadStatus.Text = "Error!!!";
}
else
{
if (cbReadType.SelectedIndex != 3)
return;
HCICmds.GATTCmds.GATT_DiscCharsByUUID gattDiscCharsByUuid = new HCICmds.GATTCmds.GATT_DiscCharsByUUID();
tbReadValue.Tag = string.Empty;
tbReadValue.Text = "";
tbReadStatus.Text = "Reading...";
try
{
gattDiscCharsByUuid.connHandle = Convert.ToUInt16(tbReadConnHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Connection Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadConnHandle.Focus();
flag = true;
}
try
{
gattDiscCharsByUuid.startHandle = Convert.ToUInt16(tbReadStartHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid Start Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadStartHandle.Focus();
flag = true;
}
try
{
gattDiscCharsByUuid.endHandle = Convert.ToUInt16(tbReadEndHandle.Text.Trim(), 16);
}
catch (Exception ex)
{
string msg = string.Format("Invalid End Handle\nFormat: 0x0000\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadEndHandle.Focus();
flag = true;
}
try
{
switch (tbReadUUID.Text.Length)
{
case 5:
case 47:
gattDiscCharsByUuid.type = tbReadUUID.Text.Trim();
break;
default:
throw new ArgumentOutOfRangeException();
}
}
catch (Exception ex)
{
string msg = string.Format("Invalid UUID Entry.\nFormat Is Either 00:00 or 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00\n\n{0}\n", ex.Message);
msgBox.UserMsgBox(SharedObjects.MainWin, MsgBox.MsgTypes.Error, msg);
tbReadUUID.Focus();
flag = true;
}
if (!flag)
devForm.sendCmds.SendGATT(gattDiscCharsByUuid);
else
tbReadStatus.Text = "Error!!!";
}
}