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 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"); } }
/// <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(); } }