From 8e44f2ee47a7bc64ca20ffd8aaa10d3b7d6a3400 Mon Sep 17 00:00:00 2001
From: bartjuhhh <bart.knuiman@wur.nl>
Date: Thu, 31 Aug 2023 16:58:58 +0200
Subject: [PATCH] UItwisseling werkt nu goed.

---
 ZeroMQTest/Code/ActiveOV.cs          |  2 ++
 ZeroMQTest/Code/OVParsers/Netex.cs   |  7 -------
 ZeroMQTest/Code/OVParsers/Network.cs | 10 ++++++++--
 ZeroMQTest/Code/Program.cs           | 11 ++++++++---
 4 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/ZeroMQTest/Code/ActiveOV.cs b/ZeroMQTest/Code/ActiveOV.cs
index 190a9bb..ded6193 100644
--- a/ZeroMQTest/Code/ActiveOV.cs
+++ b/ZeroMQTest/Code/ActiveOV.cs
@@ -130,6 +130,8 @@ namespace WanderOV
 
         string VehiclesToCSV()
         {
+            if (vehicles==null||vehicles.Count==0)
+                return null;
             StringBuilder sb = new StringBuilder();
             sb.AppendLine( $"owner,displayLineNumb,privLineNumb,journyNum,vehicleNum,punctuality,rdx,rdy" );
             foreach (var kvp in vehicles)
diff --git a/ZeroMQTest/Code/OVParsers/Netex.cs b/ZeroMQTest/Code/OVParsers/Netex.cs
index 21669d5..5ceb798 100644
--- a/ZeroMQTest/Code/OVParsers/Netex.cs
+++ b/ZeroMQTest/Code/OVParsers/Netex.cs
@@ -2,8 +2,6 @@
 using System.IO.Compression;
 using System.Numerics;
 using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Security.Cryptography;
 using System.Xml;
 using WanderOV;
 
@@ -393,11 +391,6 @@ namespace OVAPI.Code.OVParsers
             // Fixup routes (concat routelinks).
             foreach (var kvp in routes)
             {
-                if (kvp.Key=="RET:Route:10|0396200163_0")
-                {
-                    int jt = 0;
-                }
-
                 var route = kvp.Value;
                 route.points = new List<(Vector2, float, Vector2)>();
                 for (int i = 0;i < route.links.Count;i++)
diff --git a/ZeroMQTest/Code/OVParsers/Network.cs b/ZeroMQTest/Code/OVParsers/Network.cs
index c7a74bb..ee81f5e 100644
--- a/ZeroMQTest/Code/OVParsers/Network.cs
+++ b/ZeroMQTest/Code/OVParsers/Network.cs
@@ -41,11 +41,17 @@ namespace WanderOV
         public string AsMsg()
         {
             string msg = $"{Line.LinePlanningNumber}|{Line.LineDisplayNumber}|{NumStops}|";
+            string prevDest = string.Empty;
             for (int i = 0;i < NumStops;i++)
             {
                 var st = Stop( i );
-                var dest = st.dest != null? st.dest.Name : string.Empty;
-                msg += $"{st.stop.Name}|{st.stop.Point.X}|{st.stop.Point.X}|{dest}|";
+                string dest = string.Empty;
+                if ( st.dest != null && st.dest.Name != prevDest )
+                {
+                    prevDest = st.dest.Name;
+                    dest = prevDest;
+                }
+                msg += $"{st.stop.Name}|{st.stop.Point.X}|{st.stop.Point.Y}|{dest}|";
             }
             msg += $"{Route.NumPoints}|";
             for (int i = 0; i < Route.NumPoints;i++)
diff --git a/ZeroMQTest/Code/Program.cs b/ZeroMQTest/Code/Program.cs
index 42ef65d..82dc99a 100644
--- a/ZeroMQTest/Code/Program.cs
+++ b/ZeroMQTest/Code/Program.cs
@@ -56,14 +56,19 @@ class App
                 {
                     case "vehicles": // Advance sim.
                         activeOV.AdvanceSimulationToNow();
-                        broker.SendMessage( "vehicles", activeOV.GetStateAsCSV(), msg.from );
+                        var vehicles = activeOV.GetStateAsCSV();
+                        if (vehicles != null)
+                        {
+                            broker.SendMessage( "vehicles", vehicles, msg.from );
+                        }
                         break;
 
-                    case "line": // Expects owner and linePlanningNumber.
+                    case "journey": // Expects owner and linePlanningNumber.
                         var journey = network.FindJourney( msg.fields[1], msg.fields[2] );
                         if (journey!=null)
                         {
-                            broker.SendMessage( "line", journey.AsMsg(), msg.from );
+                            // field[1] is owner, field[2] is linePlanningNumber, field[3] is vehicleNumber
+                            broker.SendMessage( "journey", string.Join('|', msg.fields[1], msg.fields[3], journey.AsMsg()), msg.from );
                         }
                         break;
                 }
-- 
GitLab