1. Einführung
GStat ist eine Python-Klasse, die verwendet wird, um Nachrichten von LinuxCNC an andere Python-Programme zu senden. Sie verwendet GObject, um Nachrichten zu übermitteln, was es einfach macht, auf bestimmte Informationen zu hören. Dies wird als ereignisgesteuerte Programmierung bezeichnet, die effizienter ist als jedes Programm, das LinuxCNC zur gleichen Zeit abfragt. GladeVCP, Gscreen, Gmoccapy und QtVCP verwenden GStat ausgiebig. GStat befindet sich im Modul hal_glib
.
-
Zunächst importiert ein Programm das Modul "hal_glib" und instanziiert GStat.
-
Dann stellt es eine Verbindung zu den Nachrichten her, die es überwachen möchte.
-
GStat prüft den Status von LinuxCNC alle 100 ms und wenn es Unterschiede zur letzten Prüfung gibt, sendet es eine Callback-Nachricht an alle angeschlossenen Programme mit dem aktuellen Status.
-
Wenn GStat die registrierte Funktion aufruft, sendet es das GStat-Objekt und alle Rückgabewerte der Nachricht.
Typische Codesignaturen:
GSTAT.connect('MESSGAE-TO-LISTEN-FOR', FUNCTION_TO_CALL) def FUNCTION_TO_CALL(gstat_object, return_codes):
Oft wird LAMBDA verwendet, um das GSTAT-Objekt zu entfernen und die Rückgabecodes zu manipulieren:
GSTAT.connect('MESSGAE-TO-LISTEN-FOR', lambda o, return: FUNCTION_TO_CALL(not return)) def FUNCTION_TO_CALL(return_codes):
2. Beispiel für einen GStat-Code
Es gibt einige grundlegende Muster für die Verwendung von GStat, je nachdem, in welcher Bibliothek Sie sie verwenden. Wenn Sie GStat mit GladeVCP, Gscreen oder QtVCP verwenden, wird die GObject-Bibliothek nicht benötigt, da diese Toolkits GObject bereits einrichten.
2.1. Codemuster für HAL-Komponenten
Dieses Programm erzeugt zwei HAL-Pins, die den Status von G20/G21 ausgeben.
#!/usr/bin/env python3 import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject from gi.repository import GLib import hal from hal_glib import GStat GSTAT = GStat() # Callback zum Ändern des HAL-Pin-Status def mode_changed(obj, data): h['g20'] = not data h['g21'] = data # Erstelle eine Komponente und Pins h = hal.component("metric_status") h.newpin("g20", hal.HAL_BIT, hal.HAL_OUT) h.newpin("g21", hal.HAL_BIT, hal.HAL_OUT) h.ready() # eine GSTAT-Nachricht mit einer Callback-Funktion verbinden GSTAT.connect("metric-mode-changed",mode_changed) # GSTAT zwingen, Zustände zu initialisieren GSTAT.forced_update() # loop till exit try: GLib.MainLoop().run() except KeyboardInterrupt: raise SystemExit
Dies würde mit loadusr python PATH-TO-FILE/FILENAME.py
geladen werden oder wenn Sie warten müssen, bis die Pins hergestellt sind, bevor Sie fortfahren:
loadusr python -Wn metric_status PATH-TO-FILE/FILENAME.py
Die Pins lauten dann: metric_status.g20
und metric_status.g21
.
2.2. GladeVCP Python-Erweiterung Code-Muster
In dieser Datei wird davon ausgegangen, dass es drei GTK-Labels mit Namen gibt:
-
state_label
-
e_state_label
-
interp_state_label
#!/usr/bin/env python3 from hal_glib import GStat GSTAT = GStat() class HandlerClass: def __init__(self, halcomp, builder, useropts): self.builder = builder GSTAT.connect("state-estop",lambda w: self.update_estate_label('ESTOP')) GSTAT.connect("state-estop-reset",lambda w: self.update_estate_label('RESET')) GSTAT.connect("state-on",lambda w: self.update_state_label('MACHINE ON')) GSTAT.connect("state-off",lambda w: self.update_state_label('MACHINE OFF')) GSTAT.connect("interp-paused",lambda w: self.update_interp_label('Paused')) GSTAT.connect("interp-run",lambda w: self.update_interp_label('Run')) GSTAT.connect("interp-idle",lambda w: self.update_interp_label('Idle')) def update_state_label(self,text): self.builder.get_object('state_label').set_label("State: %s" % (text)) def update_estate_label(self,text): self.builder.get_object('e_state_label').set_label("E State: %s" % (text)) def update_interp_label(self,text): self.builder.get_object('interp_state_label').set_label("Interpreter State: %s" % (text)) def get_handlers(halcomp,builder,useropts): return [HandlerClass(halcomp,builder,useropts)]
2.3. QtVCP Python-Erweiterungscode-Muster
QtVCP erweitert GStat, muss also anders geladen werden, aber alle Meldungen sind in QtVCP verfügbar.
Diese Handler-Datei geht davon aus, dass es drei QLabels mit Namen gibt:
-
state_label
-
e_state_label
-
interp_state_label
#!/usr/bin/env python3 from qtvcp.core import Status GSTAT = Status() class HandlerClass: def __init__(self, halcomp,widgets,paths): self.w = widgets GSTAT.connect("state-estop",lambda w: self.update_estate_label('ESTOP')) GSTAT.connect("state-estop-reset",lambda w: self.update_estate_label('RESET')) GSTAT.connect("state-on",lambda w: self.update_state_label('MACHINE ON')) GSTAT.connect("state-off",lambda w: self.update_state_label('MACHINE OFF')) GSTAT.connect("interp-paused",lambda w: self.update_interp_label('Paused')) GSTAT.connect("interp-run",lambda w: self.update_interp_label('Run')) GSTAT.connect("interp-idle",lambda w: self.update_interp_label('Idle')) def update_state_label(self,text): self.w.state_label.setText("State: %s" % (text)) def update_estate_label(self,text): self.w.e_state_label.setText("E State: %s" % (text)) def update_interp_label(self,text): self.winterp_state_label.setText("Interpreter State: %s" % (text)) def get_handlers(halcomp,builder,useropts): return [HandlerClass(halcomp,widgets,paths)]
3. Nachrichten
- periodic (engl. für periodisch)
-
(gibt nichts zurück) - wird alle 100 ms gesendet.
- state-estop
-
(gibt nichts zurück) - Wird gesendet, wenn LinuxCNC in den Notaus geht.
- state-estop-reset
-
(gibt nichts zurück) - Wird gesendet, wenn LinuxCNC aus dem Notaus heraus kommt.
- state-on
-
(gibt nichts zurück) - Wird gesendet, wenn LinuxCNC im Zustand Maschine ein ist.
- state-off
-
(gibt nichts zurück) - Wird gesendet, wenn sich LinuxCNC im ausgeschalteten Zustand befindet.
- homed
-
(returns string) - Wird gesendet, wenn jeder Joint in die Ausgangsposition gebracht wird.
- all-homed
-
(gibt nichts zurück) - Wird gesendet, wenn alle definierten Gelenke referenziert sind.
- not-all-homed
-
(gibt eine Zeichenkette zurück) - Sendet eine Liste von Gelenken, die derzeit nicht referenziert sind.
- override_limits_changed
-
(returns string) - Wird gesendet, wenn LinuxCNC angewiesen wurde, seine Grenzen zu überschreiten.
- hard-limits-tripped
-
(liefert bool, Python-Liste) - Wird gesendet, wenn ein hartes Limit ausgelöst wird. bool zeigt an, dass ein Limit ausgelöst wurde, die Liste zeigt alle aktuellen Grenzwerte der verfügbaren Gelenke.
- mode-manual
-
(returns nothing) - Wird gesendet, wenn LinuxCNC in den manuellen Modus wechselt.
- mode-mdi
-
(returns nothing) - Wird gesendet, wenn LinuxCNC in den MDI-Modus wechselt.
- mode-auto
-
(gibt nichts zurück) - Wird gesendet, wenn LinuxCNC in den Auto-Modus wechselt.
- command-running
-
(gibt nichts zurück) - Wird gesendet, wenn ein Programm oder MDI ausgeführt wird
- command-stopped
-
(gibt nichts zurück) - Wird gesendet, wenn ein Programm oder MDI angehalten wurde
- command-error
-
(returns nothing) - Wird gesendet, wenn bei der Ausführung eines Befehls ein Fehler auftritt
- interp-run
-
(gibt nichts zurück) - Wird gesendet, wenn der Interpreter von LinuxCNC ein MDI oder Programm ausführt.
- interp-idle
-
(returns nothing) - Wird gesendet, wenn der Interpreter von LinuxCNC im Leerlauf (engl. idle) ist.
- interp-paused
-
(gibt nichts zurück) - Wird gesendet, wenn der Interpreter von LinuxCNC pausiert ist.
- interp-reading
-
(gibt nichts zurück) - Wird gesendet, wenn der Interpreter von LinuxCNC gerade liest.
- interp-waiting
-
(gibt nichts zurück) - Wird gesendet, wenn der Interpreter von LinuxCNC wartet.
- jograte-changed
-
(gibt Float zurück) - Wird gesendet, wenn sich die Jog-Rate geändert hat.
LinuxCNC verfügt nicht über eine interne Jog-Geschwindigkeit.
Dies ist die interne Jog-Rate von GStat.
Es wird erwartet, dass sie in den nativen Einheiten der Maschine angegeben wird, unabhängig vom aktuellen Einheitenmodus. - jograte-angular-changed
-
(gibt Float zurück) - Wird gesendet, wenn sich die Jog-Rate geändert hat.
LinuxCNC verfügt über keine interne Jog-Geschwindigkeit.
Dies ist die interne Jog-Rate von GStat.
Es wird erwartet, dass sie in den nativen Einheiten der Maschine angegeben wird, unabhängig vom aktuellen Einheitenmodus. - jogincrement-changed
-
(liefert Float, Text) - Wird gesendet, wenn sich die Schrittweite geändert hat.
LinuxCNC verfügt über keine interne Schrittweite.
Dies ist die interne Schrittweite von GStat.
Es wird erwartet, dass es in den nativen Einheiten der Maschine angegeben wird, unabhängig vom aktuellen Einheitenmodus. - jogincrement-angular-changed
-
(gibt float, text zurück) - Wird gesendet, wenn sich das Winkeljog-Inkrement geändert hat.
LinuxCNC hat kein internes Winkeljog-Inkrement.
Dies ist das interne Winkeljog-Inkrement von GStat.
Es wird erwartet, dass es sich unabhängig vom aktuellen Einheitenmodus in den nativen Einheiten der Maschine befindet. - program-pause-changed
-
(gibt bool zurück) - Wird gesendet, wenn das Programm pausiert/unpausiert wird.
- optional-stop-changed
-
(gibt bool zurück) - Wird gesendet, wenn der optionale Stopp gesetzt/entfernt wird
- block-delete-changed
-
(gibt bool zurück) - wird gesendet, wenn der Block delete gesetzt/gelöscht wird.
- file-loaded
-
(liefert String) - Wird gesendet, wenn LinuxCNC eine Datei geladen hat
- reload-display
-
(gibt nichts zurück) - Wird gesendet, wenn eine Anforderung zum Neuladen der Anzeige vorliegt
- line-changed
-
(gibt eine ganze Zahl zurück) - Wird gesendet, wenn LinuxCNC eine neue Zeile gelesen hat.
LinuxCNC aktualisiert diese nicht für jede Art von Zeile. - tool-in-spindle-changed
-
(gibt ganze Zahl zurück) - Wird gesendet, wenn sich das Werkzeug geändert hat.
- tool-info-changed
-
(gibt Python-Objekt zurück) - Wird gesendet, wenn sich die aktuelle Werkzeuginformation ändert.
- current-tool-offset
-
(gibt Python-Objekt zurück) - Wird gesendet, wenn sich der aktuelle Werkzeugversatz ändert.
- motion-mode-changed
-
(gibt ganze Zahl zurück) - Wird gesendet, wenn sich der Modus der Bewegung geändert hat
- spindle-control-changed
-
(gibt Integer, Bool, Integer, Bool zurück) - (Spindelnummer, Zustand der eingeschalteten Spindel, angeforderte Spindelrichtung und -geschwindigkeit, Zustand bei Drehzahl)
Wird gesendet, wenn sich die Spindelrichtung oder der Laufstatus ändert oder die Drehzahl sich ändert. - current-feed-rate
-
(liefert Float) - Wird gesendet, wenn sich die aktuelle Vorschubgeschwindigkeit ändert.
- current-x-rel-position
-
(returns float) - Wird alle 100 ms gesendet.
- current-position
-
(liefert pyobject, pyobject, pyobject, pyobject) - Wird alle 100 ms gesendet.
liefert Tupel von Position, relativer Position, Restweg und der aktuellen Gelenkposition. Vor der Referenzfahrt ist bei Multigelenkachsen nur die Gelenkposition gültig. - current-z-rotation
-
(liefert Float) - Wird gesendet, wenn sich der aktuelle Drehwinkel um die Z-Achse ändert
- requested-spindle-speed-changed
-
(liefert Float) - Wird gesendet, wenn sich die aktuell angeforderte Drehzahl ändert
- actual-spindle-speed-changed
-
(returns float) - Wird gesendet, wenn sich die tatsächliche Drehzahl basierend auf dem HAL-Pin
spindle.0.speed-in
ändert. - spindle-override-changed
-
(returns float) - Wird gesendet, wenn sich der Spindel-Override-Wert ändert
in Prozent - feed-override-changed
-
(returns float) – Wird gesendet, wenn sich der Feed-Override-Wert ändert
in Prozent - rapid-override-changed
-
(returns float) – Wird gesendet, wenn sich der Rapid-Override-Wert ändert
in Prozent (0-100) - max-velocity-override-changed
-
(returns float) - Wird gesendet, wenn sich der Override-Wert der maximalen Geschwindigkeit ändert
in Einheiten pro Minute - feed-hold-enabled-changed
-
(returns bool) - Wird gesendet, wenn sich der Feed-Hold-Status ändert
- itime-mode
-
(gibt bool zurück) - Wird gesendet, wenn sich der G93-Status ändert
(inverser Zeitmodus) - fpm-mode
-
(returns bool) - Wird gesendet, wenn sich der G94-Status ändert
(Vorschub pro Minute Modus) - fpr-mode
-
(returns bool) - Wird gesendet, wenn sich der G95-Status ändert
(Vorschub pro Umdrehung Modus) - css-mode
-
(liefert bool) - Wird gesendet, wenn sich der G96-Status ändert +
(Modus konstanter Oberflächenvorschub, engl. constant surface feed mode) - rpm-mode
-
(returns bool) - Wird gesendet, wenn sich der G97-Status ändert
(Modus mit konstanter Drehzahl, engl. constant RPM mode) - radius-mode
-
(gibt bool zurück) - Wird gesendet, wenn sich der G8-Status ändert +
Anzeige X in Radian - Modus - diameter-mode
-
(gibt bool zurück) - Wird gesendet, wenn sich der G7-Status ändert
Anzeige X im Diameter-Modus - flood-changed
-
(gibt boolean zurück) - Wird gesendet, wenn sich der Flutkühlmittelzustand ändert.
- mist-changed
-
(liefert boolean ) - Wird gesendet, wenn sich der Zustand des Nebelkühlmittels ändert.
- m-code-changed
-
(gibt String zurück) - Wird gesendet, wenn sich aktive M-Codes ändern
- g-code-changed
-
(gibt String zurück) - Wird gesendet, wenn sich der aktive G-Code ändert
- metric-mode-changed
-
(gibt bool zurück) - Wird gesendet, wenn sich der G21-Status ändert
- user-system-changed
-
(gibt String zurück) - Wird gesendet, wenn sich das Referenzkoordinatensystem (G5x) ändert
- mdi-line-selected
-
(returns string, string) - soll gesendet werden, wenn eine MDI-Zeile vom Benutzer ausgewählt wird. +
Dies hängt von den verwendeten Widgets / Bibliotheken ab. - gcode-line-selected
-
(gibt eine ganze Zahl zurück) - soll gesendet werden, wenn eine G-Code-Zeile vom Benutzer ausgewählt wird. +
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - graphics-line-selected
-
(gibt eine ganze Zahl zurück) - soll gesendet werden, wenn der Benutzer eine Grafikzeile auswählt. +
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - graphics-loading-progress
-
(gibt eine ganze Zahl zurück) - soll den Prozentsatz zurückgeben, der beim Laden eines Programms oder bei der Ausführung eines Programms erreicht wurde.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - graphics-gcode-error
-
(gibt String zurück) - soll gesendet werden, wenn beim Laden ein G-Code-Fehler gefunden wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - graphics-gcode-properties
-
(gibt ein Python-dict zurück) - gibt eine benamste Liste aller Gelenke zurück, die aktuell einem Fehler folgen.
Das dict enthält Einträge zu den folgenden Namen (engl. keys):-
name
(string): Name der geladenen Datei -
size
(string): Größe in Bytes und Zeilen -
g0
(string): Gesamtschnelldistanz -
g1
(string): Gesamtvorschubweg -
run
(string): Geschätzte Programmlaufzeit -
toollist
(list): Liste der verwendeten Werkzeuge -
x
(string): X Ausmaße (Grenzen) 1 -
x_zero_rxy
(string): X-Ausdehnungen ohne Drehung um z (Grenzen) 1 -
y
(string): Y-Ausdehnungen (Grenzen) 1 -
y_zero_rxy
(string): Y-Ausdehnungen ohne Drehung um Z (Grenzen) 1 -
z
(string): Z-Ausdehnungen (Grenzen) 1 -
z_zero_rxy
(string): Z-Ausdehnungen ohne Drehung um z (Grenzen) 1 -
machine_unit_sys
(string): Maschineneinheiten (Metrisch oder Imperial) -
gcode_units
(string): Einheiten in G-Code-Datei (mm oder in)
-
- graphics-view-changed
-
(liefert string, Python dict oder None) - soll gesendet werden, wenn die Grafikansicht geändert wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - mdi-history-changed
-
(gibt keine zurück) - soll gesendet werden, wenn ein MDI-Verlauf neu geladen werden muss.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - machine-log-changed
-
(gibt keine zurück) - soll gesendet werden, wenn sich das Maschinenprotokoll geändert hat.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - update-machine-log
-
(gibt String, String zurück) - soll bei der Aktualisierung der Maschine gesendet werden.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - move-text-lineup
-
(gibt None zurück) - soll gesendet werden, wenn der Cursor in der G-Code-Anzeige um eine Zeile nach oben bewegt wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - move-text-linedown
-
(gibt None zurück) - soll gesendet werden, wenn der Cursor in der G-Code-Anzeige eine Zeile nach unten bewegt wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - dialog-request
-
(gibt Python dict zurück) - soll gesendet werden, wenn ein GUI-Dialog angefordert wird.
Es verwendet ein Python dict für die Kommunikation. Das dict muss das folgende Keyname-Paar enthalten:
-
NAME: angeforderter Dialogname
Das dict (engl. kurz für dictionary, eine Python Funktionalität) hat normalerweise mehrere Keyname-Paare - das hängt vom Dialog ab.
Dialoge geben Informationen über eine allgemeine Nachricht zurück
Dies hängt von den verwendeten Widgets/Bibliotheken ab.
-
- focus-overlay-changed
-
(gibt bool, string, Python object) - soll gesendet werden, wenn ein Overlay über die Anzeige gelegt werden soll.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - play-sound
-
(returns string) - soll gesendet werden, wenn eine bestimmte Sounddatei angefordert wird, die abgespielt werden soll.
Dies hängt von den verwendeten Widgets / Bibliotheken ab. - virtual-keyboard
-
(gibt String zurück) - soll gesendet werden, wenn eine Bildschirmtastatur angefordert wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - dro-reference-change-request
-
(liefert eine ganze Zahl) - soll gesendet werden, wenn ein DRO-Widget aufgefordert wird, seine Referenz zu ändern.
0 = Maschine, 1 = relativ, 3 = Restweg
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - show-preferences
-
(returns string) - soll gesendet werden, wenn eine bestimmte Sounddatei angefordert wird, die abgespielt werden soll.
Dies hängt von den verwendeten Widgets / Bibliotheken ab. - shutdown
-
(gibt None zurück) - soll gesendet werden, wenn LinuxCNC zum Herunterfahren aufgefordert wird.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - error
-
(liefert Integer, String) - soll gesendet werden, wenn ein Fehler gemeldet wurde.
integer steht für die Art des Fehlers. ERROR, TEXT oder DISPLAY
string ist die eigentliche Fehlermeldung.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - general
-
(gibt Python dict zurück) - soll gesendet werden, wenn eine Nachricht gesendet werden muss, die nicht von einer spezifischeren Nachricht abgedeckt wird.
Die allgemeine Nachricht sollte spärlich als vernünftig verwendet werden, da alle damit verbundenen Objekte sie analysieren müssen.
Es verwendet ein Python-Diktum für die Kommunikation.
Das Diktat sollte ein eindeutiges ID-Schlüsselnamenpaar enthalten und darauf überprüft werden:
-
Kennung: UNIQUE_ID_CODE
Das Dikt hat normalerweise mehr Schlüsselnamenpaar - es hängt von der Implementierung ab.
-
- erzwungene Aktualisierung (engl. forced update)
-
(gibt keine zurück)" - soll gesendet werden, wenn ein Objekt initialisiert oder willkürlich aktualisiert werden soll.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - Fortschritt (engl. progress)
-
(liefert Integer, Python-Objekt) - soll gesendet werden, um den Fortschritt eines Filterprogramms anzuzeigen.
Dies hängt von den verwendeten Widgets/Bibliotheken ab. - Folgefehler
-
(gibt eine Python-Liste zurück) - gibt eine Liste aller Gelenke zurück, die aktuell einem Fehler folgen.
4. Funktionen
Dies sind Komfortfunktionen, die in der Programmierung häufig verwendet werden.
- set_jograte
-
(float) - LinuxCNC hat kein internes Konzept für die Jog-Geschwindigkeit (engl. jog rate) - jede GUI hat ihre eigene. Dies ist nicht immer bequem.
Diese Funktion ermöglicht es, eine Tipprate für alle Objekte einzustellen, die mit dem Signaljograte-changed
verbunden sind.
Der Standardwert ist 15.
GSTAT.set_jog_rate(10) würde die Jog-Rate auf 10 Maschineneinheiten pro Minute setzen und dasjograte-changed
-Signal ausgeben. - get_jograte()
-
(Nothing) - x = GSTAT.get_jograte() würde die aktuelle interne Jograte von GSTAT (float) zurückgeben.
- set_jograte_angular
-
(float) -
- get_jograte_angular
-
(None) -
- set_jog_increment_angular
-
(float, string) -
- get_jog_increment_angular
-
(None) -
- set_jog_increments
-
(float, string) -
- get_jog_increments
-
(None) -
- ist_all_homed
-
(nothing) - Dies gibt den aktuellen Status von all_homed (BOOL) zurück.
- machine_is_on
-
(nothing) - Dies gibt den aktuellen Zustand der Maschine zurück (BOOL).
- estop_is_clear
-
(nichts) - Gibt den Status von Estop zurück (BOOL)
- set_tool_touchoff
-
(Werkzeug,Achse,Wert) - Dieser Befehl wird
-
den aktuellen Modus aufzeichnen,
-
Wechsel zu MDI-Modus,
-
den MDI-Befehl aufrufen: G10 L10 P[WERKZEUG] [ACHSE] [WERT],
-
warten, bis der Vorgang abgeschlossen ist,
-
G43 aufrufen,
-
warten, bis der Vorgang abgeschlossen ist,
-
zurück in den ursprünglichen Modus wechseln.
-
- set_axis_origin
-
(Achse,Wert) - Dieser Befehl wird
-
den aktuellen Modus aufzeichnen,
-
Wechsel zu MDI-Modus,
-
den MDI-Befehl aufzurufen: G10 L20 P0 [ACHSE] [WERT],
-
warten, bis der Vorgang abgeschlossen ist,
-
zurück in den ursprünglichen Modus wechseln,
-
ein Reload-Display-Signal aussenden.
-
- do_jog
-
(Achsennummer, Richtung, Abstand) - Diese Funktion bewegt eine Achse kontinuierlich oder in einem bestimmten Abstand.
Sie müssen sich im richtigen Modus befinden, um zu joggen. - check_for_modes
-
(mode) - Diese Funktion prüft, ob der LinuxCNC-Modus erforderlich ist.
Es gibt ein Python-Tupel zurück (Status, Modus)
-Modus wird in dem Modus eingestellt, in dem sich das System befindet
wird wie folgt festgelegt:-
false, wenn mode 0 ist
-
false, wenn die Maschine beschäftigt ist
-
wahr, wenn LinuxCNC im angeforderten Modus ist
-
Keine, wenn eine Änderung möglich ist, aber nicht im gewünschten Modus
-
- get_current_mode
-
(nothing) - gibt eine ganze Zahl zurück: den aktuellen LinuxCNC-Modus.
- set_selected_joint
-
(Integer) - speichert intern die ausgewählte Gelenknummer.
fordert die Auswahl des Gelenks an, indem er die Meldung
Nachricht "Gelenkauswahl geändert". - get_selected_joint
-
(None) - gibt eine ganze Zahl zurück, welche die interne ausgewählte Gelenknummer darstellt.
- set_selected_axis
-
(string) - speichert intern den ausgewählten Achsenbuchstaben.
Fordert die Auswahl der Achse durch dieaxis-selection-changed
-Meldung (engl. für "Achsenauswahl-geändert") an. - get_selected_axis
-
(None) - gibt eine Zeichenkette zurück, die den intern ausgewählten Achsenbuchstaben darstellt.
- is_man_mode
-
(None) -
- is_mdi_mode
-
(None) -
- is_auto_mode
-
(None) -
- is_on_and_idle
-
(None) -
- is_auto_running
-
(None) -
- is_auto_paused
-
(None) -
- is_file_loaded
-
(None) -
- is_metric_mode
-
(None) -
- is_spindle_on
-
(None) -
- shutdown
-
(None) -
5. Bekannte Probleme
Einige Statuspunkte werden während eines laufenden Programms falsch gemeldet, da der Interpreter der aktuellen Position eines laufenden Programms vorausläuft. Dies wird hoffentlich mit der Integration der State-Tags-Entwicklungs-Zweiges behoben.