Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Grupos de indicadores de eventos:servicios públicos y estructuras de datos


Ver la serie RTOS Revealed

Este artículo continúa analizando los grupos de banderas de eventos.

Servicios de utilidad de grupo de banderas de eventos

Nucleus RTOS tiene tres llamadas API que proporcionan funciones de utilidad asociadas con grupos de indicadores de eventos:devolver información sobre un grupo, devolver el número de grupos de indicadores de eventos en la aplicación y devolver punteros a todos los grupos de la aplicación. Los dos primeros se implementan en Nucleus SE.

Información del grupo de banderas de eventos

Esta llamada de servicio obtiene una selección de información sobre un grupo de indicadores de eventos. La implementación de Nucleus SE se diferencia de Nucleus RTOS en que devuelve menos información, ya que no se admiten la asignación de nombres de objetos y el orden de suspensión y es posible que la suspensión de tareas no esté habilitada.

Llamada a la API Nucleus RTOS para obtener información sobre el grupo de eventos

Prototipo de llamada de servicio:

STATUS NU_Event_Group_Information (NU_EVENT_GROUP * grupo,
CHAR * nombre, SIN FIRMAR * par
t_flags, UNSIGNED * tasks_waiting,
NU_TASK ** first_task);

Parámetros:

grupo - puntero al bloque de control del grupo de banderas de eventos proporcionado por el usuario

nombre - puntero a un área de destino de 8 caracteres para el nombre del grupo de banderas de eventos; esto incluye espacio para el terminador nulo

event_flags - un puntero a una variable, que recibirá el valor actual del grupo de banderas de eventos especificado

tareas_en espera - un puntero a una variable que recibirá el número de tareas suspendidas en este grupo de banderas de eventos

primera_tarea - un puntero a una variable de tipo NU_TASK que recibirá un puntero a la primera tarea suspendida

Devoluciones:

NU_SUCCESS - la llamada se completó con éxito

NU_INVALID_GROUP - el puntero del grupo de banderas de eventos no es válido

Llamada a la API de Nucleus SE para obtener información sobre el grupo de eventos

Esta llamada a la API admite la funcionalidad clave de la API Nucleus RTOS.

Prototipo de llamada de servicio:

STATUS NUSE_Event_Group_Information (grupo NUSE_EVENT_GROUP,
U8 * event_flags, U8 * tasks_waiting, NUSE_TASK * first_task);

Parámetros:

grupo - el índice del grupo de banderas de eventos sobre el que se solicita información

event_flags - un puntero a una variable, que recibirá el valor actual del grupo de banderas de eventos especificado

tareas_en espera - un puntero a una variable que recibirá el número de tareas suspendidas en este grupo de banderas de eventos (no se devuelve nada si la suspensión de tareas está deshabilitada)

primera_tarea - un puntero a una variable de tipo NUSE_TASK que recibirá el índice de la primera tarea suspendida (no se devuelve nada si la suspensión de la tarea está deshabilitada)

Devoluciones:

NUSE_SUCCESS - la llamada se completó con éxito

NUSE_INVALID_GROUP - el índice del grupo de banderas de eventos no es válido

Implementación de Nucleus SE de la información del grupo de eventos

La implementación de esta llamada a la API es bastante sencilla:

 * event_flags =NUSE_Event_Group_Data [grupo]; #if NUSE_BLOCKING_ENABLE * tasks_waiting =NUSE_Event_Group_Blocking_Count [grupo]; if (NUSE_Event_Group_Blocking_Count [grupo]! =0) {índice U8; for (index =0; index  

La función devuelve el valor del grupo de banderas de eventos. Luego, si el bloqueo de llamadas a la API está habilitado, se devuelve el número de tareas en espera y el índice de la primera (de lo contrario, estos dos parámetros se establecen en 0).

Obtención de la cantidad de grupos de indicadores de eventos

Esta llamada de servicio devuelve el número de grupos de indicadores de eventos configurados en la aplicación. Mientras que en Nucleus RTOS esto variará con el tiempo y el valor devuelto representará el número actual de grupos, en Nucleus SE el valor devuelto se establece en el momento de la compilación y no puede cambiar.

Llamada a la API Nucleus RTOS para recuento de grupos de indicadores de eventos

Prototipo de llamada de servicio:

UNSIGNED NU_Established_Event_Groups (VOID);

Parámetros:

Ninguno

Devoluciones:

El número actual de grupos de indicadores de eventos creados en la aplicación

Llamada a la API de Nucleus SE para el recuento de grupos de indicadores de eventos

Esta llamada a la API admite la funcionalidad clave de la API Nucleus RTOS.

Prototipo de llamada de servicio:

U8 NUSE_Event_Group_Count (void);

Parámetros:

Ninguno

Devoluciones:

El número de grupos de indicadores de eventos configurados en la aplicación

Implementación de Nucleus SE del recuento de grupos de indicadores de eventos

La implementación de esta llamada a la API es casi trivialmente simple:el valor de #define símbolo NUSE_EVENT_GROUP_NUMBER se devuelve.


Incrustado

  1. Ventajas y desventajas de los servicios en la nube frente a los servicios internos
  2. Servicios de gestión de datos y token de cadena de bloques de Microsoft Azure
  3. Estructuras y clases en C ++
  4. Buzones de correo:introducción y servicios básicos
  5. Semáforos:servicios públicos y estructuras de datos
  6. Semáforos:introducción y servicios básicos
  7. Grupos de indicadores de eventos:introducción y servicios básicos
  8. Colas:introducción y servicios básicos
  9. Apacer:Lanzamiento de las tarjetas CV110-SD y CV110-MSD en todo el mundo
  10. OpenHW Group creado y anuncia la familia CORE-V de núcleos de código abierto
  11. Swissbit:soluciones de seguridad basadas en hardware para proteger datos y dispositivos