Initial Commit
This commit is contained in:
commit
933eee69e4
216 changed files with 20588 additions and 0 deletions
63
SCRIPTS/TELEMETRY/gplusl.lua
Executable file
63
SCRIPTS/TELEMETRY/gplusl.lua
Executable file
|
|
@ -0,0 +1,63 @@
|
|||
-- This code was originally written by Miami Mike to calculate the Open Location Code (Google+Code)
|
||||
-- It was altered by ChrisOhara to permanently store the last received GPS coordinates by background function.
|
||||
-- So that it can display the last position as Google+Code even after connection to receiver is lost.
|
||||
-- Works on taranis
|
||||
|
||||
local mid = LCD_W / 2
|
||||
local map = {[0] =
|
||||
"2", "3", "4", "5", "6", "7", "8", "9", "C", "F",
|
||||
"G", "H", "J", "M", "P", "Q", "R", "V", "W", "X"}
|
||||
|
||||
local my_gpsId
|
||||
local latitude, longitude = 0.0, 0.0
|
||||
local lat = 0
|
||||
local lon = 0
|
||||
local pluscode = ""
|
||||
|
||||
|
||||
local function init_func()
|
||||
my_gpsId = getFieldInfo("GPS") and getFieldInfo("GPS").id or nil;
|
||||
end
|
||||
|
||||
|
||||
local function getcode(lat, lon)
|
||||
local int = math.floor(lat)
|
||||
local codepair = map[int]
|
||||
lat = 20 * (lat - int)
|
||||
int = math.floor(lon)
|
||||
codepair = codepair .. map[int]
|
||||
lon = 20 * (lon - int)
|
||||
return lat, lon, codepair
|
||||
end
|
||||
|
||||
|
||||
local function bg_func()
|
||||
if getValue(my_gpsId) ~= 0 then
|
||||
local gps = getValue(my_gpsId)
|
||||
latitude, longitude = gps.lat, gps.lon
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function run_func()
|
||||
lat = (latitude + 90) / 20
|
||||
lon = (longitude + 180) / 20
|
||||
pluscode = ""
|
||||
for i = 1, 4 do
|
||||
lat, lon, codepair = getcode(lat, lon)
|
||||
pluscode = pluscode .. codepair
|
||||
end
|
||||
pluscode = pluscode .. "+"
|
||||
lat, lon, codepair = getcode(lat, lon)
|
||||
pluscode = pluscode .. codepair
|
||||
pluscode = pluscode .. map[4 * math.floor(lat / 5) + math.floor(lon / 4)]
|
||||
lcd.clear()
|
||||
lcd.drawText(mid - 53, 5, "GPS coordinates are")
|
||||
lcd.drawText(mid - 44, 15, latitude.. ", " .. longitude)
|
||||
lcd.drawText(mid- 49, 35, "Google Plus Code is")
|
||||
lcd.drawText(mid - 32, 45, pluscode) -- full 12 characters
|
||||
--- lcd.drawText(mid - 20, 45, string.sub(pluscode, 5, 12)) -- shortened version
|
||||
return 0
|
||||
end
|
||||
|
||||
return {run=run_func, init=init_func, background=bg_func}
|
||||
Loading…
Add table
Add a link
Reference in a new issue