Esta documentación describe el módulo python hal, que proporciona una API Python para crear y acceder pines y señales HAL.

1. Uso básico

#!/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. Funciones

component

+
El componente en sí es creado por una llamada al constructor hal.component. Los argumentos son el nombre del componente HAL y (opcionalmente) el prefijo utilizado para los nombres de los pines y los parámetros. Si el prefijo no se especifica, se usa el nombre del componente.
.Ejemplo

h = hal.component("passthrough")
newpin

+
Crea pin nuevo.
Argumentos: sufijo del nombre del pin, tipo de pin y dirección del pin. Para parámetros, los argumentos son: sufijo del nombre del parámetro, tipo de parámetro, y dirección del parámetro.
.Ejemplo:

h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
ready

Le indica al sistema HAL que el componente esta inicializado. Bloquea la adición de pines.

unready

Permite al componente agregar pines después de llamar a ready(). Uno debería llamar a ready() del componente después.

component_exists

Existencia del componente especificado en este momento.

Ejemplo
hal.component_exists("testpanel")
component_is_ready

Componente especificado listo en este momento.

Ejemplo
hal.component_is_ready("testpanel")
get_msg_level

Obtiene el nivel de mensaje de tiempo real actual.

set_msg_level

Establece el nivel de mensaje de tiempo real. usado para información de depuración.

connect

Conecta un pin a una señal.

Ejemplo
hal.connect("pinname","nombre_de_señal")
disconnect

Desconecta un pin de una señal.

Ejemplo
hal.disconnect("nombredelpin")
get_value

Lee un pin, parámetro o señal directamente.

Ejemplo
value = hal.get_value("iocontrol.0.emc-enable-in")
get_info_pins()

Devuelve una lista de diccionarios de todos los pines del sistema.

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

Devuelve una lista de diccionarios de todas las señales del sistema.

listOfDicts = hal.get_info_signals()
signalName1 = listOfDicts[0].get('NAME')
signalValue1 = listOfDicts[0].get('VALUE')
driverPin1 = listOfDicts[0].get('DRIVER')
get_info_params()

Devuelve una lista de diccionarios de todos los parámetros del sistema.

listOfDicts = hal.get_info_pins()
pinName1 = listOfDicts[0].get('NAME')
pinValue1 = listOfDicts[0].get('VALUE')
pinDirection1 = listOfDicts[0].get('DIRECTION')
new_sig

Crea una nueva señal del tipo especificado.

Ejemplo
hal.new_sig("signalname",hal.HAL_BIT)
pin_has_writer

El pin especificado tiene un pin de manejo conectado.
Devuelve verdadero o falso.

h.in.pin_has_writer()
get_name

Obtener nombre de objeto HAL.
Devuelve una cadena.

h.in.get_name()
get_type

Obtiene el tipo de objeto HAL.
Devuelve un entero.

h.in.get_type()
get_dir

Obtiene el tipo de dirección de objeto HAL.
Devuelve un entero.

h.in.get_dir()
get

Obtener el valor del objeto HAL.

h.in.get()
set

Asigna el valor del objeto HAL.

h.out.set(10)
is_pin

El objeto ¿es pin o parámetro?
Devuelve verdadero o falso.

h.in.is_pin()
sampler_base

TODO

stream_base

TODO

stream

TODO

set_p

Establece un valor en cualquier pin en el sistema HAL.

Ejemplo
hal.set_p("nombredepin","10")
set_s

Establece un valor de cualquier señal sin conexión en el sistema HAL.

Ejemplo
hal.set_s("nombredeseñal","10")