/*public void SendCommand(String Commands, String Address, String Data) * { * string FCS; * string input = "00" + Commands + Address + Data; * char[] values = input.ToCharArray(); * char[] first = "@".ToCharArray(); * int sum = first[0]; * foreach (char letter in values) * { * sum = letter ^ sum; * } * FCS = Convert.ToString(sum, 16); * string sendcommand = "@00" + Commands + Address + Data + FCS + "*\r\n"; * Comports.WriteLine(sendcommand); //写入数据 * }*/ private int CommandTrant2(String Commands, String Address, String Data) { try { //FCS转换 string FCS; int temp; temp = Convert.ToInt32(Data); Data = Convert.ToString(temp, 16); Data = Data.PadLeft(4, '0'); Commands = Commands.ToUpper(); Address = Address.ToUpper(); Data = Data.ToUpper(); string input = "00" + Commands + Address + Data; char[] values = input.ToCharArray(); char[] first = "@".ToCharArray(); int sum = first[0]; foreach (char letter in values) { sum = letter ^ sum; } FCS = Convert.ToString(sum, 16); //发送指令 string sendcommand = "@00" + Commands + Address + Data + FCS.ToUpper() + "*\r\n"; //Console.Write(sendcommand); string FCS2; string input2 = "00" + Commands + "00"; char[] values2 = input2.ToCharArray(); char[] first2 = "@".ToCharArray(); int sum2 = first2[0]; foreach (char letter2 in values2) { sum2 = letter2 ^ sum2; } FCS2 = Convert.ToString(sum2, 16); Comports.WriteLine(sendcommand); result = null; Thread.Sleep(70); Console.Write("正确输出:" + "@00" + Commands + "00" + FCS2.ToUpper() + "*\n"); int count = 0; while (result != "@00" + Commands + "00" + FCS2.ToUpper() + "*") { if (result == "@00WD0152*") { return(0); } //Console.Write("实际输出:" + result); Comports.WriteLine(sendcommand); //Thread.Sleep(20); count++; if (count == 3) { OpenComPortSig = false; return(-1); } // Console.Write("输入命令:" + sendcommand + "\n"); } return(0); //Console.Write("最后输出:" + result); } catch { return(-1); } }