Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA:

Benötige Hilfe vom Speichern und Laden von Schaltern. 17 Feb 2020 15:59 #19

  • nichtgedacht
  • nichtgedachts Avatar
  • Besucher
  • Besucher
Der einfache Fall:

Man läd eine Zuweisung für einen Schalter mit pLoad() in der Init Section.
Mangels erfolgtem Setup ist beim ersten Mal die Zuweisung NIL (ohne Default Ansage)

Man präsentiert im Setup eine addInputBox(), der User wählt einen Schalter mitsamt der
Info in der er ON sein soll, speichert das "SwitchItem" mit pSave für den nächsten
Start vom Script im Modellspeicher und weist es auch einer Variablen zu.

Mit system.getInputsVal(Variable) kann man dann in der Hauptschleife jederzeit erfahren
ob der Schalter ON (1) ist oder nicht.

Beim nächsten Start vom Script kommen Schaltername + ON-Stellung aus dem Modellspeicher
und laden direkt die Variable korrekt.


Um das modellübergreifend zu machen, müsste man das "SwitchItem" nicht nur im Modellspeicher
ablegen, sondern mit io.write in eine Datei schreiben.
Die Doku sagt hier was geschrieben werden kann: data – any Lua type that can be converted into string.
Ich habe nicht probiert ob das für "SwitchItem" zutrifft. Der Modellspeicher
enthält jedoch auch nur Text. Insofern sollte das kein Problem sein.


Was im Script von Thorn passiert ist, dass die vom User in der InputBox definierte Variable mit
createSwitch() überschrieben wird und in diesem neuen virtuellen Schalter diejenige Stellung als ON
definiert wird die vorher mit getSwitchInfo() als aktuelle physische Stellung ausgelesen und
über die Datei transportiert wurde. Ich verstehe nicht was das soll.

Wenn man sein eigenes Programm nicht mit Kommentaren versehen kann ... wie soll es da ein
anderer tun?

Gruß
Dieter

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Benötige Hilfe vom Speichern und Laden von Schaltern. 17 Feb 2020 19:22 #20

  • nichtgedacht
  • nichtgedachts Avatar
  • Besucher
  • Besucher
Moin

Ich habe es ausprobiert.

Ein switchItem ist vom Type userdata.

Da kann man mit lua selber nicht reingucken und die Daten auch nicht mit lua in eine Datei schreiben.
Es sei denn der Host stellt die Tools dazu bereit.
pSave() und pLoad() speichern die Daten nicht nur im Modellspeicher sondern wandeln sie auch um.
Das kann nur der Host und nicht Lua.

Die einzige Möglichkeit des Speicherns sehe ich darin, die Json Datei eines Dummy-Modells zu nutzen und die
Bedeutung der Felder von Schaltern durch Probieren zu ermitteln. Dummerweise wird pSave() auch erst beim
Modellwechsel oder beim Ausschalten wirksam.

Jedenfalls könnte man am Ende mit json.decode die Daten lesen.

Gruß
Dieter

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Benötige Hilfe vom Speichern und Laden von Schaltern. 17 Feb 2020 20:00 #21

  • Thorn
  • Thorns Avatar Autor
  • Offline
  • Moderator
  • Moderator
  • Beiträge: 3377
  • Dank erhalten: 1317
Hoffe nur das eventuell bald die 5.03 auch als Emulator kommt, dann kannst du sehen wenn du in der TXT Datei -1.0 eine 0.0 machst oder eine 1.0 zeigt er es perfekt an. Aber trotzdem vielen lieben Dank die Information die du mir gezeigt hast.

Mit freundlichen Grüßen
Thorn
Sorry, wegen meiner Rechtschreibung und Grammatik!!!
Links
Alle meine Apps
Wie man Lua installiert
Display App Video

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Benötige Hilfe vom Speichern und Laden von Schaltern. 21 Feb 2020 13:50 #22

  • nichtgedacht
  • nichtgedachts Avatar
  • Besucher
  • Besucher
Hi,

ich finde es eigentlich auch ziemlich daneben, wenn jemand seine eigenen Scripte nur als .lc Dateien
veröffentlicht und dann hier um Hilfe ersucht wenn er mit seiner nächsten Idee nicht weiter kommt.

Gruß
Dieter

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Benötige Hilfe vom Speichern und Laden von Schaltern. 19 Okt 2021 06:00 #23

  • davidmcq137
  • davidmcq137s Avatar
  • Offline
  • Senior Boarder
  • Senior Boarder
  • Beiträge: 75
  • Dank erhalten: 80
I've been around and around on this one for my Maps app. My goal was to persist switch settings even with an app refresh. pLoad and pSave can't do that. In order to make it work, you would have to save the switchItem or the switch information in another form in a file.

I was encouraged by the system.createSwitch call recently introduced in the API and indeed it does work correctly. BUT ... system.getSwitchInfo does not provide the equivalent activeOn information.

You will see that if you assign a switch using the standard dialog, whichever way you flip the switch is called "on" or +1 .. Jeti knows which way it was flipped, and they save it when they persist the switchItem in pSave and restore it with pLoad.

But that direction info is not provided by system.getSwitchInfo .. so you cannot reliably "reconstruct" the switch state with system.createSwitch. I've talked to Jeti about it and they seem to be interested to improve getSwitchInfo in the future so users can do what pSave/pLoad do today.

If anyone is curious, I have an alternate (unfortunately non-standard) way to assign switches which CAN be persisted in the file system, and can be properly re-created ... we are using it in our Maps app. Because new maps are downloaded with the app we would constantly be forcing users to re-set switch assignments every time they got new maps, even if the app was the same if we used pSave and pLoad. For apps that are rarely updated this is probably not a big deal .. but it is for us.

Dave
Folgende Benutzer bedankten sich: Thorn, skyfreak

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Benötige Hilfe vom Speichern und Laden von Schaltern. 19 Okt 2021 20:22 #24

  • Thorn
  • Thorns Avatar Autor
  • Offline
  • Moderator
  • Moderator
  • Beiträge: 3377
  • Dank erhalten: 1317
I really need it in the display app and have already managed it with a trick but every now and then mega rare it crashed. If you install it there, I would be very happy. Had me at that time from jeti wished and they have me yes then installed, but exactly as you described it, incorrectly installed!

Thorn
Sorry, wegen meiner Rechtschreibung und Grammatik!!!
Links
Alle meine Apps
Wie man Lua installiert
Display App Video

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Moderatoren: ThornIG-Modellbau
Ladezeit der Seite: 0.251 Sekunden
Powered by Kunena Forum