Ejemplo n.º 1
0
 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!!!";
     }
 }