Groupes d'indicateurs d'événement :services publics et structures de données
Voir la série RTOS Revealed
Cet article poursuit l'examen des groupes d'indicateurs d'événement.
Services utilitaires de groupe d'indicateurs d'événement
Nucleus RTOS dispose de trois appels d'API qui fournissent des fonctions utilitaires associées aux groupes d'indicateurs d'événement :renvoient des informations sur un groupe, renvoient le nombre de groupes d'indicateurs d'événement dans l'application et renvoient des pointeurs vers tous les groupes de l'application. Les deux premiers d'entre eux sont implémentés dans Nucleus SE.
Informations sur le groupe d'indicateurs d'événement
Cet appel de service obtient une sélection d'informations sur un groupe d'indicateurs d'événement. L'implémentation Nucleus SE diffère de Nucleus RTOS en ce qu'elle renvoie moins d'informations, car la dénomination des objets et l'ordre de suspension ne sont pas pris en charge et la suspension des tâches peut ne pas être activée.
Appel API Nucleus RTOS pour informations sur les groupes d'événements
Prototype d'appel de service :
STATUS NU_Event_Group_Information(NU_EVENT_GROUP *groupe,
CHAR *nom, UNSIGNED *même t_flags, UNSIGNED *tasks_waiting,
NU_TASK **first_task );
Paramètres :
groupe – pointeur vers le bloc de contrôle de groupe d'indicateurs d'événement fourni par l'utilisateur
nom – pointeur vers une zone de destination de 8 caractères pour le nom du groupe d'indicateurs d'événement ; cela inclut l'espace pour le terminateur nul
event_flags – un pointeur vers une variable, qui recevra la valeur actuelle du groupe d'indicateurs d'événement spécifié
tasks_waiting – un pointeur vers une variable qui recevra le nombre de tâches suspendues sur ce groupe d'indicateur d'événement
first_task – un pointeur vers une variable de type NU_TASK qui recevra un pointeur vers la première tâche suspendue
Retours :
NU_SUCCESS – l'appel s'est terminé avec succès
NU_INVALID_GROUP – le pointeur de groupe d'indicateurs d'événement n'est pas valide
Appel API Nucleus SE pour informations sur les groupes d'événements
Cet appel d'API prend en charge la fonctionnalité clé de l'API Nucleus RTOS.
Prototype d'appel de service :
STATUS NUSE_Event_Group_Information(groupe NUSE_EVENT_GROUP,
U8 *event_flags, U8 *tasks_waiting, NUSE_TASK *first_task) ;
Paramètres :
groupe – l'index du groupe d'indicateurs d'événement sur lequel des informations sont demandées
event_flags – un pointeur vers une variable, qui recevra la valeur actuelle du groupe d'indicateurs d'événement spécifié
tasks_waiting – un pointeur vers une variable qui recevra le nombre de tâches suspendues sur ce groupe d'indicateurs d'événement (rien n'est renvoyé si la suspension de tâche est désactivée)
first_task – un pointeur vers une variable de type NUSE_TASK qui recevra l'index de la première tâche suspendue (rien de renvoyé si la suspension de tâche est désactivée)
Retours :
NUSE_SUCCESS – l'appel s'est terminé avec succès
NUSE_INVALID_GROUP – l'index du groupe d'indicateurs d'événement n'est pas valide
Implémentation Nucleus SE des informations de groupe d'événements
La mise en œuvre de cet appel d'API est assez simple :
*event_flags =NUSE_Event_Group_Data[groupe] ; #if NUSE_BLOCKING_ENABLE *tasks_waiting =NUSE_Event_Group_Blocking_Count[groupe] ; if (NUSE_Event_Group_Blocking_Count[groupe] !=0) { indice U8 ; pour (index=0; indexLa fonction renvoie la valeur du groupe d'indicateurs d'événement. Ensuite, si le blocage des appels API est activé, le nombre de tâches en attente et l'index de la première sont renvoyés (sinon ces deux paramètres sont mis à 0).
Obtention du nombre de groupes d'indicateurs d'événement
Cet appel de service renvoie le nombre de groupes d'indicateurs d'événement configurés dans l'application. Alors que dans Nucleus RTOS, cela variera dans le temps et que la valeur renvoyée représentera le nombre actuel de groupes, dans Nucleus SE, la valeur renvoyée est définie au moment de la construction et ne peut pas changer.
Appel d'API Nucleus RTOS pour le nombre de groupes d'indicateurs d'événement
Prototype d'appel de service :
UNSIGNED NU_Established_Event_Groups (VOID) ;
Paramètres :
Aucun
Retours :
Le nombre actuel de groupes d'indicateurs d'événement créés dans l'application
Appel de l'API Nucleus SE pour le nombre de groupes d'indicateurs d'événement
Cet appel d'API prend en charge la fonctionnalité clé de l'API Nucleus RTOS.
Prototype d'appel de service :
U8 NUSE_Event_Group_Count(void);
Paramètres :
Aucun
Retours :
Le nombre de groupes d'indicateurs d'événement configurés dans l'application
Implémentation de Nucleus SE du nombre de groupes d'indicateurs d'événement
La mise en œuvre de cet appel d'API est presque trivialement simple :la valeur du #define symbole NUSE_EVENT_GROUP_NUMBER est renvoyé.
Sémaphores :introduction et services de base Groupes d'indicateurs d'événement :introduction et services de base
Embarqué
- Les avantages et les inconvénients du cloud par rapport aux services internes
- Services de gestion de données et de jetons Blockchain Microsoft Azure
- Structures et classes en C++
- Boîtes aux lettres :présentation et services de base
- Sémaphores :services utilitaires et structures de données
- Sémaphores :introduction et services de base
- Groupes d'indicateurs d'événement :introduction et services de base
- Files d'attente :introduction et services de base
- Apacer :lancement des cartes CV110-SD et CV110-MSD dans le monde