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

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.

Beispiel
hal.component_exists("testpanel")
component_is_ready

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

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")