Esempio n. 1
0
        public void Single_FillWithBytes()
        {
            var buff = new byte[8];

            buff[0] = (byte)((0x0 & 0x0f) << 4 | Data.Length & 0x0f);
            Buffer.BlockCopy(Data, 0, buff, 1, Data.Length);

            var frame = IsoTpFrame.ParsePacket <SingleFrame>(buff);

            Assert.AreEqual(Data.Length, frame.Data.Length, "Рзмер массива Data не соответствует перданным данным");
            Assert.AreEqual(BitConverter.ToString(frame.Data), BitConverter.ToString(Data), "Значение свойства Data не соответствует переданным данным");
        }
Esempio n. 2
0
        public void Consecutive_FillWithBytes()
        {
            _rnd = new Random();
            var index = _rnd.Next(9);
            var data  = new byte[8];

            _rnd.NextBytes(data);
            data[0] = (byte)((0x2 & 0x0f) << 4 | index & 0x0f);


            var consecutiveFrame = IsoTpFrame.ParsePacket <ConsecutiveFrame>(data);

            Assert.AreEqual(BitConverter.ToString(data, 1), BitConverter.ToString(consecutiveFrame.Data), "Ошибка при заполнении данными");
            Assert.AreEqual(consecutiveFrame.Index, index, "Ошибка при вычислени индекса");
        }
Esempio n. 3
0
        public void FlowControl_FillWithBytes()
        {
            var frame = new FlowControlFrame();

            byte[] buff =
            {
                (byte)(((byte)frame.FrameType & 0x0f) << 4 | (byte)Flag & 0x0f), BlockSize,
                SeparationTimeCode
            };

            frame = IsoTpFrame.ParsePacket <FlowControlFrame>(buff);

            Assert.AreEqual((byte)frame.Flag, (byte)Flag, "Значение свйоства Flag не совпадает с переданными данными");
            Assert.AreEqual(frame.SeparationTime, SeparationTimeFromCode(SeparationTimeCode), "Значение свйоства SeparationTime не совпадает с переданными данными");
            Assert.AreEqual(frame.BlockSize, BlockSize, "Значение свйоства BlockSize не совпадает с переданными данными");
        }
Esempio n. 4
0
        public void First_FillWithBytes()
        {
            _random = new Random();
            var packetSize = _random.Next(4096);
            var data       = new byte[8];

            _random.NextBytes(data);
            var firstFrame = new FirstFrame();

            data[0] = (byte)(((byte)firstFrame.FrameType & 0x0f) << 4 | (packetSize & 0xf00) >> 8);
            data[1] = (byte)(packetSize & 0x0ff);


            firstFrame = IsoTpFrame.ParsePacket <FirstFrame>(data);

            Assert.AreEqual(BitConverter.ToString(data, 2), BitConverter.ToString(firstFrame.Data), "Ошибка при заполнении данными");
            Assert.AreEqual(firstFrame.PacketSize, packetSize, "Ошибка при вычислени размера пакета");
        }
 public IsoTpSequenceException(int ExpectedIndex, int ReceivedIndex, IsoTpFrame Frame)
     : this(string.Format("Получено сообщение с индексом {0}, в то время как ожидалось сообщение с индексом {1} (Сообщение, содержащие неожиданный индекс: {2})",
                          ReceivedIndex, ExpectedIndex, Frame),
            ExpectedIndex, ReceivedIndex)
 {
 }
 public IsoTpSequenceException(int ExpectedIndex, int ReceivedIndex, IsoTpFrame Frame)
     : this(string.Format("Получено сообщение с индексом {0}, в то время как ожидалось сообщение с индексом {1} (Сообщение, содержащие неожиданный индекс: {2})",
                          ReceivedIndex, ExpectedIndex, Frame),
            ExpectedIndex, ReceivedIndex)
 {
 }