This documentation describes the hal python module, which provides a Python API for creating and accessing HAL pins and signals.
1. Grundlegende Verwendung (engl. basic usage)
#!/usr/bin/env python3 import hal, time h = hal.component("passthrough") h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) h.ready()
2. Funktionen
- component
-
+
The component itself is created by a call to the constructorhal.component. The arguments are the HAL component name and (optionally) the prefix used for pin and parameter names. If the prefix is not specified, the component name is used.
.Example
h = hal.component("passthrough")
- newpin
-
+
Create new pin.
Arguments: pin name suffix, pin type, and pin direction. For parameters, the arguments are: parameter name suffix, parameter type, and parameter direction.
.Example:
h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
- ready
-
Sagt dem HAL-System, dass die Komponente initialisiert ist. Sperrt das Hinzufügen von Pins.
- unready
-
Ermöglicht es einer Komponente, Pins hinzuzufügen, nachdem ready() aufgerufen wurde. Man sollte ready() auf der Komponente danach aufrufen.
- component_exists
-
Existiert die angegebene Komponente zu diesem Zeitpunkt.
hal.component_exists("testpanel")
- component_is_ready
-
Ist die angegebene Komponente zu diesem Zeitpunkt bereit.
hal.component_is_ready("testpanel")
- get_msg_level
-
Abfrage der aktuellen Echtzeit-Nachrichten (engl. kurz msg)-Stufe.
- set_msg_level
-
Legen Sie die aktuelle Echtzeit-MSG-Stufe fest. Wird zum Debuggen von Informationen verwendet.
- connect
-
Verbinden Sie einen Pin mit einem Signal.
hal.connect("pinname","signal_name")
- disconnect
-
Trennen Sie einen Pin von einem Signal.
hal.disconnect("Pinname")
- get_value
-
Lesen Sie einen Pin, einen Parameter oder ein Signal direkt.
value = hal.get_value("iocontrol.0.emc-enable-in")
- get_info_pins()
-
Gibt eine Liste von Dicts aller Systempins zurück.
listOfDicts = hal.get_info_pins() pinName1 = listOfDicts[0].get('NAME') pinValue1 = listOfDicts[0].get('VALUE') pinType1 = listOfDicts[0].get('TYPE') pinDirection1 = listOfDicts[0].get('DIRECTION')
- get_info_signals()
-
Gibt eine Liste von Dicts aller Systemsignale zurück.
listOfDicts = hal.get_info_signals() signalName1 = listOfDicts[0].get('NAME') signalValue1 = listOfDicts[0].get('VALUE') driverPin1 = listOfDicts[0].get('DRIVER')
- get_info_params()
-
Gibt eine Liste von Dicts mit allen Systemparametern zurück.
listOfDicts = hal.get_info_params() paramName1 = listOfDicts[0].get('NAME') paramValue1 = listOfDicts[0].get('VALUE') paramDirection1 = listOfDicts[0].get('DIRECTION')
- new_sig
-
Erstellt ein neues Signal des angegebenen Typs.
hal.new_sig("signalname",hal.HAL_BIT)
- pin_has_writer
-
Ist der angegebene Pin mit einem treibenden Pin verbunden.
Gibt True oder False zurück.
h.in.pin_has_writer()
- get_name
-
Ermittelt den Namen des HAL-Objekts.
Rückgabe einer Zeichenkette.
h.in.get_name()
- get_type
-
Ermittelt den Typ des HAL-Objekts'.
Gibt eine ganze Zahl zurück.
h.in.get_type()
- get_dir
-
Ermittelt den Richtungstyp des HAL-Objekts.
Gibt eine ganze Zahl zurück.
h.in.get_dir()
- get
-
Ermittelt den Wert des HAL-Objekts.
h.in.get()
- set
-
Setzt den Wert des HAL-Objekts.
h.out.set(10)
- is_pin
-
Ist das Objekt ein Pin oder Parameter?
Gibt True oder False zurück.
h.in.is_pin()
- sampler_base
-
TODO
- stream_base
-
TODO
- stream
-
TODO
- set_p
-
Einstellen eines Pin-Wertes eines beliebigen Pins im HAL-System.
hal.set_p("pinname","10")