示例#1
0
        public void MockEcuStreamEcuIdentifier()
        {
            MockEcuStream stream  = MockEcuStream.CreateInstance();
            SsmPacket     send    = SsmPacket.CreateEcuIdentifierRequest();
            SsmPacket     receive = SsmPacket.CreateEcuIdentifierResponse();

            MockEcuStreamTest.SendReceive("EcuId", stream, send, receive);
        }
示例#2
0
        public void SsmPacketEcuIdentifierRequest()
        {
            SsmPacket    packet   = SsmPacket.CreateEcuIdentifierRequest();
            IList <byte> expected = SamplePacketData.EcuInitRequest;

            Utility.CompareArrays("EcuIdentifierRequest", expected, packet.Data);
            Assert.AreEqual(SsmDirection.ToEcu, packet.Direction, "Direction");
            Assert.AreEqual(1, packet.PayloadLength, "Payload size");
            Assert.AreEqual(SsmCommand.EcuInitRequest, packet.Command, "Command");
        }
示例#3
0
        static void ReadMultipleTest(Stream ecuStream, SerialPort port)
        {
            SsmPacket ecuInitRequest = SsmPacket.CreateEcuIdentifierRequest();

            byte[] buffer = ecuInitRequest.Data;
            ecuStream.Write(buffer, 0, buffer.Length);

            Thread.Sleep(100);

            byte[]    receiveBuffer   = new byte[1000];
            int       expectedLength  = 68;
            int       receiveLength   = ecuStream.Read(receiveBuffer, 0, receiveBuffer.Length);
            SsmPacket ecuInitResponse = SsmPacket.ParseResponse(receiveBuffer, 0, receiveLength);

            // TPS and IPW
            UInt32[] addresses = new UInt32[] { 0x29, 0x20 };

            for (int i = 0; i < 1000 && !Console.KeyAvailable; i++)
            {
                SsmPacket readRequest = SsmPacket.CreateMultipleReadRequest(addresses);
                buffer = readRequest.Data;
                ecuStream.Write(buffer, 0, buffer.Length);

                Thread.Sleep(100);
                expectedLength = 21;
                receiveLength  = ecuStream.Read(receiveBuffer, 0, expectedLength);
                if (!Check("ReceiveLength", receiveLength, expectedLength))
                {
                    if (port != null)
                    {
                        port.DiscardInBuffer();
                        port.DiscardOutBuffer();
                    }
                    continue;
                }

                SsmPacket readResponse = SsmPacket.ParseResponse(receiveBuffer, 0, receiveLength);
                if (!Check("CommandID", readResponse.Command, SsmCommand.ReadAddressesResponse))
                {
                    if (port != null)
                    {
                        port.DiscardInBuffer();
                        port.DiscardOutBuffer();
                    }
                    continue;
                }
                Console.WriteLine(readResponse.Values[0] + " " + readResponse.Values[1]);
            }
        }