/// <summary> /// 在非UI线程上执行检测 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TestBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bgWorker = sender as BackgroundWorker; using (PcbTesterClient client = PcbTesterClient.Create(Settings.Default.PortName, Settings.Default.BaudRate)) { client.Open(); progressValue = 0; List <CommandResult> commandResultsList = new List <CommandResult>(); for (int i = 0; i < this.landing1.SelectedTestItems.Count; i++) { TestItemInfo testItem = this.landing1.SelectedTestItems[i]; bgWorker.ReportProgress(i); progressValue = i; var testResult = CommandEngine.Instance.Excute(client, testItem); commandResultsList.Add(testResult); bgWorker.ReportProgress(i, testResult); //在操作的过程中需要检查用户是否取消了当前的操作。 if (bgWorker.CancellationPending == true) { e.Cancel = true; break; } } e.Result = commandResultsList; } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var eraseCommand = new EraseSPIFlashCommand(); var eraseParameter = new AddressCommandParameter(0x0u); CommandResult eraseResult = eraseCommand.Execute(client, eraseParameter, null); var readcommand0 = new ReadSPIFlashCommand(); var readParameter0 = new AddressCommandParameter(0x0u, 4); CommandResult readResult0 = readcommand0.Execute(client, readParameter0, null); client.Write("0-0:199.128.8", new byte[] { 0x10 }, 0x0u); #if false var readcommand0 = new ReadSPIFlashCommand(); var readParameter0 = new AddressCommandParameter(0x00020000u, 4); CommandResult readResult0 = readcommand0.Execute(client, readParameter0, null); var eraseCommand = new EraseSPIFlashCommand(); var eraseParameter = new AddressCommandParameter(0x00020000u); CommandResult eraseResult = eraseCommand.Execute(client, eraseParameter, null); var readcommand = new ReadSPIFlashCommand(); // var parameter = new AddressCommandParameter(0x00u, 2, "FFFF"); //var parameter = new AddressCommandParameter(0x00020000u, 4, "FFFFFFFF"); var readParameter = new AddressCommandParameter(0x00020000u, 4); CommandResult readResult = readcommand.Execute(client, readParameter, null); var command = new WriteSPIFlashCommand(); // var parameter = new AddressCommandParameter(0x00020000u, "00000000"); //string writeData = "000000000000000000000000000000000000000000000000000001A650000000505000000050500000005050000000505000000050500000005050000000505000000050500000005050000000505000000050500000005050000000505000000050500000005050000000505000000050000000000000000000000000000000"; string writeData = "FF"; var writeParameter = new AddressCommandParameter(0x00020000u, writeData); CommandResult result = command.Execute(client, writeParameter, null); //writeParameter = new AddressCommandParameter(0x01, writeData); //result = command.Execute(client, writeParameter, null); var readcommand1 = new ReadSPIFlashCommand(); // var parameter = new AddressCommandParameter(0x00u, 2, "FFFF"); //var parameter = new AddressCommandParameter(0x00020000u, 4, "FFFFFFFF"); var readParameter1 = new AddressCommandParameter(0x00020000u, 1); CommandResult readResult1 = readcommand.Execute(client, readParameter1, null); #endif // Assert.AreEqual(result.Success, true); //Assert.AreEqual(result.Message, ""); } }
public void WriteSuccessTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); WriteResult writeResult = client.Write("0-0:199.128.1", string.Empty); Assert.AreEqual(true, writeResult.Success); } }
public void WriteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); byte[] writeResult = client.Write("68AAAAAAAAAAAA6801043413173A6916", true); Assert.Fail(); } }
public void CalibrateACPhaseTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); WriteResult writeResult = CalibrationHelper.CalibratePhase(client, 65); Assert.AreEqual(writeResult.Success, true); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new ReadErrorMsgCommand(); CommandResult result = command.Execute(client, null, null); Assert.AreEqual(result.Success, true); Assert.AreEqual(result.Data, "No Error"); } }
public void ExecuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var secondsCommand = new SecondSignalCalibrationCommand(); CommandResult result = secondsCommand.Execute(client, null, null); Assert.AreEqual(result.Data, "50000000,5"); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new BreakerTestCommand(); CommandResult result = command.Execute(client, null, null); Assert.AreEqual(result.Success, false); Assert.AreEqual(result.Data, "ERROR,ERROR,ERROR"); } }
public void WriteWrongTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); //启动交流测量命令,obis参数相线设置错误 WriteResult writeResult = client.Write("0-0:199.128.5", "D"); Assert.AreEqual(false, writeResult.Success); Assert.AreEqual(615, writeResult.Error.ErrorCode); Assert.AreEqual("(ERR615) " + Resources.ERR615, writeResult.Error.ToString()); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new WriteI2CCommand(); var parameter = new AddressCommandParameter(0xA4, 0x20, "126A9B63142533"); CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, false); Assert.AreEqual(result.Message, string.Format("{0}:({1}) {2}", "Write I2C Command", "ERR610", Resources.ERR610)); } }
public void CalibrateACCurrentTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); WriteResult writeResult = CalibrationHelper.CalibrateCurrent(client, 14.58m); //Assert.AreEqual(writeResult.Success, true); Assert.AreEqual(writeResult.Success, false); Assert.AreEqual(writeResult.Error.ErrorCode, 615); Assert.AreEqual(writeResult.Error.Message, "Calibrate AC Current Measurement"); Assert.AreEqual(writeResult.Error.ToString(), string.Format("(ERR615) {0}", Resources.ERR615)); } }
public void ExecuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new EraseSPIFlashCommand(); //var parameter = new AddressCommandParameter(0x00); var parameter = new AddressCommandParameter(0x00); CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, true); } }
public void CloseAllRelayControlTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var relayControlCommand = new RelayControlCommand(); var parameter = new RelayControlCommandParameter(); var context = new CommandContext(); parameter.Action = RelayControlAction.CLOSE; parameter.SelectedNumber = "all"; CommandResult result = relayControlCommand.Execute(client, parameter, context); Assert.AreEqual(result.Success, true); } }
/// <summary> /// 断电复位 关闭所有继电器 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void resetToolStripMenuItem_Click(object sender, EventArgs e) { using (PcbTesterClient client = PcbTesterClient.Create(Settings.Default.PortName, Settings.Default.BaudRate)) { try { client.Open(); RelayControlHelper.Reset(client); } catch (Exception ex) { MessageBoxHelper.ShowError(ex.Message); return; } } }
/// <summary> /// 上模拟电压电流,导通5V 模拟电压 模拟电流继电器 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void onAnalogVolCurrentToolStripMenuItem_Click(object sender, EventArgs e) { using (PcbTesterClient client = PcbTesterClient.Create(Settings.Default.PortName, Settings.Default.BaudRate)) { try { client.Open(); RelayControlHelper.ControlRelay(client, new RelayControlCommandParameter(RelayControlAction.OPEN, "0,1,2,3,4,5,6")); } catch (Exception ex) { MessageBoxHelper.ShowError(ex.Message); return; } } }
public void ExecuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new ReadSPIFlashCommand(); // var parameter = new AddressCommandParameter(0x00u, 2, "FFFF"); //var parameter = new AddressCommandParameter(0x00020000u, 4, "FFFFFFFF"); var parameter = new AddressCommandParameter(0x40, 0x40); CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, true); //Assert.AreEqual(result.Data, "126A9B63142533FFFFFFFFFFFFFFFFFF"); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new ReadI2CCommand(); var parameter = new AddressCommandParameter(0xA4, 0x20, 0x10); CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, true); Assert.AreEqual(result.Data, "126A9B63142533126A9B6314253333"); } }
public void RS232Test() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeterCommunicationCommand(); var parameter = new MeterCommunicationCommandParameter(); parameter.ComPort = CommunicationPort.RS232; parameter.BaudRate = MeterBaudRate; parameter.DataBits = MeterDataBits; parameter.Parity = MeterParity; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, true); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeasureDCVoltageCommand(); var parameter = new MeasureParameter(1, 2.5m, 2.6m); //单位V CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(false, result.Success); //Assert.AreEqual("3050mV", result.Data); MessageBoxHelper.ShowError(result.Message); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeasureACCurrentCommand(); var parameter = new MeasureParameter(Phase.A) { LowerLimit = 20m, //单位mA UpperLimit = 40m }; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual("14.35mA", result.Data); Assert.AreEqual(false, result.Success); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeasureActivePowerCommand(); var parameter = new MeasureParameter(Phase.A) { LowerLimit = -2.2m, UpperLimit = 2.2m }; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(true, result.Success); Assert.AreEqual("1.498W", result.Data); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeasureDCCurrentCommand(); var parameter = new MeasureParameter(1, CurrentRange.Small) { LowerLimit = 2m, //单位 uA UpperLimit = 8m }; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, false); Assert.AreEqual(result.Data, "1.8uA"); Assert.AreEqual(result.Message, "2uA-8uA;1.8uA"); } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new MeasureACVoltageCommand(); var parameter = new MeasureParameter(Phase.A) { LowerLimit = 12m, //单位 V UpperLimit = 50m }; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(false, result.Success); Assert.AreEqual("221.8V", result.Data); Assert.AreEqual("12V-50V;221.8V", result.Message); } }
public void OpenRelayControlTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var relayControlCommand = new RelayControlCommand(); var parameter = new RelayControlCommandParameter(); var context = new CommandContext(); for (int i = 0; i < 22; i++) { parameter.Action = RelayControlAction.OPEN; parameter.SelectedNumber = i.ToString(); CommandResult result = relayControlCommand.Execute(client, parameter, context); System.Threading.Thread.Sleep(500); Assert.AreEqual(result.Success, true); } } }
public void ExcuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var command = new ForceProgramCommand(); var parameter = new ForceProgramCommandParameter() { I2CChipSelect = 0xA4, I2CAddress = 0x4000, SpiAddress = 0x00020000, Length = 0x8000 }; CommandResult result = command.Execute(client, parameter, null); Assert.AreEqual(result.Success, true); //Assert.AreEqual(result.Data, "ERR610"); //Assert.AreEqual(result.Message, string.Format("({0}) {1}","ERR610",Resources.ERR610)); } }
public void ExecuteTest() { using (var client = PcbTesterClient.Create(PortName, BaudRate)) { client.Open(); var measurePulseCommand = new MeasurePulseCommand(); CommandResult result = measurePulseCommand.Execute(client, null, null); int[] array = measurePulseCommand.GetPulseValue(result.Data); Assert.AreEqual(result.Data, "12,13,22,0,12,13,22,0"); Assert.AreEqual(array[0], 12); Assert.AreEqual(array[1], 13); Assert.AreEqual(array[2], 22); Assert.AreEqual(array[3], 0); Assert.AreEqual(array[4], 12); Assert.AreEqual(array[5], 13); Assert.AreEqual(array[6], 22); Assert.AreEqual(array[7], 0); } }
/// <summary> /// 读SPI Flash线程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void readSpiBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { var backgroundWorker = sender as BackgroundWorker; using (var client = PcbTesterClient.Create(Settings.Default.PortName, Settings.Default.BaudRate)) { client.Open(); if (e.Argument as AddressCommandParameter == null) { return; } var addressParameter = e.Argument as AddressCommandParameter; StringBuilder builder = new StringBuilder(); int framesCount = (int)addressParameter.Length * 1024 / bytesPerTransmit; for (int i = 0; i < framesCount; i++) { //如果用户取消了任务就跳出 if (backgroundWorker.CancellationPending) { e.Cancel = true; break; } var command = new ReadSPIFlashCommand(); CommandResult readResult = command.Execute(client, new AddressCommandParameter(addressParameter.Address, (uint)bytesPerTransmit), null); addressParameter.Address += (uint)bytesPerTransmit; //更新下次读的SPI起始地址 builder.AppendFormat("{0:X}", readResult.Data); var data = new AddressCommandParameter(); data.Length = (uint)framesCount; data.Data = readResult.Data; backgroundWorker.ReportProgress(i + 1, data); System.Threading.Thread.Sleep(50); //50ms发一次读命令帧 } e.Result = builder.ToString(); } }
/// <summary> /// 往SPI Flash写入bin文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void writeSpiBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker backgroundWorker = sender as BackgroundWorker; using (var client = PcbTesterClient.Create(Settings.Default.PortName, Settings.Default.BaudRate)) { client.Open(); var addressParameter = new AddressCommandParameter(); if (e.Argument != null) { addressParameter = (AddressCommandParameter)e.Argument; } //1.擦除选中SPI 地址上的内容 var eraseSpiFlashCommand = new EraseSPIFlashCommand(); var eraseResult = eraseSpiFlashCommand.Execute(client, new AddressCommandParameter(addressParameter.Address), null); if (!eraseResult.Success) { e.Result = eraseResult; return; } //2.将文件逐帧写入Flash using (FileStream stream = File.Open(this.fileNameTextBox.Text, FileMode.Open, FileAccess.Read, FileShare.Read)) { BinaryReader binaryReader = new BinaryReader(stream); byte[] readBytes = binaryReader.ReadBytes((int)stream.Length); int framesCount = readBytes.Length / bytesPerTransmit; //算出共多少帧 StringBuilder builder = new StringBuilder(); var writeSPIFlashCommand = new WriteSPIFlashCommand(); for (int i = 0; i < readBytes.Length; i += bytesPerTransmit) { //如果用户取消了任务就跳出 if (backgroundWorker.CancellationPending) { e.Cancel = true; break; } backgroundWorker.ReportProgress(i / bytesPerTransmit + 1, framesCount); builder.Clear(); for (int j = 0; j < bytesPerTransmit; j++) { builder.AppendFormat("{0:X2}", readBytes[i + j]); } var writeResult = writeSPIFlashCommand.Execute(client, new AddressCommandParameter(addressParameter.Address, builder.ToString()), null); addressParameter.Address += (uint)bytesPerTransmit; //更新下次写的SPI起始地址 if (!writeResult.Success) //写入失败 { e.Result = writeResult; return; } } } } }