Lua Modul

Hallo, wir kann ich in einem Lua Modul den gesendeten Befehl M355 S1 oder M355 S0 auslesen. Das Beispiel mit der LED läuft unter Repetier Server im ordner Lua. Aber wie fange ich den String M355 S1 S0 ab um ihn in Lua auszuwerten, und einen GPIO des Raspberry Pi damit zu schalten.
Hello, we can read out the sent command M355 S1 or M355 S0 in a Lua module. The example with the LED runs under Repetier Server in the Lua folder. But how do I catch the string M355 S1 S0 to evaluate it in Lua and switch a GPIO with it. ( Raspberry Pi )

Comments

  • You can not catch send gcode in lua. No function in server does that. You coul dmonitor it when you have send command log active and watch that stream instead. That would only work in a client. In lua we only have

    server:registerResponseHandler(callback)

    Registrers a callback that gets called for every line a printer returns. Use this if you need to analyse printer responses. The callback needs to accept the paramater (printer,response).

    so only when firmware would return something in response you could track it with lua.

    Alternative solution:

    You can modify the firmware description:
    <command type="caseLightsOn">M355 S1</command>
    <command type="caseLightsOff">M355 S0</command>
    to contain a @execute lightOn or lightOff command and define them in extcommands.xml as described in advanced configuration in manual. In the scripts you would then change the gpio instead. Benefit is no slowdown for a watcher.
  • Gibt es eine "Übergabedatei" in der die aktiven Daten wie G oder M Befehle hinterlegt werden ? für einen Datenaustausch ? hier könnte man sich dann z.B per String die nötigen Informationen abholen.
  • Was sind aktive G/M Befehle? Verstehe grad nicht was hier das Ziel ist. Es gibt ja keinen Befehl>Rückgabe automatismus. Rückgaben sind immer komplett unabhängig von Befehlen daher gibt es auch in der API kein Ergebnis wenn man einen Gcode sendet.
  • in der Steuerungstechnik, gibt es zwischen der NC und PLC einen Datenaustausch (Nahtstellensignale) , Repetier würde die aktiven Befehle (Abbild) wie M355 "1" "0" Marlin Licht an in einer Art "Zwischenspeicher schreiben. Von dort aus, könnte man per Python sich die Variablen/ Parameter auslesen, verarbeiten. 
    RepetierServer  ---- Zwischenspeicherdatei -- Raspberry etc.
  • Ok, wir haben 3 puffer aus dem Befehle gesendet werden. Unterschied sind die Prioritäten. Der erste Befehl aus der höchst priorisierten Liste wird gesendet. Für später ist geplant diese als Ereignis zu senden und eine neue Liste zurück zu bekommen und dann noch mal ein Ereignis zu senden für den gesendeten Befehl. Zumindest der letzte Teil könnte schnell hinzugefügt werden. Damit kann man dann tatsächlich einiges machen. Mal sehen wie das geht ohne die Ereignisse auch an die Webseite API zu senden. Dann sollte man aber auch eine skript Lösung wie für empfangene Daten haben wo auch basierend auf eingehende Muster Befehle ausgeführt werden. Damit ist dann in den meisten Fällen kein Lua Modul mehr nötig um sein Ziel zu erreichen. Aber da ist dann wieder der Punkt aus einem Befehl eine Liste zu erstellen. Wäre also wieder komplizierter.
  • Es müssten ja nicht die dynamischen Zustände sein ( keine Fahrpositionen, etc. )  , sondern die statischen wie M355 , M76, M77, M112 zum Beispiel Marlin G Code. 
  • Wenn schon den ganzen GCode. Dafür hab ich ja schon eine Klasse um ihn auch leichter analysieren zu können.
  • dann sollte man das Projekt angreifen, um den Pro Nutzer den kompletten Nutzen des Programmes anzubieten.
  • Wird auch kommen, Frage ist nur wann. Ist ja nicht der einzige Todo Punkt. Gibt da ja noch viele Wünsche.
Sign In or Register to comment.