public static void AddPrioritySegment(ushort nodeId, ushort segmentId, PrioritySegment.PriorityType type) { if (nodeId <= 0 || segmentId <= 0) { return; } Log.Message("adding PrioritySegment @ node " + nodeId + ", seg. " + segmentId + ", type " + type); if (PrioritySegments.ContainsKey(segmentId)) { var prioritySegment = PrioritySegments[segmentId]; prioritySegment.Segment = segmentId; Log.Message("Priority segment already exists. Node1=" + prioritySegment.Node1 + " Node2=" + prioritySegment.Node2); if (prioritySegment.Node1 == nodeId || prioritySegment.Node1 == 0) { Log.Message("Updating Node1"); prioritySegment.Node1 = nodeId; PrioritySegments[segmentId].Instance1 = new PrioritySegment(nodeId, segmentId, type); return; } if (prioritySegment.Node2 != 0) { // overwrite Node2 Log.Warning("Overwriting priority segment for node " + nodeId + ", seg. " + segmentId + ", type " + type); prioritySegment.Node2 = nodeId; prioritySegment.Instance2.Nodeid = nodeId; prioritySegment.Instance2.Segmentid = segmentId; prioritySegment.Instance2.Type = type; rebuildPriorityNodes(); } else { // add Node2 Log.Message("Adding as Node2"); prioritySegment.Node2 = nodeId; prioritySegment.Instance2 = new PrioritySegment(nodeId, segmentId, type); } } else { // add Node1 Log.Message("Adding as Node1"); PrioritySegments.Add(segmentId, new TrafficSegment()); PrioritySegments[segmentId].Segment = segmentId; PrioritySegments[segmentId].Node1 = nodeId; PrioritySegments[segmentId].Instance1 = new PrioritySegment(nodeId, segmentId, type); } priorityNodes.Add(nodeId); }
public static void addPrioritySegment(ushort nodeID, int segmentID, PrioritySegment.PriorityType type) { if (prioritySegments.ContainsKey(segmentID)) { var prioritySegment = prioritySegments[segmentID]; prioritySegment.node_2 = nodeID; prioritySegment.instance_2 = new PrioritySegment(nodeID, segmentID, type); } else { prioritySegments.Add(segmentID, new TrafficSegment()); prioritySegments[segmentID].segment = segmentID; prioritySegments[segmentID].node_1 = nodeID; prioritySegments[segmentID].instance_1 = new PrioritySegment(nodeID, segmentID, type); } }