public void TryParseLine_CanDumpFormat_Twice() { // Arrange const string line = "(1530450358.333668) can0 106#04A00480BC0000EB"; // Act var parsedLine1 = new CanBusLogLineParser().TryParseLine(line); var parsedLine2 = new CanBusLogLineParser().TryParseLine(line); // Assert parsedLine2.Should().BeEquivalentTo(parsedLine1); }
public void TryParseLine() { // Arrange const string line = "(1530450358.333668) can0 106#04A00480BC0000EB"; // Act var parsedLine = new CanBusLogLineParser().TryParseLine(line); // Assert parsedLine.UnixTimestamp.Should().Be(1530450358.333668m); parsedLine.CanInterface.Should().Be("can0"); parsedLine.MessageTypeId.Should().Be(0x106); parsedLine.Payload.Should().BeEquivalentTo(new [] { 0x04, 0xA0, 0x04, 0x80, 0xBC, 0x00, 0x00, 0xEB }); }
public void TryParseLine_ScanMyTeslaFormat() { // Arrange const string line = "10222330000A8FE2008"; // Act var parsedLine = new CanBusLogLineParser().TryParseLine(line); // Assert parsedLine.UnixTimestamp.Should().Be(0); parsedLine.CanInterface.Should().BeNull(); parsedLine.MessageTypeId.Should().Be(0x102); parsedLine.Payload.Should().BeEquivalentTo(new [] { 0x22, 0x33, 0x00, 0x00, 0xA8, 0xFE, 0x20, 0x08 }); }
public void TryParseLine_AlternatingFormats() { // Arrange const string line1 = "BUFFER FULL"; const string line2 = "10222330000A8FE2008"; const string line3 = "(1530450358.333668) can0 106#04A00480BC0000EB"; // Act var parsedLine1 = new CanBusLogLineParser().TryParseLine(line1); var parsedLine2 = new CanBusLogLineParser().TryParseLine(line2); var parsedLine3 = new CanBusLogLineParser().TryParseLine(line3); // Assert parsedLine1.Should().BeNull(); parsedLine2.Should().NotBeNull(); parsedLine3.Should().NotBeNull(); }
public static void ReadFileToJson(string fileName) { var parser = new CanBusLogLineParser(); var messageFactory = new CanBusMessageFactory(); var jsonSerializerSettings = new JsonSerializerSettings { Converters = { new FormatValueTypesConverter() }, Formatting = Formatting.None }; using (var reader = File.OpenText(fileName)) { string line; while ((line = reader.ReadLine()) != null) { if (string.IsNullOrEmpty(line)) { continue; } var parsedLine = parser.TryParseLine(line); if (parsedLine == null) { Console.Error.WriteLine("Could not parse line: " + line); continue; } var message = messageFactory.Create(parsedLine.MessageTypeId, parsedLine.Payload); if (message is UnknownMessage) { continue; } var json = JsonConvert.SerializeObject(message, jsonSerializerSettings); Console.WriteLine(json); } } }