private static void StartAnalysis(IEnumerable <string> lines) { var vdm = new Vdm(); var count = 0; var msgTypes = new int[128]; var userIds = new List <long> (); foreach (var line in lines) { //Console.Write("."); var result = vdm.Add(line); switch (result) { case VdmStatus.Complete: //counts[vdm.MsgId]++; count++; try { var msg = vdm.ToMessage(); msgTypes[msg.MsgId]++; if (!userIds.Contains(msg.UserId)) { userIds.Add(msg.UserId); } } catch (Exception ex) { Console.Error.WriteLine(ex.ToString()); } break; case VdmStatus.Incomplete: //Console.WriteLine (" {0} Num:{1} Sequence:{2}", vdm.Total, vdm.Num, vdm.Sequence); break; case VdmStatus.ChecksumFailed: case VdmStatus.NotAisMessage: case VdmStatus.NmeaNextError: case VdmStatus.OutofSequence: default: Console.WriteLine(line); Console.Error.WriteLine(result); break; } if (count % 1000 == 0) { Console.Write("count:{0}", count); for (int i = 0; i < 25; i++) { if (msgTypes[i] > 0) { Console.Write("\tMsg {0}:{1}", i, msgTypes[i]); } } Console.WriteLine(); } } }
public static void StartParse(int length) { var counts = new int[30]; var count = 0; var vdm = new Vdm(); using (var reader = CreateReader()) { for (int i = 0; i < length; i++) { Console.Write("."); var line = reader.ReadLine(); var result = vdm.Add(line); switch (result) { case VdmStatus.Complete: counts[vdm.MsgId]++; count++; try { var msg = vdm.ToMessage(); FormatMsg(vdm, msg); } catch (Exception ex) { Console.Error.WriteLine(ex.ToString()); } vdm = new Vdm(); break; case VdmStatus.Incomplete: Console.WriteLine(" {0} Num:{1} Sequence:{2}", vdm.Total, vdm.Num, vdm.Sequence); break; case VdmStatus.ChecksumFailed: case VdmStatus.NotAisMessage: case VdmStatus.NmeaNextError: case VdmStatus.OutofSequence: default: Console.WriteLine(line); Console.Error.WriteLine(result); break; } if (count > 100) { Console.WriteLine("Message Summary {0}", FormatCounts(counts)); count = 0; counts = new int[30]; } } } }
public static void StartParse(IEnumerable <string> lines) { var counts = new int[30]; var count = 0; var vdm = new Vdm(); foreach (var line in lines) { //Console.Write("."); var result = vdm.Add(line); switch (result) { case VdmStatus.Complete: //counts[vdm.MsgId]++; count++; try { var msg = vdm.ToMessage(); FormatMsg(msg); } catch (Exception ex) { Console.Error.WriteLine(ex.ToString()); } //vdm = new Vdm(); break; case VdmStatus.Incomplete: Console.WriteLine(" {0} Num:{1} Sequence:{2}", vdm.Total, vdm.Num, vdm.Sequence); break; case VdmStatus.ChecksumFailed: case VdmStatus.NotAisMessage: case VdmStatus.NmeaNextError: case VdmStatus.OutofSequence: default: Console.WriteLine(line); Console.Error.WriteLine(result); break; } if (count > 100) { Console.WriteLine("Message Summary {0}", FormatCounts(counts)); count = 0; counts = new int[30]; } } }
public void TestParse() { var vdm = new Vdm(); var msgs = new List <Messages>(); using (var reader = CreateReader()) { for (int i = 0; i < 1000; i++) { var line = reader.ReadLine(); var result = vdm.Add(line); if (result == 0) { // vdm.MsgId var msg = vdm.ToMessage(); Assert.NotNull(msg); msgs.Add(msg); vdm = new Vdm(); } } } Assert.True(msgs.Count > 100); }