Merge pull request #919 from crahan/gps_config
Add configuration options to gps.py (position, vertical line spacing)
This commit is contained in:
commit
712d0142a1
@ -10,10 +10,13 @@ from pwnagotchi.ui.view import BLACK
|
|||||||
|
|
||||||
class GPS(plugins.Plugin):
|
class GPS(plugins.Plugin):
|
||||||
__author__ = "evilsocket@gmail.com"
|
__author__ = "evilsocket@gmail.com"
|
||||||
__version__ = "1.0.0"
|
__version__ = "1.0.1"
|
||||||
__license__ = "GPL3"
|
__license__ = "GPL3"
|
||||||
__description__ = "Save GPS coordinates whenever an handshake is captured."
|
__description__ = "Save GPS coordinates whenever an handshake is captured."
|
||||||
|
|
||||||
|
LINE_SPACING = 10
|
||||||
|
LABEL_SPACING = 0
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.running = False
|
self.running = False
|
||||||
self.coordinates = None
|
self.coordinates = None
|
||||||
@ -55,39 +58,52 @@ class GPS(plugins.Plugin):
|
|||||||
logging.info("not saving GPS. Couldn't find location.")
|
logging.info("not saving GPS. Couldn't find location.")
|
||||||
|
|
||||||
def on_ui_setup(self, ui):
|
def on_ui_setup(self, ui):
|
||||||
# add coordinates for other displays
|
try:
|
||||||
if ui.is_waveshare_v2():
|
# Configure line_spacing
|
||||||
lat_pos = (127, 75)
|
line_spacing = int(self.options['linespacing'])
|
||||||
lon_pos = (122, 84)
|
except Exception:
|
||||||
alt_pos = (127, 94)
|
# Set default value
|
||||||
elif ui.is_waveshare_v1():
|
line_spacing = self.LINE_SPACING
|
||||||
lat_pos = (130, 70)
|
|
||||||
lon_pos = (125, 80)
|
|
||||||
alt_pos = (130, 90)
|
|
||||||
elif ui.is_inky():
|
|
||||||
lat_pos = (127, 60)
|
|
||||||
lon_pos = (127, 70)
|
|
||||||
alt_pos = (127, 80)
|
|
||||||
elif ui.is_waveshare144lcd():
|
|
||||||
# guessed values, add tested ones if you can
|
|
||||||
lat_pos = (67, 73)
|
|
||||||
lon_pos = (62, 83)
|
|
||||||
alt_pos = (67, 93)
|
|
||||||
elif ui.is_dfrobot_v2():
|
|
||||||
lat_pos = (127, 75)
|
|
||||||
lon_pos = (122, 84)
|
|
||||||
alt_pos = (127, 94)
|
|
||||||
elif ui.is_waveshare27inch():
|
|
||||||
lat_pos = (6,120)
|
|
||||||
lon_pos = (1,135)
|
|
||||||
alt_pos = (6,150)
|
|
||||||
else:
|
|
||||||
# guessed values, add tested ones if you can
|
|
||||||
lat_pos = (127, 51)
|
|
||||||
lon_pos = (127, 56)
|
|
||||||
alt_pos = (102, 71)
|
|
||||||
|
|
||||||
label_spacing = 0
|
try:
|
||||||
|
# Configure position
|
||||||
|
pos = self.options['position'].split(',')
|
||||||
|
pos = [int(x.strip()) for x in pos]
|
||||||
|
lat_pos = (pos[0] + 5, pos[1])
|
||||||
|
lon_pos = (pos[0], pos[1] + line_spacing)
|
||||||
|
alt_pos = (pos[0] + 5, pos[1] + (2 * line_spacing))
|
||||||
|
except Exception:
|
||||||
|
# Set default value based on display type
|
||||||
|
if ui.is_waveshare_v2():
|
||||||
|
lat_pos = (127, 74)
|
||||||
|
lon_pos = (122, 84)
|
||||||
|
alt_pos = (127, 94)
|
||||||
|
elif ui.is_waveshare_v1():
|
||||||
|
lat_pos = (130, 70)
|
||||||
|
lon_pos = (125, 80)
|
||||||
|
alt_pos = (130, 90)
|
||||||
|
elif ui.is_inky():
|
||||||
|
lat_pos = (127, 60)
|
||||||
|
lon_pos = (122, 70)
|
||||||
|
alt_pos = (127, 80)
|
||||||
|
elif ui.is_waveshare144lcd():
|
||||||
|
# guessed values, add tested ones if you can
|
||||||
|
lat_pos = (67, 73)
|
||||||
|
lon_pos = (62, 83)
|
||||||
|
alt_pos = (67, 93)
|
||||||
|
elif ui.is_dfrobot_v2():
|
||||||
|
lat_pos = (127, 74)
|
||||||
|
lon_pos = (122, 84)
|
||||||
|
alt_pos = (127, 94)
|
||||||
|
elif ui.is_waveshare27inch():
|
||||||
|
lat_pos = (6, 120)
|
||||||
|
lon_pos = (1, 135)
|
||||||
|
alt_pos = (6, 150)
|
||||||
|
else:
|
||||||
|
# guessed values, add tested ones if you can
|
||||||
|
lat_pos = (127, 51)
|
||||||
|
lon_pos = (122, 61)
|
||||||
|
alt_pos = (127, 71)
|
||||||
|
|
||||||
ui.add_element(
|
ui.add_element(
|
||||||
"latitude",
|
"latitude",
|
||||||
@ -98,7 +114,7 @@ class GPS(plugins.Plugin):
|
|||||||
position=lat_pos,
|
position=lat_pos,
|
||||||
label_font=fonts.Small,
|
label_font=fonts.Small,
|
||||||
text_font=fonts.Small,
|
text_font=fonts.Small,
|
||||||
label_spacing=label_spacing,
|
label_spacing=self.LABEL_SPACING,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
ui.add_element(
|
ui.add_element(
|
||||||
@ -110,7 +126,7 @@ class GPS(plugins.Plugin):
|
|||||||
position=lon_pos,
|
position=lon_pos,
|
||||||
label_font=fonts.Small,
|
label_font=fonts.Small,
|
||||||
text_font=fonts.Small,
|
text_font=fonts.Small,
|
||||||
label_spacing=label_spacing,
|
label_spacing=self.LABEL_SPACING,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
ui.add_element(
|
ui.add_element(
|
||||||
@ -122,11 +138,10 @@ class GPS(plugins.Plugin):
|
|||||||
position=alt_pos,
|
position=alt_pos,
|
||||||
label_font=fonts.Small,
|
label_font=fonts.Small,
|
||||||
text_font=fonts.Small,
|
text_font=fonts.Small,
|
||||||
label_spacing=label_spacing,
|
label_spacing=self.LABEL_SPACING,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def on_unload(self, ui):
|
def on_unload(self, ui):
|
||||||
with ui._lock:
|
with ui._lock:
|
||||||
ui.remove_element('latitude')
|
ui.remove_element('latitude')
|
||||||
@ -141,5 +156,5 @@ class GPS(plugins.Plugin):
|
|||||||
# last char is sometimes not completely drawn ¯\_(ツ)_/¯
|
# last char is sometimes not completely drawn ¯\_(ツ)_/¯
|
||||||
# using an ending-whitespace as workaround on each line
|
# using an ending-whitespace as workaround on each line
|
||||||
ui.set("latitude", f"{self.coordinates['Latitude']:.4f} ")
|
ui.set("latitude", f"{self.coordinates['Latitude']:.4f} ")
|
||||||
ui.set("longitude", f" {self.coordinates['Longitude']:.4f} ")
|
ui.set("longitude", f"{self.coordinates['Longitude']:.4f} ")
|
||||||
ui.set("altitude", f" {self.coordinates['Altitude']:.1f}m ")
|
ui.set("altitude", f"{self.coordinates['Altitude']:.1f}m ")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user