From 7043248d2a93c7e1a8da8b191f28421657eec2fd Mon Sep 17 00:00:00 2001 From: eric bryant Date: Mon, 7 Dec 2020 15:57:33 -0500 Subject: [PATCH 1/3] updates entries: good routes + bad labels: 4-field --- .../TravelerList/mark_chopped_route_segments.cpp | 6 ++++++ siteupdate/python-teresco/siteupdate.py | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/siteupdate/cplusplus/classes/TravelerList/mark_chopped_route_segments.cpp b/siteupdate/cplusplus/classes/TravelerList/mark_chopped_route_segments.cpp index 4a069d1d..01965457 100644 --- a/siteupdate/cplusplus/classes/TravelerList/mark_chopped_route_segments.cpp +++ b/siteupdate/cplusplus/classes/TravelerList/mark_chopped_route_segments.cpp @@ -60,6 +60,8 @@ if (lit1 == r->alt_label_hash.end() || lit2 == r->alt_label_hash.end()) if (invalid_char) log << " [contains invalid character(s)]"; log << '\n'; splist << orig_line << endlines[l]; + if (routes.insert(r).second && r->last_update && update && (*r->last_update)[0] >= *update) + log << "Route updated " << (*r->last_update)[0] << ": " << r->readable_name() << '\n'; continue; } // are either of the labels used duplicates? @@ -78,12 +80,16 @@ if (r->duplicate_labels.find(fields[3]) != r->duplicate_labels.end()) } if (duplicate) { splist << orig_line << endlines[l]; + if (routes.insert(r).second && r->last_update && update && (*r->last_update)[0] >= *update) + log << "Route updated " << (*r->last_update)[0] << ": " << r->readable_name() << '\n'; continue; } // if both labels reference the same waypoint... if (lit1->second == lit2->second) { log << "Equivalent waypoint labels mark zero distance traveled in line: " << trim_line << '\n'; splist << orig_line << endlines[l]; + if (routes.insert(r).second && r->last_update && update && (*r->last_update)[0] >= *update) + log << "Route updated " << (*r->last_update)[0] << ": " << r->readable_name() << '\n'; } // otherwise both labels are valid; mark in use & proceed else { r->system->lniu_mtx.lock(); diff --git a/siteupdate/python-teresco/siteupdate.py b/siteupdate/python-teresco/siteupdate.py index 40273889..40ee5e0c 100755 --- a/siteupdate/python-teresco/siteupdate.py +++ b/siteupdate/python-teresco/siteupdate.py @@ -1361,6 +1361,10 @@ def __init__(self,travelername,update,el,path="../../../UserData/list_files"): self.log_entries.append(log_entry) if invchar: self.log_entries[-1] += " [contains invalid character(s)]" + if r not in self.routes: + self.routes.add(r) + if r.last_update and self.update and r.last_update[0] >= self.update: + self.log_entries.append("Route updated " + r.last_update[0] + ": " + r.readable_name()) continue # are either of the labels used duplicates? duplicate = False @@ -1377,10 +1381,18 @@ def __init__(self,travelername,update,el,path="../../../UserData/list_files"): self.log_entries.append(log_entry) duplicate = True if duplicate: + if r not in self.routes: + self.routes.add(r) + if r.last_update and self.update and r.last_update[0] >= self.update: + self.log_entries.append("Route updated " + r.last_update[0] + ": " + r.readable_name()) continue # if both labels reference the same waypoint... if index1 == index2: self.log_entries.append("Equivalent waypoint labels mark zero distance traveled in line: " + line) + if r not in self.routes: + self.routes.add(r) + if r.last_update and self.update and r.last_update[0] >= self.update: + self.log_entries.append("Route updated " + r.last_update[0] + ": " + r.readable_name()) # otherwise both labels are valid; mark in use & proceed else: r.system.listnamesinuse.add(lookup) From 3cb72a1c6e7aab914353c76d020725e367f5cfc5 Mon Sep 17 00:00:00 2001 From: eric bryant Date: Mon, 7 Dec 2020 17:03:50 -0500 Subject: [PATCH 2/3] route updates when equivalent labels in 6-field lines --- .../classes/TravelerList/mark_connected_route_segments.cpp | 2 ++ siteupdate/python-teresco/siteupdate.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp b/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp index 3eb842aa..45834a8e 100644 --- a/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp +++ b/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp @@ -111,6 +111,8 @@ if (r1 == r2) if (index1 == index2) { log << "Equivalent waypoint labels mark zero distance traveled in line: " << trim_line << '\n'; splist << orig_line << endlines[l]; + if (routes.insert(r1).second && r1->last_update && update && (*r1->last_update)[0] >= *update) + log << "Route updated " << (*r1->last_update)[0] << ": " << r1->readable_name() << '\n'; continue; } if (index1 <= index2) diff --git a/siteupdate/python-teresco/siteupdate.py b/siteupdate/python-teresco/siteupdate.py index 40ee5e0c..e9064250 100755 --- a/siteupdate/python-teresco/siteupdate.py +++ b/siteupdate/python-teresco/siteupdate.py @@ -1507,6 +1507,10 @@ def __init__(self,travelername,update,el,path="../../../UserData/list_files"): # if both labels reference the same waypoint... if index1 == index2: self.log_entries.append("Equivalent waypoint labels mark zero distance traveled in line: " + line) + if r1 not in self.routes: + self.routes.add(r1) + if r1.last_update and self.update and r1.last_update[0] >= self.update: + self.log_entries.append("Route updated " + r1.last_update[0] + ": " + r1.readable_name()) continue if index1 <= index2: r1.store_traveled_segments(self, index1, index2) From f1a2d26547f1a5f3f47612249227aef74a39c1db Mon Sep 17 00:00:00 2001 From: eric bryant Date: Tue, 15 Dec 2020 01:00:07 -0500 Subject: [PATCH 3/3] route updates when not same ConnectedRoute --- siteupdate/cplusplus/.gitignore | 4 ++-- .../mark_connected_route_segments.cpp | 18 ++++++++++++++ siteupdate/python-teresco/.gitignore | 1 + siteupdate/python-teresco/siteupdate.py | 24 +++++++++++++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/siteupdate/cplusplus/.gitignore b/siteupdate/cplusplus/.gitignore index 4789733f..a3518014 100644 --- a/siteupdate/cplusplus/.gitignore +++ b/siteupdate/cplusplus/.gitignore @@ -2,6 +2,6 @@ graphs logs nmp_merged stats - -siteupdate TravelMapping.sql +listupdates.txt +siteupdate diff --git a/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp b/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp index c07d84db..7af599ef 100644 --- a/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp +++ b/siteupdate/cplusplus/classes/TravelerList/mark_connected_route_segments.cpp @@ -41,6 +41,24 @@ Route* r2 = rit2->second; if (r1->con_route != r2->con_route) { log << lookup1 << " and " << lookup2 << " not in same connected route in line: " << trim_line << '\n'; splist << orig_line << endlines[l]; + // log updates for routes beginning/ending r1's ConnectedRoute + Route* cr = r1->con_route->roots.front(); + if (routes.insert(cr).second && cr->last_update && update && (*cr->last_update)[0] >= *update) + log << "Route updated " << (*cr->last_update)[0] << ": " << cr->readable_name() << '\n'; + if (r1->con_route->roots.size() > 1) + { Route* cr = r1->con_route->roots.back(); + if (routes.insert(cr).second && cr->last_update && update && (*cr->last_update)[0] >= *update) + log << "Route updated " << (*cr->last_update)[0] << ": " << cr->readable_name() << '\n'; + } + // log updates for routes beginning/ending r2's ConnectedRoute + cr = r2->con_route->roots.front(); + if (routes.insert(cr).second && cr->last_update && update && (*cr->last_update)[0] >= *update) + log << "Route updated " << (*cr->last_update)[0] << ": " << cr->readable_name() << '\n'; + if (r2->con_route->roots.size() > 1) + { Route* cr = r2->con_route->roots.back(); + if (routes.insert(cr).second && cr->last_update && update && (*cr->last_update)[0] >= *update) + log << "Route updated " << (*cr->last_update)[0] << ": " << cr->readable_name() << '\n'; + } continue; } if (r1->system->devel()) diff --git a/siteupdate/python-teresco/.gitignore b/siteupdate/python-teresco/.gitignore index ace94555..78d23188 100644 --- a/siteupdate/python-teresco/.gitignore +++ b/siteupdate/python-teresco/.gitignore @@ -3,3 +3,4 @@ logs nmp_merged stats TravelMapping.sql +listupdates.txt diff --git a/siteupdate/python-teresco/siteupdate.py b/siteupdate/python-teresco/siteupdate.py index 017ce357..8fd33e6a 100755 --- a/siteupdate/python-teresco/siteupdate.py +++ b/siteupdate/python-teresco/siteupdate.py @@ -1447,6 +1447,30 @@ def __init__(self,travelername,update,el,path="../../../UserData/list_files"): continue if r1.con_route != r2.con_route: self.log_entries.append(lookup1 + " and " + lookup2 + " not in same connected route in line: " + line) + # log updates for routes beginning/ending r1's ConnectedRoute + cr = r1.con_route.roots[0] + if cr not in self.routes: + self.routes.add(cr) + if cr.last_update and self.update and cr.last_update[0] >= self.update: + self.log_entries.append("Route updated " + cr.last_update[0] + ": " + cr.readable_name()) + if len(r1.con_route.roots) > 1: + cr = r1.con_route.roots[-1] + if cr not in self.routes: + self.routes.add(cr) + if cr.last_update and self.update and cr.last_update[0] >= self.update: + self.log_entries.append("Route updated " + cr.last_update[0] + ": " + cr.readable_name()) + # log updates for routes beginning/ending r2's ConnectedRoute + cr = r2.con_route.roots[0] + if cr not in self.routes: + self.routes.add(cr) + if cr.last_update and self.update and cr.last_update[0] >= self.update: + self.log_entries.append("Route updated " + cr.last_update[0] + ": " + cr.readable_name()) + if len(r2.con_route.roots) > 1: + cr = r2.con_route.roots[-1] + if cr not in self.routes: + self.routes.add(cr) + if cr.last_update and self.update and cr.last_update[0] >= self.update: + self.log_entries.append("Route updated " + cr.last_update[0] + ": " + cr.readable_name()) continue if r1.system.devel(): self.log_entries.append("Ignoring line matching highway in system in development: " + line)