Hi
und grundsätzlich zwei Sachen.
a)
Für einen thread "lua für Anfänger" läuft es hier imho etwas unkoordiniert.
Für den lua Einsteiger könnte es wichtig sein, welche grundsätzlichen Anlaufschwierigkeiten wie anzugehen sind,
welche Einschränkungen zu beachten sind (wie z.B. 8.3 Namenskonventionen) etc..
Ganz besonders wichtig ist es die Methodik anzureissen.
Momentan passiert hier eher "trial & error", oder täuscht mich der Eindruck?
Das Blindflugscript dürfte als Einstieg auch etwas zu mächtig sein, ggf sollte man dafür einen extra thread aufmachen.
Kleine Hinweise, die man selbst bereits ggf als selbstverständlich ansieht, könnten Anfängern eher helfen.
z.B. die Empfehlung des freeware editors "notepad++"
(Scriptfehler werden meistens mit Zeilennummer angegeben, die findet man in ++ z.B. sehr schnell),
oder dass der debug modus (Funktionstaste F6 im Simulator´) ggf detailierter einen Fehler darstellt..
zur Methodik ein Bsp:
was bedeutet getValue("sf") ?
1. Fragestellung:
ist getValue "standard" value, wenn ja >> schaue auf den lua Seiten nach
ist getValue Bestandteil der "taranis" Bibliothek, also eine taranis spezifische Spracherweiterung,
dann schaue im lua reference guide nach.
2. man schaut also im lua ref guide und findet:
getValue(source)
Returns the value of a source.
The list of valid sources is available:
for OpenTX 2.0.x at
http://downloads-20.open-tx.org/firmware/lua_fields.txt
for OpenTX 2.1.x at
http://downloads-21.open-tx.org/firmware/lua_fields.txt
3.
man schaut in den links nach (lädt man sich runter weil benötigt man häufig)
und findet:
..
sc Switch C
sd Switch D
se Switch E
sf Switch F
sg Switch G
Ist also die Abfrage einer Schalterstellung !
b)
das Problem mit der Entfernung:
da fischt man erst mal im Trüben.
Grundsätzlich wird die Entfernung ja über den Homepoint und der aktuellen Posi ermittelt.
jetzt kann die mathlib ein Problem haben (fehlerhafte Kalkulation, eher weniger Wahrscheinlich)
der homepoint verloren gegangen sein (aber wie?)
oder wg aussetzendem satfix ein Problem auftreten (wie kontrollieren ?)
oder kennt jemand andere Alternativen (fehlerhaftes switching zwischen 2d / 3d Entfernung weil sich Anzahl der Sats erhöht oder verringert hat ?)...
Egal wie, da hilft meines Erachtens nach nur ein logging, insbesondere der homepints, der aktuellen Koordinaten und der Dist variable.
Der homepoint wird ja über getValue("pilot-latitude") usw ausgelesen.
das ist für 2.1.7 frisch implementiert
googlen mit "openTx getvalue("pilotlatitude" führt zu
https://github.com/opentx/opentx/issues/2921
evtl noch fehlerbehaftet?
Ich glaube der homepoint kann auch als Wert aus der Struktur "GPS" zurückgeliefert werden,
evtl ist das zuverlässiger.
Gruß
Udo