//读取测量数据 /// <summary> /// 读取测量数据和数据的处理 /// </summary> /// <param name="testkind">测试类型</param> /// <returns>回复解析完成的数据</returns> public string[] ReadTestData(Parameter.TestKind testkind) { if (testkind == Parameter.TestKind.介质损耗) { //string[] RetData = new string[5]; byte[] SendComman = { 0x12 }; byte[] RecBuffer = new byte[31]; sc.SendCommand(SendComman, ref RecBuffer, 50); if (RecBuffer[0] == 0xfa) { string[] RetData = new string[5]; RetData[0] = RecBuffer[1].ToString(); PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(7).ToArray())); RetData[1] = pv.ToString(); PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(9).Take(7).ToArray())); RetData[2] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(16).Take(7).ToArray())); RetData[3] = pv2.ToString(); RetData[4] = "0"; return(RetData); } if (RecBuffer[0] == 0xff) { string[] RetData = new string[5]; PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(7).ToArray())); RetData[0] = pv.ToString(); PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(9).Take(7).ToArray())); RetData[1] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(16).Take(7).ToArray()) + "%"); RetData[2] = pv2.ToString(percentage: true, positiveSign: true); PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(23).Take(7).ToArray())); RetData[3] = pv3.ToString(); RetData[4] = "1"; return(RetData); } if (RecBuffer[0] == 0xee) { string[] Rd = new string[1]; Rd[0] = TestErrDC(RecBuffer[1].ToString()); return(Rd);//错误类型 } } if (testkind == Parameter.TestKind.直流电阻) { byte[] Sendbuffer = { 0x32 }; byte[] RecBuffer = new byte[75]; try { sc.SendCommand(Sendbuffer, ref RecBuffer, 10); //if (CheckData(RecData) == RecData[74]) //{ if (RecBuffer[0] == 0xfa) { string[] RetData = new string[10]; RetData[0] = Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray()); PhysicalVariable pv = NumericsConverter.Text2Value(RetData[0]); RetData[0] = pv.ToString(); RetData[1] = Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray()); PhysicalVariable pv1 = NumericsConverter.Text2Value(RetData[1]); RetData[1] = pv1.ToString(); RetData[2] = Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv2 = NumericsConverter.Text2Value(RetData[2]); RetData[2] = pv2.ToString(); RetData[3] = Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray()); PhysicalVariable pv3 = NumericsConverter.Text2Value(RetData[3]); RetData[3] = pv3.ToString(); RetData[4] = Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray()); PhysicalVariable pv4 = NumericsConverter.Text2Value(RetData[4]); RetData[4] = pv4.ToString(); RetData[5] = Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv5 = NumericsConverter.Text2Value(RetData[5]); RetData[5] = pv5.ToString(); RetData[6] = Encoding.ASCII.GetString(RecBuffer.Skip(50).Take(8).ToArray()); PhysicalVariable pv6 = NumericsConverter.Text2Value(RetData[6]); RetData[6] = pv6.ToString(); RetData[7] = Encoding.ASCII.GetString(RecBuffer.Skip(58).Take(8).ToArray()); PhysicalVariable pv7 = NumericsConverter.Text2Value(RetData[7]); RetData[7] = pv7.ToString(); RetData[8] = Encoding.ASCII.GetString(RecBuffer.Skip(66).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv8 = NumericsConverter.Text2Value(RetData[8]); RetData[8] = pv8.ToString(); RetData[9] = "0"; return(RetData); } else if (RecBuffer[0] == 0xff) { string[] RetData = new string[10]; RetData[0] = Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray()); PhysicalVariable pv = NumericsConverter.Text2Value(RetData[0]); RetData[0] = pv.ToString(); RetData[1] = Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray()); PhysicalVariable pv1 = NumericsConverter.Text2Value(RetData[1]); RetData[1] = pv1.ToString(); RetData[2] = Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv2 = NumericsConverter.Text2Value(RetData[2]); RetData[2] = pv2.ToString(); RetData[3] = Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray()); PhysicalVariable pv3 = NumericsConverter.Text2Value(RetData[3]); RetData[3] = pv3.ToString(); RetData[4] = Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray()); PhysicalVariable pv4 = NumericsConverter.Text2Value(RetData[4]); RetData[4] = pv4.ToString(); RetData[5] = Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv5 = NumericsConverter.Text2Value(RetData[5]); RetData[5] = pv5.ToString(); RetData[6] = Encoding.ASCII.GetString(RecBuffer.Skip(50).Take(8).ToArray()); PhysicalVariable pv6 = NumericsConverter.Text2Value(RetData[6]); RetData[6] = pv6.ToString(); RetData[7] = Encoding.ASCII.GetString(RecBuffer.Skip(58).Take(8).ToArray()); PhysicalVariable pv7 = NumericsConverter.Text2Value(RetData[7]); RetData[7] = pv7.ToString(); RetData[8] = Encoding.ASCII.GetString(RecBuffer.Skip(66).Take(8).ToArray()).Replace("$", "Ω"); PhysicalVariable pv8 = NumericsConverter.Text2Value(RetData[8]); RetData[8] = pv8.ToString(); RetData[9] = "1"; return(RetData); } else if (RecBuffer[0] == 0xee) { string[] Rd = new string[1]; Rd[0] = TestErr(RecBuffer[1].ToString()); return(Rd);//错误类型 } //} } catch { } } if (testkind == Parameter.TestKind.绝缘电阻) { byte[] SendComman = { 0x22 }; byte[] RecData = new byte[18]; // float[] RetData = new float[4]; sc.SendCommand(SendComman, ref RecData, 50); if (CheckData(RecData) == RecData[17]) { if (RecData[0] == 0xfa) { string[] RetData = new string[4]; PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(1).Take(5).ToArray()) + "V"); RetData[0] = pv.ToString(); string TempData = Encoding.ASCII.GetString(RecData.Skip(6).Take(7).ToArray()).Replace("$", "Ω"); if (TempData.IndexOf('Ω') < 0) { TempData += "Ω"; } PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(6).Take(7).ToArray()).Replace("$", "Ω")); RetData[1] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(13).Take(4).ToArray())); RetData[2] = pv2.ToString(); RetData[3] = "0"; return(RetData); } if (RecData[0] == 0xff) { string[] RetData = new string[4]; string TempData = Encoding.ASCII.GetString(RecData.Skip(1).Take(7).ToArray()).Replace("$", "Ω"); if (TempData.IndexOf('Ω') < 0) { TempData += "Ω"; } PhysicalVariable pv = NumericsConverter.Text2Value(TempData); RetData[0] = pv.ToString(); PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(8).Take(4).ToArray())); RetData[1] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(12).Take(4).ToArray())); RetData[2] = pv2.ToString(); RetData[3] = "1"; return(RetData); } if (RecData[0] == 0xee) { string[] Rd = new string[1]; Rd[0] = TestErrDC(RecData[1].ToString()); return(Rd);//错误类型 } } else { } } if (testkind == Parameter.TestKind.载分接) { byte[] RecBuffer = new byte[51]; // float[] RetData = new float[7]; byte[] SendComman = { 0x42 }; sc.SendCommand(SendComman, ref RecBuffer, 50); if (RecBuffer[0] == 0xfa) { string[] RetData = new string[7]; RetData[0] = RecBuffer[1].ToString(); PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray())); RetData[1] = pv.ToString(); PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray())); RetData[2] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray())); RetData[3] = pv2.ToString(); PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray())); RetData[4] = pv3.ToString(); PhysicalVariable pv4 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray())); RetData[5] = pv4.ToString(); PhysicalVariable pv5 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray())); RetData[6] = pv5.ToString(); return(RetData); } else if (RecBuffer[0] == 0xff && RecBuffer[1] == 0xff) { string[] RetData = new string[6]; PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray())); RetData[0] = pv.ToString(); PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray())); RetData[1] = pv1.ToString(); PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray())); RetData[2] = pv2.ToString(); PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray())); RetData[3] = pv3.ToString(); PhysicalVariable pv4 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray())); RetData[4] = pv4.ToString(); PhysicalVariable pv5 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray())); RetData[5] = pv5.ToString(); return(RetData); } else if (RecBuffer[0] == 0xee) { string[] Rd = new string[1]; Rd[0] = TestErr(RecBuffer[1].ToString()); return(Rd);//错误类型 } else { return(null); } } if (testkind == Parameter.TestKind.读取放电数据) { byte[] RecData = new byte[26]; // float[] RetData = new float[4]; byte[] SendComman = { 0x3e }; if (sc.SendCommand(SendComman, ref RecData, 50) >= 0) { string[] RetData = new string[4]; bool Success; RetData[0] = RecData[0].ToString(); PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(1).Take(8).ToArray()), out Success); if (Success) { RetData[1] = pv.ToString(); } else { RetData[1] = Encoding.ASCII.GetString(RecData.Skip(1).Take(8).ToArray()); } PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(9).Take(8).ToArray()), out Success); if (Success) { RetData[2] = pv1.ToString(); } else { RetData[2] = Encoding.ASCII.GetString(RecData.Skip(9).Take(8).ToArray()); } PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(17).Take(8).ToArray()), out Success); if (Success) { RetData[3] = pv2.ToString(); } else { RetData[3] = Encoding.ASCII.GetString(RecData.Skip(17).Take(8).ToArray()); } return(RetData); } } return(null); }