LinuxCNC Documentation

BESCHREIBUNG

typedef …​ hal_bool;

Ein Typ, der einen Wert von 0 oder ungleich Null haben kann.

typedef …​ hal_bit_t;

Ein flüchtiger (volatile, d.h. eine Speicherstelle, die nicht nur durch laufende Programm verändert wird) Typ, der einen Wert von 0 oder ungleich Null haben kann.

typedef …​ hal_s32_t;

Ein flüchtiger (engl. volatile) Typ, der einen Wert von -2147483648 bis 2147483647 haben kann.

typedef …​ hal_u32_t;

Ein flüchtiger Typ, der einen Wert zwischen 0 und 4294967295 haben kann.

typedef …​ hal_port_t;

Ein flüchtiger Handle zu einem Port-Objekt. Wird mit hal_port* Funktionen verwendet.

typedef …​ hal_float_t;

Ein flüchtiger Gleitkommatyp, der in der Regel die gleiche Genauigkeit und den gleichen Bereich wie der C-Typ double hat.

typedef …​ real_t;

Ein nichtflüchtiger Gleitkommatyp mit mindestens der gleichen Genauigkeit wie hal_float_t.

typedef …​ ireal_t;

Ein nichtflüchtiger, vorzeichenloser Integraltyp mit der gleichen Größe wie hal_float_t.

typedef enum hal_type_t;
HAL_BIT

Entspricht dem Typ hal_bit_t.

HAL_FLOAT

Entspricht dem Typ hal_float_t.

HAL_S32

Entspricht dem Typ hal_s32_t.

HAL_U32

Entspricht dem Typ hal_u32_t.

ANMERKUNGEN

hal_bit_t is typically a typedef to an integer type whose range is larger than just 0 and 1. When testing the value of a hal_bit_t, never compare it to 1. Prefer one of the following:

  • if(b)

  • if(b != 0)

Oft ist es sinnvoll, auf einen Typ zu verweisen, der alle Werte wie ein HAL-Typ darstellen kann, jedoch ohne den Qualifier volatile. Die folgenden Typen entsprechen den HAL-Typen:

hal_bit_t

int

hal_s32_t

__s32

hal_u32_t

__u32

hal_float_t

hal_real_t

hal_port_t

int

Achten Sie darauf, die Typen s32 und u32 nicht zu verwenden. Diese werden in Kernel-Modulen kompiliert, aber nicht im Userspace, und nicht für Echtzeitkomponenten, wenn sie den Uspace Realtime verwenden.

SIEHE AUCH

hal_pin_new(3), hal_param_new(3)