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 constructorhal.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.
hal.component_exists("testpanel")
- component_is_ready
-
Componente especificado listo en este momento.
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.
hal.connect("pinname","nombre_de_señal")
- disconnect
-
Desconecta un pin de una señal.
hal.disconnect("nombredelpin")
- get_value
-
Lee un pin, parámetro o señal directamente.
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.
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.
hal.set_p("nombredepin","10")
- set_s
-
Establece un valor de cualquier señal sin conexión en el sistema HAL.
hal.set_s("nombredeseñal","10")