diff --git a/bridge_gps_data.py b/bridge_gps_data.py
index 0e45ab6..f0518ef 100755
--- a/bridge_gps_data.py
+++ b/bridge_gps_data.py
@@ -160,12 +160,12 @@ def aprs_send(packet):
AIS.close()
logger.info('Packet sent to APRS-IS.')
-def dashboard_loc_write(call, lat, lon, time):
+def dashboard_loc_write(call, lat, lon, time, comment):
#try:
dash_entries = ast.literal_eval(os.popen('cat /tmp/gps_data_user_loc.txt').read())
# except:
# dash_entries = []
- dash_entries.insert(0, {'call': call, 'lat': lat, 'lon': lon, 'time':time})
+ dash_entries.insert(0, {'call': call, 'lat': lat, 'lon': lon, 'time':time, 'comment': comment})
with open("/tmp/gps_data_user_loc.txt", 'w') as user_loc_file:
user_loc_file.write(str(dash_entries[:200]))
user_loc_file.close()
@@ -366,7 +366,7 @@ def process_sms(_rf_src, sms):
try:
aprslib.parse(aprs_loc_packet)
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time(), comment)
#logger.info('Sent manual position to APRS')
except Exception as error_exception:
logger.info('Exception. Not uploaded')
@@ -1550,7 +1550,7 @@ class routerHBP(HBSYSTEM):
float(lat_deg) < 91
float(lon_deg) < 121
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time(), comment)
#logger.info('Sent APRS packet')
except Exception as error_exception:
logger.info('Error. Failed to send packet. Packet may be malformed.')
@@ -1652,7 +1652,7 @@ class routerHBP(HBSYSTEM):
float(loc.lat)
float(loc.lon)
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, str(loc.lat[0:7]) + str(loc.lat_dir), str(loc.lon[0:8]) + str(loc.lon_dir), time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, str(loc.lat[0:7]) + str(loc.lat_dir), str(loc.lon[0:8]) + str(loc.lon_dir), time(), comment)
except Exception as error_exception:
logger.info('Failed to parse packet. Packet may be deformed. Not uploaded.')
logger.info(error_exception)
diff --git a/gps_data.py b/gps_data.py
index cdac809..165c8a2 100644
--- a/gps_data.py
+++ b/gps_data.py
@@ -153,12 +153,12 @@ def aprs_send(packet):
AIS.close()
logger.info('Packet sent to APRS-IS.')
-def dashboard_loc_write(call, lat, lon, time):
+def dashboard_loc_write(call, lat, lon, time, comment):
#try:
dash_entries = ast.literal_eval(os.popen('cat /tmp/gps_data_user_loc.txt').read())
# except:
# dash_entries = []
- dash_entries.insert(0, {'call': call, 'lat': lat, 'lon': lon, 'time':time})
+ dash_entries.insert(0, {'call': call, 'lat': lat, 'lon': lon, 'time':time, 'comment': comment})
with open("/tmp/gps_data_user_loc.txt", 'w') as user_loc_file:
user_loc_file.write(str(dash_entries[:200]))
user_loc_file.close()
@@ -357,7 +357,7 @@ def process_sms(_rf_src, sms):
try:
aprslib.parse(aprs_loc_packet)
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time.time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time.time(), comment)
#logger.info('Sent manual position to APRS')
except Exception as error_exception:
logger.info('Exception. Not uploaded')
@@ -496,7 +496,7 @@ class DATA_SYSTEM(HBSYSTEM):
float(lat_deg) < 91
float(lon_deg) < 121
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time.time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, aprs_lat, aprs_lon, time.time(), comment)
#logger.info('Sent APRS packet')
except Exception as error_exception:
logger.info('Error. Failed to send packet. Packet may be malformed.')
@@ -598,7 +598,7 @@ class DATA_SYSTEM(HBSYSTEM):
float(loc.lat)
float(loc.lon)
aprs_send(aprs_loc_packet)
- dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, str(loc.lat[0:7]) + str(loc.lat_dir), str(loc.lon[0:8]) + str(loc.lon_dir), time.time())
+ dashboard_loc_write(str(get_alias(int_id(_rf_src), subscriber_ids)) + '-' + ssid, str(loc.lat[0:7]) + str(loc.lat_dir), str(loc.lon[0:8]) + str(loc.lon_dir), time.time(), comment)
except Exception as error_exception:
logger.info('Failed to parse packet. Packet may be deformed. Not uploaded.')
logger.info(error_exception)
diff --git a/scripts/dashboard/dashboard.py b/scripts/dashboard/dashboard.py
index 384f654..cfb2db3 100644
--- a/scripts/dashboard/dashboard.py
+++ b/scripts/dashboard/dashboard.py
@@ -202,94 +202,105 @@ def view_map():
map_size = request.args.get('map_size')
user_loc = ast.literal_eval(os.popen('cat /tmp/gps_data_user_loc.txt').read())
last_known_list = []
- try:
- if track_call:
- #folium_map = folium.Map(location=map_center, zoom_start=int(zoom_level))
- #marker_cluster = MarkerCluster().add_to(folium_map)
- for user_coord in user_loc:
- user_lat = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lat'])))
- user_lon = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lon'])))
- if type(user_coord['time']) == str:
- loc_time = str(user_coord['time'])
- if type(user_coord['time']) == int or type(user_coord['time']) == float:
- loc_time = datetime.fromtimestamp(user_coord['time']).strftime(time_format)
- if 'S' in user_coord['lat']:
- user_lat = -user_lat
- if 'W' in user_coord['lon']:
- user_lon = -user_lon
- if user_coord['call'] not in last_known_list and user_coord['call'] == track_call:
- folium_map = folium.Map(location=[user_lat, user_lon], tiles=map_theme, zoom_start=15)
- marker_cluster = MarkerCluster().add_to(folium_map)
- folium.Marker([user_lat, user_lon], popup="""
-
+ #try:
+ if track_call:
+ #folium_map = folium.Map(location=map_center, zoom_start=int(zoom_level))
+ #marker_cluster = MarkerCluster().add_to(folium_map)
+ for user_coord in user_loc:
+ user_lat = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lat'])))
+ user_lon = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lon'])))
+ if type(user_coord['time']) == str:
+ loc_time = str(user_coord['time'])
+ if type(user_coord['time']) == int or type(user_coord['time']) == float:
+ loc_time = datetime.fromtimestamp(user_coord['time']).strftime(time_format)
+ if 'S' in user_coord['lat']:
+ user_lat = -user_lat
+ if 'W' in user_coord['lon']:
+ user_lon = -user_lon
+ loc_comment = ''
+ if 'comment' in user_coord:
+ loc_comment = """
+
'''
+ if map_size == 'full':
+ map_view = folium_map._repr_html_()
- content = '''
-
-
-
-
+
+ Comment:
+
+ """
+ if user_coord['call'] not in last_known_list and user_coord['call'] == track_call:
+ folium_map = folium.Map(location=[user_lat, user_lon], tiles=map_theme, zoom_start=15)
+ marker_cluster = MarkerCluster().add_to(folium_map)
+ folium.Marker([user_lat, user_lon], popup="""
+ """+ str(user_coord['comment']) +"""
+
+
+
+
+ """, icon=folium.Icon(color="red", icon="record"), tooltip=str(user_coord['call'])).add_to(folium_map)
+ last_known_list.append(user_coord['call'])
+ if user_coord['call'] in last_known_list and user_coord['call'] == track_call:
+ folium.CircleMarker([user_lat, user_lon], popup="""
+
+
+ Last Location:
+
+
+ """+ str(user_coord['call']) +"""
+
+
+
+ """+ loc_time +"""
+ """ + loc_comment + """
+
+
+
+ """, tooltip=str(user_coord['call']), fill=True, fill_color="#3186cc", radius=4).add_to(marker_cluster)
+ #return folium_map._repr_html_()
+ if not reload_time:
+ reload_time = 120
+ if not map_size:
+ map_view = '''
+
+ """ + user_coord['call'] + """
+
+
+
+ """ + loc_time + """
+
-
- """, icon=folium.Icon(color="red", icon="record"), tooltip=str(user_coord['call'])).add_to(folium_map)
- last_known_list.append(user_coord['call'])
- if user_coord['call'] in last_known_list and user_coord['call'] == track_call:
- folium.CircleMarker([user_lat, user_lon], popup="""
-
-
- Last Location:
-
-
- """+ str(user_coord['call']) +"""
-
-
- """+ loc_time +"""
+
+ ''' + folium_map._repr_html_() + '''
-
-
- """, tooltip=str(user_coord['call']), fill=True, fill_color="#3186cc", radius=4).add_to(marker_cluster)
- #return folium_map._repr_html_()
- if not reload_time:
- reload_time = 120
- if not map_size:
- map_view = '''
-
- """ + user_coord['call'] + """
-
-
-
- """ + loc_time + """
-
-
-
'''
- if map_size == 'full':
- map_view = folium_map._repr_html_()
+
-
-
-
- ''' + folium_map._repr_html_() + '''
-
""" + dashboard_title + """ - Tracking """ + track_call + """
-Page automatically reloads every """ + str(reload_time) + """ seconds.
-- -
-
- """ + map_view - return render_template('generic.html', title = dashboard_title, logo = logo, content = Markup(content)) - except: - content = """-
""" + content = ''' + + + +""" + dashboard_title + """ - Tracking """ + track_call + """
+Page automatically reloads every """ + str(reload_time) + """ seconds.
++ +
+
+ """ + map_view return render_template('generic.html', title = dashboard_title, logo = logo, content = Markup(content)) + #except Exception as e: + #content = """+ #
""" + #content = str(e) + #return render_template('generic.html', title = dashboard_title, logo = logo, content = Markup(content)) if not track_call: folium_map = folium.Map(location=map_center, tiles=map_theme, zoom_start=int(zoom_level)) @@ -305,6 +316,15 @@ def view_map(): user_lat = -user_lat if 'W' in user_coord['lon']: user_lon = -user_lon + loc_comment = '' + if 'comment' in user_coord: + loc_comment = """ +""" + loc_time + """ |
Track Station |