:lang: fr :toc: = Les composants de HAL[[sec:Composants-de-HAL]] == Composants de commandes et composants de l'espace utilisateur Certaines de ces descriptions sont plus approfondies dans leurs pages man. Certaines y auront une description exhaustive, d'autres, juste une description limitée. Chaque composant a sa man page. La liste ci-dessous, montre les composants existants, avec le nom et le N° de section de leur page man. Par exemple dans une console, tapez *man axis* pour accéder aux informations de la man page d'Axis. Ou peut être *man 1 axis*, si le système exige le N° de section des man pages. - *axis* = AXIS EMC (The Enhanced Machine Controller) Interface Graphique Utilisateur. - *axis-remote* = Interface de télécommande d'AXIS. - *comp* = Crée, compile et installe des composants de HAL. - *emc* = EMC (The Enhanced Machine Controller). - *gladevcp* = Panneau de contrôle virtuel pour EMC2, repose sur Glade, Gtk et les widgets HAL. - *gs2* = composant de l'espace utilisateur de HAL, pour le variateur de fréquence GS2 de la société _Automation Direct_. - *halcmd* = Manipulation de HAL, depuis la ligne de commandes. - *hal_input* = Contrôler des pins d'entrée de HAL avec n'importe quelle matériel supporté par Linux, y compris les matériels USB HID. - *halmeter* = Observer les pins de HAL, ses signaux et ses paramètres. - *halrun* = Manipulation de HAL, depuis la ligne de commandes. - *halsampler* = Échantillonner des données temps réel depuis HAL. - *halstreamer* = Créer un flux de données temps réel dans HAL depuis un fichier. - *halui* = Observer des pins de HAL et commander EMC au travers d'NML. - *io* = Accepte les commandes NML I/O, interagi avec HAL dans l'espace utilisateur. - *iocontrol* = Accepte les commandes NML I/O, interagi avec HAL dans l'espace utilisateur. - *pyvcp* = Panneau de Contrôle Virtuel pour EMC2 (Python Virtual Control Panel). - *shuttlexpress* = Contrôle des pins de HAL avec la manette ShuttleXpress, de la société _Contour Design_. == Composants temps réel et modules du noyau Certaines de ces descriptions sont plus approfondies dans leur man page. Certaines auront juste une description limitée. Chaque composant a sa man page. A partir de cette liste vous connaîtrez quels composants existent avec le nom et le N° de leur man page permettant d'avoir plus de détails. === abs (((abs))) Calcule la valeur absolue et le signe d'un signal d'entrée. === and2 (((and2))) Porte AND (ET) à deux entrées. === at_pid (((at_pid))) Contrôleur Proportionnelle/Intégrale/dérivée avec réglage automatique. === axis (((axis))) Commandes de mouvement NML acceptées, intéragi en temps réel avec HAL === biquad (((biquad))) Filtre biquad IIR === bldc_hall3 (((bldc_hall3))) Commutateur bipolaire trapézoïdal à 3 directions pour moteur sans balais (BLDC) avec capteurs de Hall. === blend (((blend))) Provoque une interpolation linéaire entre deux valeurs === charge_pump (((charge_pump))) Crée un signal carré destiné à l'entrée *pompe de charge* de certaines cartes de contrôle. === clarke2 (((clarke2))) Transformation de Clarke, version à deux entrées. === clarke3 (((clarke3))) Transformation de Clarke, 3 entrées vers cartésien. === clarkeinv (((clarkeinv))) Transformation de Clarke inverse. === classicladder (((classicladder))) Automate temps réel programmable en logique Ladder. === comp (((comp))) Comparateur à deux entrées avec hystérésis. === constant (((constant))) Utilise un paramètre pour positionner une pin. === conv_bit_s32 (((conv_bit_s32))) Converti une valeur de bit vers s32 (entier 32 bits signé). === conv_bit_u32 (((conv_bit_u32))) Converti une valeur de bit vers u32 (entier 32 bit non signé). === conv_float_s32 (((conv_float_s32))) Converti la valeur d'un flottant vers s32. === conv_float_u32 (((conv_float_u32))) Converti la valeur d'un flottant vers u32. === conv_s32_bit (((conv_s32_bit))) Converti une valeur de s32 en bit. === conv_s32_float (((conv_s32_float))) Converti une valeur de s32 en flottant. === conv_s32_u32 (((conv_s32_u32))) Converti une valeur de s32 en u32. === conv_u32_bit (((conv_u32_bit))) Converti une valeur de u32 en bit. === conv_u32_float (((conv_u32_float))) Converti une valeur de u32 en flottant. === conv_u32_s32 (((conv_u32_s32))) Converti une valeur de u32 en s32. === counter (((counter))) Comptage d'impulsions d'entrée (obsolète). Utilisez le composant *encoder* avec *... counter-mode = TRUE*. Voir <>. === ddt (((ddt))) Calcule la dérivée de la fonction d'entrée. === deadzone (((deadzone))) Retourne le centre si il est dans le seuil. === debounce (((debounce))) Filtre une entrée digitale bruitée (typiquement antirebond). === edge (((edge))) Détecteur de front. === encoder (((encoder))) Comptage logiciel de signaux en quadrature d'un codeur, voir <> === encoder_ratio (((encoder_ratio))) Un engrenage électronique pour synchroniser deux axes. === estop_latch (((estop_latch))) Verrou d'Arrêt d'Urgence. === feedcomp (((feedcomp))) Multiplie l'entrée par le ratio vitesse courante/vitesse d'avance travail. === flipflop (((flipflop))) Bascule D. === freqgen (((freqgen))) Générateur logiciel d'impulsions de pas. === gantrykins (((gantrykins))) Module de cinématique pour un seul axe à articulations multiples. === gearchange (((gearchange))) Sélectionne une grandeur de vitesse parmi deux. === genhexkins (((genhexkins))) Donne six degrés de liberté en position et en orientation (XYZABC). L'emplacement des moteurs est défini au moment de la compilation. === genserkins (((genserkins))) Cinématique capable de modéliser une bras manipulateur avec un maximum de 6 articulations angulaires. === gladevcp (((gladevcp))) Affiche un panneaux de contrôle virtuel construit avec GladeVCP. === hm2_7i43 (((hm2_7i43))) Pilote HAL pour les cartes _Mesa Electronics_ 7i43 EPP avec HostMot2. === hm2_pci (((hm2_pci))) Pilote HAL pour les cartes _Mesa Electronics_ 5i20, 5i22, 5i23, 4i65 et 4i68 avec micro logiciel HostMot2. === hostmot2 (((hostmot2))) Pilote HAL pour micro logiciel _Mesa Electronics_ HostMot2. === hypot (((hypot))) Calculateur d'hypoténuse à trois entrées (distance Euclidienne). === ilowpass (((ilowpass))) Filtre passe-bas avec entrées et sorties au format entier. === integ (((integ))) Intégrateur. === invert (((invert))) Calcule l'inverse du signal d'entrée. === joyhandle (((joyhandle))) Définit les mouvements d'un joypad non linéaire, zones mortes et échelles. === kins (((kins))) Définition des cinématiques pour EMC2. === knob2float (((knob2float))) Convertisseur de comptage (probablement d'un codeur) vers une valeur en virgule flottante. === limit1 (((limit1))) . Limite le signal de sortie pour qu'il soit entre min et max. footnote:[Lorsque l'entrée est une position, cela signifie que la *position* est limitée.] === limit2 (((limit2))) . Limite le signal de sortie pour qu'il soit entre min et max. . Limite sa vitesse de montée à moins de MaxV par seconde. footnote:[Lorsque l'entrée est une position, cela signifie que la *position* et la *vitesse* sont limitées.] === limit3 (((limit3))) . Limite le signal de sortie pour qu'il soit entre min et max. . Limite sa vitesse de montée à moins de MaxV par seconde. . Limite sa dérivée seconde à moins de MaxA par seconde carré. footnote:[Lorsque l'entrée est une position, cela signifie que la *position*, la *vitesse* et l'*accélération* sont limitées.] === logic (((logic))) Composant expérimental de logique générale. === lowpass (((lowpass))) Filtre passe-bas. === lut5 (((lut5))) Fonction logique arbitraire à cinq entrées, basée sur une table de correspondance. === maj3 (((maj3))) Calcule l'entrée majoritaire parmi 3. === match8 (((match8))) Détecteur de coïncidence binaire sur 8 bits. === maxkins (((maxkins))) Cinématique d'une fraiseuse 5 axes nommée *max*, avec tête inclinable (axe B) ​ ​et un axe rotatif horizontal monté sur la table (axe C). Fournit le mouvement UVW dans le système de coordonnées système tourné. Le fichier source, maxkins.c, peut être un point de départ utile pour d'autres systèmes 5 axes. === mesa_7i65 (((7i65))) Support à la carte huit axes Mesa 7i65 pour servomoteurs. === minmax (((minmax))) Suiveur de valeurs minimum et maximum de l'entrée vers les sorties. === motion (((motion))) Accepte les commandes de mouvement NML, interagi en temps réel avec HAL. === mult2 (((mult2))) Le produit de deux entrées. === mux16 (((mux16))) Sélection d'une valeur d'entrée sur seize. === mux2 (((mux2))) Sélection d'une valeur d'entrée sur deux. === mux4 (((mux4))) Sélection d'une valeur d'entrée sur quatre. === mux8 (((mux8))) Sélection d'une valeur d'entrée sur huit. === near (((near))) Détermine si deux valeurs sont à peu près égales. === not (((not))) Inverseur. === offset (((offset))) Ajoute un décalage à une entrée et la soustrait à la valeur de retour. === oneshot (((oneshot))) Générateur d'impulsion monostable. === or2 (((or2))) Porte OR (OU) à deux entrées. === pid (((pid))) Contrôleur Proportionnelle/Intégrale/dérivée, voir <> === pluto_servo (((pluto_servo))) Pilote matériel et micro programme pour la carte *Pluto-P parallel-port FPGA*, utilisation avec servomoteurs. === pluto_step (((pluto_step))) Pilote matériel et micro programme pour la carte *Pluto-P parallel-port FPGA*, utilisation avec moteurs pas à pas. === pumakins (((pumakins))) Cinématique pour robot style PUMA. === pwmgen (((pwmgen))) Générateur logiciel de PWM/PDM, voir <> === rotatekins (((rotatekins))) Les axes X et Y sont pivotés de 45 degrés par rapport aux articulations 0 et 1. === sample_hold (((sample_hold))) Échantillonneur bloqueur. === sampler (((sampler))) Échantillonneur de données de HAL en temps réel. === scale (((scale))) Applique une échelle et un décalage à son entrée. === scarakins (((scarakins))) Cinématique des robots de type SCARA. === select8 (((select8))) Détecteur de coïncidence binaire sur 8 bits. === serport (((serport))) Pilote matériel pour les circuits d'entrées/sorties digitales de port série 8250 et 16550. === siggen (((siggen))) Générateur de signal, voir <> === sim_encoder (((sim_encoder))) Codeur en quadrature simulé, voir <> === sphereprobe (((sphereprobe))) Sonde hémisphérique. === stepgen (((stepgen))) Générateur d'impulsions de pas logiciel, voir <> === steptest (((steptest))) Utilisé par Stepconf pour permettre de tester les valeurs d'accélération et de vitesse d'un axe. === streamer (((streamer))) Flux temps réel depuis un fichier vers HAL. === sum2 (((sum2))) Somme de deux entrées, chacune avec un gain, et d'un offset. === sum2 (((sum2))) (obsolète) Fixe les broches de sortie avec une valeurs de paramètres (obsolète). === thc Contrôle de la hauteur de torche, en utilisant une carte Mesa THC. === threads (((threads))) Crée des threads de HAL temps réel. === threadtest (((threadtest))) Composant de HAL pour tester le comportement des threads. === time (((time))) Compteur de temps écoulé HH:MM:SS avec entrée *actif*. === timedelay (((timedelay))) L'équivalent d'un relais temporisé. === timedelta (((timedelta))) Composant pour mesurer le comportement temporel des threads. === toggle2nist (((toggle2nist))) Bouton à bascule pour logique NIST. === toggle (((toggle))) Bouton à bascule NO/NF à partir d'un bouton poussoir momentané. === tripodkins (((tripodkins))) Les articulations représentent la distance du point contrôlé à partir de trois emplacements prédéfinis (les moteurs), ce qui donne trois degrés de liberté en position (XYZ). === tristate_bit (((tristate_bit))) Place un signal sur une pin d'I/O seulement quand elle est validée, similaire à un tampon trois états en électronique. === tristate_float (((tristate_float))) Place un signal sur une pin d'I/O seulement quand elle est validée, similaire à un tampon trois états en électronique. === trivkins (((trivkins))) Il y a une correspondance 1:1 entre les articulations et les axes. La plupart des fraiseuses standard et des tours utilisent ce module de cinématique triviale. === updown (((updown))) Compteur/décompteur avec limites optionnelles et bouclage en cas de dépassement. === watchdog (((watchdog))) Moniteur de fréquence (chien de garde) sur 1 à 32 entrées. === wcomp (((wcomp))) Comparateur à fenêtre. === weighted_sum (((weighted_sum))) Converti un groupe de bits en un entier. === xor2 (((xor2))) Porte XOR (OU exclusif) à deux entrées. == HAL et RTAPI (liste de la section 3 des man pages) Comme nous venons de donner une liste des pages man 1 et man 9, pour être exhaustif voici maintenant une liste des pages man 3. Peut-être que certains des fichiers sont à nettoyer et n'ont pas vraiment leur place ici, ça devrait probablement être fixé ultérieurement. Considérer cette liste comme un *Fix Me*, ou une liste des *à faire*. Quoi qu'il en soit, voici cette liste: EXPORT_FUNCTION.3rtapi + hal_add_funct_to_thread.3hal + hal_bit_t.3hal + hal_create_thread.3hal + hal_del_funct_from_thread.3hal + hal_exit.3hal + hal_export_funct.3hal + hal_float_t.3hal + hal_get_lock.3hal + hal_init.3hal + hal_link.3hal + hal_malloc.3hal + hal_param_bit_new.3hal + hal_param_bit_newf.3hal + hal_param_float_new.3hal + hal_param_float_newf.3hal + hal_param_new.3hal + hal_param_s32_new.3hal + hal_param_s32_newf.3hal + hal_param_u32_new.3hal + hal_param_u32_newf.3hal + hal_parport.3hal + hal_pin_bit_new.3hal + hal_pin_bit_newf.3hal + hal_pin_float_new.3hal + hal_pin_float_newf.3hal + hal_pin_new.3hal + hal_pin_s32_new.3hal + hal_pin_s32_newf.3hal + hal_pin_u32_new.3hal + hal_pin_u32_newf.3hal + hal_ready.3hal + hal_s32_t.3hal + hal_set_constructor.3hal + hal_set_lock.3hal + hal_signal_delete.3hal + hal_signal_new.3hal + hal_start_threads.3hal + hal_type_t.3hal + hal_u32_t.3hal + hal_unlink.3hal + intro.3hal + intro.3rtapi + MODULE_AUTHOR.3rtapi + MODULE_DESCRIPTION.3rtapi + MODULE_LICENSE.3rtapi + PM_ROTATION_VECTOR.3 + rtapi_app_exit.3rtapi + rtapi_app_main.3rtapi + rtapi_clock_set_period.3rtapi + rtapi_delay.3rtapi + rtapi_delay_max.3rtapi + rtapi_exit.3rtapi + rtapi_get_clocks.3rtapi + rtapi_get_msg_level.3rtapi + rtapi_get_time.3rtapi + rtapi_inb.3rtapi + rtapi_init.3rtapi + rtapi_module_param.3rtapi + RTAPI_MP_ARRAY_INT.3rtapi + RTAPI_MP_ARRAY_LONG.3rtapi + RTAPI_MP_ARRAY_STRING.3rtapi + RTAPI_MP_INT.3rtapi + RTAPI_MP_LONG.3rtapi + RTAPI_MP_STRING.3rtapi + rtapi_mutex.3rtapi + rtapi_outb.3rtapi + rtapi_print.3rtapi + rtapi_prio.3rtapi + rtapi_prio_highest.3rtapi + rtapi_prio_lowest.3rtapi + rtapi_prio_next_higher.3rtapi + rtapi_prio_next_lower.3rtapi + rtapi_region.3rtapi + rtapi_release_region.3rtapi + rtapi_request_region.3rtapi + rtapi_set_msg_level.3rtapi + rtapi_shmem.3rtapi + rtapi_shmem_delete.3rtapi + rtapi_shmem_getptr.3rtapi + rtapi_shmem_new.3rtapi + rtapi_snprintf.3rtapi + rtapi_task_delete.3rtpi + rtapi_task_new.3rtapi + rtapi_task_pause.3rtapi + rtapi_task_resume.3rtapi + rtapi_task_start.3rtapi + rtapi_task_wait.3rtapi + skeleton.3hal + skeleton.3rtapi + undocumented.3hal + undocumented.3rtapi +