Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

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; index 

La 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é.


Embarqué

  1. Les avantages et les inconvénients du cloud par rapport aux services internes
  2. Services de gestion de données et de jetons Blockchain Microsoft Azure
  3. Structures et classes en C++
  4. Boîtes aux lettres :présentation et services de base
  5. Sémaphores :services utilitaires et structures de données
  6. Sémaphores :introduction et services de base
  7. Groupes d'indicateurs d'événement :introduction et services de base
  8. Files d'attente :introduction et services de base
  9. Apacer :lancement des cartes CV110-SD et CV110-MSD dans le monde