private static void OnPagckageReceived(object sender, PackageEventArgs <MyPackageInfo> e) { if (e.Package.Data.Length > 1 || e.Package.Header.Length > 0) { SendNoticeMessage(e.Package); myPackageInfo = e.Package; } //LogHelper.Log.Info("收到服务消息【Byte】:"+"head:"+BitConverter.ToString(e.Package.Header)+" body:"+BitConverter.ToString(e.Package.Data)); }
private void TestItemProcess(MyPackageInfo packageInfo, TestTypeEnum testType) { var baseNum = DecConvert2Hex(packageInfo.Data[10]); var power = (int)packageInfo.Data[11]; byte[] buffer = new byte[4]; Array.Copy(packageInfo.Data, 12, buffer, 0, 4); var resistanceVal = Convert.ToUInt32(BitConverter.ToString(buffer).Replace("-", ""), 16); var resistance = resistanceVal / 65536.0; double factor = 0; if (baseNum == "00") { double.TryParse(Convert.ToString((int)packageInfo.Data[11], 16).Substring(0, 1), out factor); } else if (baseNum == "01") { factor = 10 * Math.Pow(10, power); } var calResult = (resistance * factor).ToString("f2"); var assResult = resistance * factor; Task.Run(() => { switch (testType) { case TestTypeEnum.AssTest: if (this.devConfig.CompensateState == "1") { this.tb_dzResult.Text = (assResult + this.devConfig.AssCompensateVal).ToString("f2"); } else { this.tb_dzResult.Text = calResult; } break; case TestTypeEnum.InsVoltageTest: this.tb_insulateDY_Result.Text = calResult; break; case TestTypeEnum.InsAssTest: this.tb_insulateDz_Result.Text = calResult; break; } }); }
private void SuperEasyClient_NoticeMessageEvent(MyPackageInfo packageInfo) { var dataLength = packageInfo.Data.Length; //导通测试成功后,更新UI,并开始测试下一个 //收到f2 cc if (packageInfo.Header.Length < 4 || packageInfo.Data.Length < 4) { return; } if (packageInfo.Data[0] != 0xff || packageInfo.Data[1] != 0xff) { return; } if (packageInfo.Data[4] == 0xfb && packageInfo.Data[5] == 0xcc)//设备自检 { TestItemProcess(packageInfo); } }
private void TestItemProcess(MyPackageInfo packageInfo) { var baseNum = DecConvert2Hex(packageInfo.Data[10]); var power = (int)packageInfo.Data[11]; byte[] buffer = new byte[4]; Array.Copy(packageInfo.Data, 12, buffer, 0, 4); var resistanceVal = Convert.ToUInt32(BitConverter.ToString(buffer).Replace("-", ""), 16); var resistance = resistanceVal / 65536.0; double factor = 0; if (baseNum == "00") { double.TryParse(Convert.ToString((int)packageInfo.Data[11], 16).Substring(0, 1), out factor); } else if (baseNum == "01") { factor = 10 * Math.Pow(10, power); } var calResult = resistance * factor; this.tb_checkResult.Text = calResult.ToString("f3"); var min = devSelfCheckThreshold - (devSelfCheckThreshold * 0.1); var max = devSelfCheckThreshold + (devSelfCheckThreshold * 0.1); if (calResult >= min && calResult <= max) { this.lbx_checkTip.Text = "自检结果在500正负10%范围内"; } else { this.lbx_checkTip.Text = "自检结果不在500正负10%范围内"; this.lbx_checkTip.ForeColor = Color.Red; } this.lbx_checkTip.Visible = true; this.btn_startCheck.Enabled = true; }
private static void SendNoticeMessage(MyPackageInfo packageInfo) { NoticeMessageEvent(packageInfo); }