Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
        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");
     }
 }
Exemplo n.º 7
0
        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());
            }
        }
Exemplo n.º 10
0
        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));
            }
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
 /// <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;
         }
     }
 }
Exemplo n.º 15
0
 /// <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;
         }
     }
 }
Exemplo n.º 16
0
        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);
            }
        }
Exemplo n.º 19
0
        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);
            }
        }
Exemplo n.º 20
0
        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);
            }
        }
Exemplo n.º 21
0
        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");
            }
        }
Exemplo n.º 23
0
        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);
            }
        }
Exemplo n.º 24
0
        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);
                }
            }
        }
Exemplo n.º 25
0
        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);
            }
        }
Exemplo n.º 27
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();
            }
        }
Exemplo n.º 28
0
        /// <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;
                        }
                    }
                }
            }
        }