[Lua] GPS-Werte in Skripten verwenden

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

GPS-Werte in Skripten verwenden

Beitragvon rudi » 09.12.2012, 00:08

Hallo Skripter,

die Kameras mit GPS-Modul stellen die Positionsdaten über ein Property zur Verfügung. Diese Daten sind nicht so einfach in LUA zu verwenden. Um das zu vereinfachen, stelle ich hier eine Bibliothek gpsLib zur Verfügung.
Derzeit werden die SX230, S100, D20 und SX260 unterstützt. Die Bibliothek gibt nur bei diesen Kameras die eingebetteten Funktionen zurück. Da LUA nur mit Integerwerten arbeitet, muss ein Multiplikator für die Erweiterung der geografischen Werte übergeben werden. Erst wenn STATUS = TRUE ist sind die Daten gültig.
Die gpsLib sollte unter A/CHDK/LUALIB/ abgelegt werden.

Beispiel:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
function printf(...)
    print(string.format(...))
end

function divformat(val, div)
    return val / div, math.abs(val % div)
end

set_console_layout(0,0,25,14)

gps = require("gpsLib")
scale = 10  -- Erweiterung für geografische Werte

if gps then
    tab = gps.data(scale)
    printf("GPS PROPERTY Library V%s", gps.version)
    printf("Status    : %s", tostring(tab.status))
    printf("Breite    : %d.%d°", divformat(tab.lat, scale))
    printf("Länge     : %d.%d°", divformat(tab.lon, scale))
    printf("Höhe      : %d.%dm", divformat(tab.ele, scale))
    printf("Datum     : %2d.%02d.%04d", tab.date[1], tab.date[2], tab.date[3])
    printf("Zeit      : %2d:%02d:%02d", tab.time[1], tab.time[2], tab.time[3])
    printf("Zeitzone  : %d", tab.tz)
    printf("Sommerzeit: %s", tostring(tab.isdst))
    printf("Satelliten: %d", tab.sats)
    printf("Dimension : %sD", tostring(tab.fix))
else
    print("kein GPS")
end
Erstellt in 0.009 Sekunden, mit GeSHi 1.0.8.9

Für eine sinnvolle Benutzung muss unter CHDK-Einstellungen|GPS-Einstellungen der Eintrag "GPS-Funktionen" aktiviert werden. Weiterhin ist nach dem Einschalten der Kamera ein kurzes Umschalten in den Aufnahmemodus erforderlich um den GPS-Empfänger zu aktivieren.

Die neuste Version kann hier heruntergeladen werden.

Gruß rudi
Zuletzt geändert von rudi am 07.01.2013, 12:13, insgesamt 4-mal geändert.
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: GPS-Werte in Skripten verwenden

Beitragvon rudi » 09.12.2012, 23:40

Hallo zusammen,

ich habe versehendlich die geografische Länge und Breite vertauscht. In gpsLib Version 0.2 sollte es nun stimmen (siehe erster Beitrag).

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: GPS-Werte in Skripten verwenden

Beitragvon rudi » 30.12.2012, 18:37

Hallo zusammen,

im Zusammenhang mit dem Skript von msl zur Berechnung von "Sonnenauf- & Untergang, Blaue Stunde" wurde die gpsLib etwas abgeändert und erweitert (Version 0.3)

Änderungen:
Bezeichner der GPS-Tabelle geändert
  • geo. Breite ((Latitude): "lat"
  • geo. Länge (Longitude): "lon"
  • geo. Höhe (Elevation): "ele"
Neuerungen:
  • Ermittlung der im Kameramenü eingestellten Zeitzone und Sommerzeit als "tz" und "istdst"
    Danke msl! weitere Infos hier
  • Anzahl der für die Positionsbestimmung benutzten Satelliten in "sats"

Gruß rudi
Zuletzt geändert von rudi am 07.01.2013, 12:12, insgesamt 1-mal geändert.
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: GPS-Werte in Skripten verwenden

Beitragvon rudi » 03.01.2013, 12:52

Hallo,

ab Version 0.4 wird bei require("gpsLib") die Bibliothek oder false zurückgegeben. Damit reicht auch weiterhin ein einfaches if für die Verfügbarkeitsabfrage.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
gps = require("gpsLib")
 
if gps then ...
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9

Danke msl für den Fehlerbericht.

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: GPS-Werte in Skripten verwenden

Beitragvon rudi » 07.01.2013, 12:11

Hallo zusammen,

ab Version 0.5 sind die Werte des Datums auf "number" festgelegt.

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: GPS-Werte in Skripten verwenden

Beitragvon rudi » 08.11.2013, 17:50

Hallo,

in Version 0.6 sind die Kameras D20 und S100 dazugekommen. Der neue Tabellenwert tab.fix gibt die Anzahl der Dimensionen [0, 2 oder 3] an. Die Auswertung ist an die Anzahl der empfangenen Satelliten gekoppelt und mit der sx260 getestet. Dort wird die GPS-Höhe (3D) erst ab 6 Satelliten angezeigt, obwohl theoretisch 4 reichen.

Download-Link und Versionsinformationen sind im ersten Beitrag hinterlegt.

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste