Diese Dokumentation beschreibt das hal Python-Modul, das eine Python-API für die Erstellung und den Zugriff auf HAL-Pins und -Signale bereitstellt.

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

Komponente

+
The component itself is created by a call to the constructor hal.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 (engl. für bereit)

Sagt dem HAL-System, dass die Komponente initialisiert ist. Sperrt das Hinzufügen von Pins.

unready (engl. für nicht bereit)

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.

Beispiel
hal.component_exists("testpanel")
component_is_ready (engl. für Komponente ist bereit)

Ist die angegebene Komponente zu diesem Zeitpunkt bereit.

Beispiel
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.

Beispiel
hal.connect("pinname","signal_name")
disconnect (engl. für trennen)

Trennen Sie einen Pin von einem Signal.

Beispiel
hal.disconnect("Pinname")
get_value

Lesen Sie einen Pin, einen Parameter oder ein Signal direkt.

Beispiel
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.

Beispiel
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.

Beispiel
hal.set_p("pinname","10")
set_s

Legt den Werte eines nicht verbundenen Signals im HAL-System fest.

Beispiel
hal.set_s("signalname","10")