using CCDCount.DLL.Inovance; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Incvance { internal class Program { static void Main(string[] args) { Stopwatch sw = new Stopwatch(); Stopwatch stopwatch2 = Stopwatch.StartNew(); ushort[] sendMessage = null; ushort[] WriteDoneValue = new ushort[8]; WriteDoneValue[0] = 1; List times = new List(); List OutTime = new List(); IncvanceSendMessClass incvanceSendMessClass = new IncvanceSendMessClass(); if (incvanceSendMessClass.OpenEip("192.168.0.10") == 0) { if (incvanceSendMessClass.CreateClass3Connect("192.168.0.88") == 0) { Console.WriteLine("EIP连接成功", 6); } else { Console.WriteLine("EIP连接失败"); } } else { Console.WriteLine("EIP协议栈开启失败"); } Console.WriteLine("输入循环次数"); int num = Convert.ToInt16(Console.ReadLine()); while(num-->0) { sendMessage = new ushort[2]; sw.Restart(); byte[] AllowTransferResult = incvanceSendMessClass.ReadRequest("Application__CCDData__CCDWriteDone", 1); //bool AllowTransfer = (AllowTransferResult[0] & 1) == 1 ? true : false; //Console.WriteLine("sendMessage:{0}{1}", AllowTransferResult[0], AllowTransferResult[1]); //byte[] TransferDoneResult = incvanceSendMessClass.ReadRequest("WriteDone", 1); if (AllowTransferResult == null) { continue; } bool AllowTransfer = (AllowTransferResult[0] & 1) == 1 ? true : false; //bool TransferDone = (TransferDoneResult[0] & 1) == 1 ? true : false; //Console.WriteLine("AllowTransfer:{0},TransferDone:{1}", AllowTransfer, TransferDone); if (!AllowTransfer) { sendMessage[0] |= (ushort)(1 << num % 8); byte[] bytes = new byte[4]; for (int i=0;i> 8)); // 高8位 } incvanceSendMessClass.WriteRequest("Application__CCDData__EIP", 1, bytes); Console.WriteLine("sendMessage:{0}", sendMessage[0]); byte[] bytes1 = new byte[8]; for(int i=0;i 5) { OutTime.Add(sw.ElapsedMilliseconds); } Console.WriteLine($"i:{num},times:{sw.ElapsedMilliseconds}ms"); } Console.WriteLine($"{stopwatch2.ElapsedMilliseconds}ms"); Console.WriteLine($"平均:{times.Average()}ms"); Console.WriteLine($"最大:{times.Max()}ms"); Console.WriteLine($"超时数量:{OutTime.Count}"); Console.WriteLine($"异常百分比:{((double)OutTime.Count / times.Count) * 100}%"); } } }