using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Wit.SDK.Modular.Sensor.Device; namespace Wit.SDK.Modular.Sensor.Utils { /// /// AT指令帮助类 /// public class ATCommandHelper { /// /// 发送读取的命令,并且查找返回结果 /// /// /// /// public static string SendReadCommandAndFindLine(DeviceModel deviceModel, string sendData, string[] condition, int repeat = 3) { string result = null; int i = 0; // 如果没有结果就重复指定次数 while (++i <= repeat) { string data = SendReadCommand(deviceModel, sendData); for (int j = 0; j < condition.Length; j++) { result = FindLine(data, condition[j]); if (!string.IsNullOrEmpty(result)) { return result; } } } return null; } /// /// 发送读取的命令 /// /// /// public static string SendReadCommand(DeviceModel deviceModel, string sendData) { byte[] returnData; deviceModel.SendData(Encoding.Default.GetBytes(sendData), out returnData, true, 900, 2); string result = Encoding.Default.GetString(returnData); return result; } /// /// 查找返回结果 /// /// /// /// public static string FindLine(string data, string condition) { string[] rows = data.Split('\r', '\n'); for (int i = 0; i < rows.Length; i++) { if (rows[i].Contains(condition)) { return rows[i]; } } return null; } } }