Buffer (ARINC for PikeOS code)
A Buffer is used to transfer messages between processes within the same partition. Buffers must therefore always be scoped to partitions. The messages are queued in FIFO order. For more information see the ARINC SPECIFICATION 653P1-2, December 1, 2005.
A Buffer is created in the application startup code that is generated for each of the Partition Part's Application Parts. For example, using C:
/* Header File */
#include <apex_buffers.h>
...
extern BUFFER_ID_TYPE Buffer1_id;
/* Implementation File */
BUFFER_ID_TYPE Buffer1_id;
...
CREATE_BUFFER("Buffer1", 256,16, FIFO, &Buffer1_id, &rc);
ASSERT(rc == NO_ERROR);
Specify the MaxMessageSize, MaxNbMessages and QueuingDiscipline properties of the Buffer through its context menu: right-click the Buffer, point to ARINC 653, point to Set, and then click the appropriate command.
When shown on a Configuration Diagram, a Buffer's notation is as follows:
You can view all the Buffers in the model through the Buffer folder in the ARINC 653 Profile pane.
A Buffer is based on a UML Attribute.
The following sections provide information about how a Buffer is used in the model.
Shown on these diagrams
ARINC properties
• MaxMessageSize - generated as the maximum message size of the buffer in the application startup code. To set this property: right-click the Buffer, point to ARINC 653, point to Set, and then click MaxMessageSize.
• MaxNbMessages - generated as the maximum number of messages for the buffer in the application startup code. To set this property: right-click the Buffer, point to ARINC 653, point to Set, and then click MaxNbMessages.
• QueuingDiscipline - generated as the queuing discipline of the buffer in the application startup code. To set this property: right-click the Buffer, point to ARINC 653, point to Set, and then click QueuingDiscipline. Possible values are FIFO or PRIORITY.