| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- 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<long> times = new List<long>();
- List<long> OutTime = new List<long>();
- 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<sendMessage.Length;i++)
- {
- bytes[i * 2] = ((byte)(sendMessage[i] & 0xFF)); // 低8位
- bytes[i * 2 + 1] = ((byte)(sendMessage[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<WriteDoneValue.Length;i++)
- {
- bytes1[i] = BitConverter.GetBytes(WriteDoneValue[i])[0];
- }
- incvanceSendMessClass.WriteRequest("Application__CCDData__CCDWriteDone", 1, bytes1);
- Console.WriteLine("WriteDoneValue:{0}", WriteDoneValue);
- sw.Stop();
- Console.WriteLine("WriteTime:{0}", sw.ElapsedMilliseconds);
- }
- sw.Stop();
- times.Add(sw.ElapsedMilliseconds);
- if (sw.ElapsedMilliseconds > 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}%");
- }
- }
- }
|