public void MockEcuStreamEcuIdentifier() { MockEcuStream stream = MockEcuStream.CreateInstance(); SsmPacket send = SsmPacket.CreateEcuIdentifierRequest(); SsmPacket receive = SsmPacket.CreateEcuIdentifierResponse(); MockEcuStreamTest.SendReceive("EcuId", stream, send, receive); }
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"); }
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]); } }