/// <summary> /// 发送蓝牙命令 /// </summary> /// <param name="cmd">蓝牙命令</param> public void WriteBleCmd(enumBleCmd cmd) { //安全性检验 //if (SerialBleStatus == enumBleStatus.Stop) //{ // //Console.WriteLine("串口未开启,无法发生命令。"); // return; //} //发送蓝牙命令 string[] arrCmdData = this.GetBleCmd(cmd); if (EventBleSerialWrite != null) { EventBleSerialWrite(arrCmdData); } }
/// <summary> /// 获取蓝牙命令 /// </summary> /// <param name="cmd">命令枚举</param> /// <returns>串口命令字符串</returns> public string[] GetBleCmd(enumBleCmd cmd) { List <string> listBleCmd = new List <string>(); setSerialBleCmd(cmd); switch (cmd) { case enumBleCmd.Init: setSerialBleStatus(enumBleStatus.Stop); listBleCmd.Add("AT"); break; case enumBleCmd.Find: if (SerialBleStatus == enumBleStatus.Ready) { setSerialBleStatus(enumBleStatus.Find); listBleCmd.Add("AT+DISC?"); } else { EventBleLog("搜索失败请重试"); return(GetBleCmd(enumBleCmd.Init)); } break; case enumBleCmd.Link: if (SerialBleStatus == enumBleStatus.Ready) { setSerialBleStatus(enumBleStatus.Link); if (ComboBle.Items.Count > 0 && ComboBle.SelectedIndex >= 0) { setSerialBleStatus(enumBleStatus.Link); //listBleCmd.Add("AT+CONN" + ComboBle.SelectedIndex); listBleCmd.Add("AT+CON" + DicListBle[ComboBle.SelectedItem.ToString()]); _bakBleLinkData = ComboBle.SelectedItem.ToString(); } } else { Console.WriteLine("请先搜索蓝牙设备。"); EventBleLog("请先搜索蓝牙设备"); } break; case enumBleCmd.Reset: setSerialBleStatus(enumBleStatus.Stop); listBleCmd.Add("AT"); listBleCmd.Add("AT+RESET"); break; case enumBleCmd.ReLink: if (ComboBle.Items.Count > 0 && DicListBle.ContainsKey(_bakBleLinkData)) { ComboBle.SelectedIndex = ComboBle.Items.IndexOf(_bakBleLinkData); return(GetBleCmd(enumBleCmd.Link)); } break; default: break; } return(listBleCmd.ToArray()); }
/// <summary> /// 设置蓝牙命令 /// </summary> /// <param name="cmd">蓝牙命令枚举</param> private void setSerialBleCmd(enumBleCmd cmd) { this._serialBleCmd = cmd; }