123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Edge.Core.Parser.BinaryParser.Util;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using VaporRecoveryOnlineWatchHubApp;
- using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity;
- using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity.Incoming;
- using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity.Outgoing;
- namespace Wayne_VaporRecoveryDataCollectorBoard_Test
- {
- [TestClass]
- public class ParserTest
- {
- public static bool ValueEquals(IEnumerable<byte> array1, IEnumerable<byte> array2)
- {
- if (array1 == null && array2 == null)
- {
- return true;
- }
- if ((array1 == null) || (array2 == null))
- {
- return false;
- }
- if (array1.Count() != array2.Count())
- {
- return false;
- }
- if (array1.Equals(array2))
- {
- return true;
- }
- else
- {
- for (int Index = 0; Index < array1.Count(); Index++)
- {
- if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index)))
- {
- return false;
- }
- }
- }
- return true;
- }
- [TestMethod]
- public void READ_HISTORY_NUM_Request_TestMethod1()
- {
- READ_HISTORY_NUM_Request request = new READ_HISTORY_NUM_Request(1) { Address = 1 };
- Wayne_VaporRecoveryDataCollectorBoard.Parser parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var expected = new byte[] { 0x68, 01, 07, 01, 01, 0x0A, 0x16 };
- var actual = parser.Serialize(request);
- Assert.AreEqual(true, ValueEquals(expected, actual));
- }
- [TestMethod]
- public void SET_ADDRESS_Request_TestMethod1()
- {
- SET_ADDRESS_Request request = new SET_ADDRESS_Request(17, 5);
- Wayne_VaporRecoveryDataCollectorBoard.Parser parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var expected = new byte[] { 0x68, 00, 0xA1, 05, 0x11, 00, 00, 00, 0x05, 0xBC, 0x16 };
- var actual = parser.Serialize(request);
- Assert.AreEqual(true, ValueEquals(expected, actual), "0x" + actual.GetHexString());
- }
- [TestMethod]
- public void READ_ONE_HISTORY_DATA_Response_TestMethod1()
- {
- var raw = new byte[] {
- // spliter
- 0x68,
- // Address
- 0x01,
- // CommandCode
- 0x03,
- // DataFieldLength
- 0x1B,
- // Board nozzle number
- 0x03,
- //FuellingStartTime
- 0x18, 0x04, 0x25, 0x18, 0x46, 0x49, 0x03,
- //LiquidVolume
- 0x00, 0x01, 0x9E, 0xA6,
- //AirVolume
- 0x00, 0x00, 0x00, 0x08,
- //FuellingEndTime
- 0x18, 0x04, 0x25, 0x18, 0x47, 0x38, 0x03,
- 0x00, 0x04, 0xC7, 0x70, 0x6E, 0x16 };
- var parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var actual = parser.Deserialize(raw) as READ_ONE_HISTORY_DATA_Response;
- Assert.AreEqual(true, actual.NozzleNumber == 3);
- var debugStr = actual.ToLogString();
- }
- [TestMethod]
- public void READ_ONE_HISTORY_DATA_Response_TestMethod2()
- {
- var raw = new byte[] { 0x68, 0x01, 0x03, 0x1B, 0x02, 0x18, 0x04, 0x25, 0x18, 0x46, 0x49, 0x03, 0x00, 0x01, 0x9E, 0xA6, 0x00, 0x00, 0x00, 0x08, 0x18, 0x04, 0x25, 0x18, 0x47, 0x38, 0x03, 0x00, 0x04, 0xC7, 0x70, 0x6E, 0x16 };
- var parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var actual = parser.Deserialize(raw) as READ_ONE_HISTORY_DATA_Response;
- Assert.AreEqual(true, actual.NozzleNumber == 2);
- var debugStr = actual.ToLogString();
- }
- [TestMethod]
- public void READ_PARA_Response_TestMethod1()
- {
- var raw = new byte[] { 0x68, 0x01, 0x06, 0x23, 0x01, 0x05, 0x01, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x04, 0x4C, 0x00, 0x00, 0x4E, 0x20, 0x00, 0x00, 0x4E, 0x20, 0xDE, 0x16 };
- Wayne_VaporRecoveryDataCollectorBoard.Parser parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var response = parser.Deserialize(raw) as READ_PARA_Response;
- var debugStr = response.ToLogString();
- }
- [TestMethod]
- public void READ_WORKING_AND_TYPE_Response_TestMethod1()
- {
- var raw = new byte[] { 0x68, 0x01, 0x01, 0x0E, 0x11, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x16 };
- Wayne_VaporRecoveryDataCollectorBoard.Parser parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var response = parser.Deserialize(raw) as READ_WORKING_AND_TYPE_Response;
- var debugStr = response.ToLogString();
- }
- [TestMethod]
- public void READ_WORKING_AND_TYPE_Response_TestMethod2()
- {
- var raw = new byte[] { 0x68, 0x01, 0x01, 0x05, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0B, 0x16 };
- var parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var actual = parser.Deserialize(raw) as READ_WORKING_AND_TYPE_Response;
- var debugStr = actual.ToLogString();
- }
- [TestMethod]
- public void READ_WORKING_AND_TYPE_Response_TestMethod3()
- {
- //包起始标志(1B)+采集器地址Addr(1B)+命令代码(1B)+数据域长度(1B)+数据域(由数据域长度指定)+校验CS(1B)+包结束标志(1B)
- var raw = new byte[] { 0x68, 0x01, 0x01, 0x05,
- 0xFE, 0x0B, 0x68, 0x83, 0x06,
- 0x09, 0x16 };
- var parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var actual = parser.Deserialize(raw) as READ_WORKING_AND_TYPE_Response;
- var debugStr = actual.ToLogString();
- var liquidAndAirFlowData =
- actual.NozzleLiquidAndAirFlowData.FirstOrDefault(n => n.Item1 == 2);
- var vaporVolumeWithDecimal = Util.RoundToDouble(liquidAndAirFlowData.Item3 / 1000);
- var liquidVolumeWithDecimal = Util.RoundToDouble(liquidAndAirFlowData.Item2 / 1000);
- var vaporAndLiquidRatio = Util.RoundToDouble(vaporVolumeWithDecimal / liquidVolumeWithDecimal);
- }
- [TestMethod]
- public void READ_WORKING_AND_TYPE_Response_TestMethod4()
- {
- //包起始标志(1B)+采集器地址Addr(1B)+命令代码(1B)+数据域长度(1B)+数据域(由数据域长度指定)+校验CS(1B)+包结束标志(1B)
- var raw = "68 06 00 00 16 00".ToBytes();
- var parser = new Wayne_VaporRecoveryDataCollectorBoard.Parser();
- var actual = parser.Deserialize(raw) as COLLECTOR_BUSY_Response;
- var debugStr = actual.ToLogString();
- Assert.AreEqual(true, actual != null);
- }
- }
- }
|