Sie sind nicht angemeldet.

1

Mittwoch, 22. Dezember 2010, 11:25

Externe Befehle ohne Eintrag in FSUIPC ausführen?

Hallo,

bin momentan an einem Homecockpitprojekt, wie einige evtl. bereits mitbekommen haben.

Nun bin ich auf ein "kleines" Problem gestoßen. Es gibt Befehle zu realisieren, sodass ich über einen externen Befehl, beispielsweise von Tastatur oder Kippschalter, einen Schalter im Flugzeugsystem bedienen kann.

Nun wollte ich diese Sachen in der FSUIPC programmieren (registriert). Wenn ich jedoch jetzt Schalter XY programmieren möchte, habe die entsprechende Taste auf der Tastatur schon in FSUIPC gewählt, und möchte jetzt den gewünschten Erfolg in der FSUIPC auswählen (z. B. Inverter in King Air), kann ich diesen Eintrag "Inverter" nicht finden. Es muss also irgendwie extern programmiert werden.

Jetzt meine Frage, wie kriege ich es hin:

- Bei Drücken der Taste F den Inverter in der Aeroworx King Air 200 bedient zu bekommen? In diesem Falle spreche ich von reinen Toggle-Befehlen ;)

PS: Inverter sowie Taste F sind nur Beispiele, es gehört noch einiges mehr dazu! ;)

Ich habe da irgendwas von XML-Programmierung, aber auch von FSUIPC-Offsets gelesen?!

Wäre über Hilfe von Euch natürlich sehr dankbar! :)

Frohe Feiertage euch allen, viele Grüße
Marius

2

Mittwoch, 22. Dezember 2010, 11:38

Hi Marius,


Du wagst Dich da in ein großes, weites Feld der Macht von FSUIPC rein :D

Was Du suchst sind evtl Maus-Macros order besser noch LUA Scripts.


Alles über Macros findest Du im PDF "FSUIPC for advanced Users" ab Seite 33, das in einem "Modules" Unterordner zu finden ist.


weiterhin:
Tutorial: how to get LUA Vars or commands out of FS


Letztlich bleibt Dir nur der schwere und tränenreiche Gang des Lernens. Und zwar wie bekomme ich LUA Variablen, wie benutze ich LUA Variablen, was kann ich damit alles machen und wie (einfachster Teil des Ganzen) belege ich meinen Joystick damit.
Letztlich aber, gibts es dann keinerlei Grenzen des Möglichen mehr.

Sieh Dich mal in den User Contributions um, da haben etliche User schon einiges an LUA Scripts gesammelt.
Wenn Du die mal studierst und anwendest, dann bekommst Du vielleicht eine gute Idee, was und wie man damit alles machen kann...


Viel Spaß!
Günter

endlich Berliner! :lol:
i7 930@4.2Ghz WaKü, GTX 580 3GB, 12GbRAM1600, Win10 64 Prof


3

Mittwoch, 22. Dezember 2010, 13:14

Hi Günter,
danke für deine (hilfreiche) Antwort! ;)

Sobald es geklappt hat, werde ich mich nochmal melden, wenns Probleme gibt, weiß ich, wo ich im absolutesten Notfall ja nachfragen kann :)
Ich lese mir erstmal das FSUIPC Manual for advanced users durch ;)

Viele Grüße
Marius

4

Mittwoch, 22. Dezember 2010, 13:20

Gerne!

Ich würde Dir sicherlich gerne Schritt für Schritt alles erklären.
Aber die LUA Variablen sind von Addon zu Addon (auch meist innerhalb eines Herstellers) gurndverschieden.
Also immer wieder von vorne beginnen... deshalb gibt es auch keine universelle Anleitung, die für alles gilt.


Versuche also zunächst mal, die ein oder andere LUA Variable für Dein Addon herauszufinden und teste damit.
Wenns klappt, ist das schon die halbe Miete.
Und wie gesagt: letztlich steht alles ausführlichst in den FSUIPC Manuals!
Günter

endlich Berliner! :lol:
i7 930@4.2Ghz WaKü, GTX 580 3GB, 12GbRAM1600, Win10 64 Prof


5

Donnerstag, 23. Dezember 2010, 11:32

Hi,
es hat geklappt, nicht zuletzt dank deiner tollen Anleitung. :)

Erst hab ich gehofft, dass die Schalter in der Beech vielleicht so programmiert sind, dass ich sie über (beispielsweise) Einträge in der FSUIPC und passende Parameter einstellen kann, dem war aber nicht so. Also hab ich mich entschlossen, gleich alle Schalter mit LUA zu programmieren. Und es klappt :) Ich muss zwar über die einzelnen Zahlen noch rausfinden, welche Position die einzelnen Schalter etc. haben, und das zuordnen.

Oder kann man über LUA auch Toggle-Befehle ausführen?

Danke nochmals, und viele Grüße
Marius

6

Donnerstag, 23. Dezember 2010, 11:37

Du kannst im LUA-Script zuerst den Zustand eines Schalters abfragen und ihn auf den anderen ändern. Das Script dann einfach mit dem entsprechenden Event aufrufen.
Man kann sich somit aus fast allem ein Toggle bauen, auch durchschalten von Dingen kann man so realisieren.

:bier:
| Intel i7 5930K @4.25 Ghz | 32GB DDR4-3400 | Asus STRIX X99 Gaming | STRIX GTX 1080 SLI OC'd |
| Oculus Rift CV1 | TrackIR 5 | Slaw USAF Pedals | Thrustmaster HOTAS Warthog | Obutto r3volution |

Those who say it cannot be done should not interrupt the people doing it...

7

Donnerstag, 23. Dezember 2010, 12:14

Hier martins völlig korrekte Ausführungen nochmal als code:
(Beispiel A2A B17 APU)


-- APU toggle
if ipcPARAM == 6 then


LVarSet = "L:APUSwitch"
val = 0

if ipc.readLvar(LVarSet) == 0 then
val = 1
end

ipc.writeLvar(LVarSet, val)
end




Anmerkung:
Die LVarSet Variable brauchst Du natürlich in dem Sinne nicht.
Ich mach da nur, da ich dann, wenn ich codefragmente kopiere, nur immer einmal die LVarSet benennen muss (in dem Fall "L:APUSwitch") und das für alle weiteren Zeilen dann gilt.
Anders würde der Code dann so aussehen:


-- APU toggle
if ipcPARAM == 6 then

val = 0

if ipc.readLvar("L:APUSwitch") == 0 then
val = 1
end

ipc.writeLvar("L:APUSwitch", val)
end



Übrigens ist in der Programmiersprache LUA die Groß- und Kleinschreibung wichtig!
Günter

endlich Berliner! :lol:
i7 930@4.2Ghz WaKü, GTX 580 3GB, 12GbRAM1600, Win10 64 Prof


8

Donnerstag, 23. Dezember 2010, 12:34

Deine LUA-Skills in Ehren, aber kann LUA kein Else-if? :hm:
| Intel i7 5930K @4.25 Ghz | 32GB DDR4-3400 | Asus STRIX X99 Gaming | STRIX GTX 1080 SLI OC'd |
| Oculus Rift CV1 | TrackIR 5 | Slaw USAF Pedals | Thrustmaster HOTAS Warthog | Obutto r3volution |

Those who say it cannot be done should not interrupt the people doing it...

9

Donnerstag, 23. Dezember 2010, 13:18

Generell hab ich keine besonderen LUA Skills und LUA kann sicherlich esle-if....

Aber ich hatte es mal ausprobiert und irgendwas hat nicht gefunzt, seitdem mach ich das halt so.
Ich weiß, dass meine ganzen Scripts sicherlich einfacher gehalten werden könnten. Aber dazu bin ich zuwenig logisch denkender Mensch... :sagnix:
Günter

endlich Berliner! :lol:
i7 930@4.2Ghz WaKü, GTX 580 3GB, 12GbRAM1600, Win10 64 Prof


10

Donnerstag, 23. Dezember 2010, 13:47

Durch C++-Kenntnisse kann ich dem Skript immerhin nachvollziehen, ich guck gleich mal genauer, ob ich das jetzt mit Toggle-Befehlen realisiere, oder ob ich einfach eine Taste belege, die dann in den entsprechenden Zustand wechselt.

Danke euch ;)