F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
FpConfig.h File Reference

C-compatible configuration header for fprime configuration. More...

Go to the source code of this file.

Macros

#define FPCONFIG_H_
 
#define PRI_FwIndexType   PRI_PlatformIndexType
 
#define PRI_FwSignedSizeType   PRI_PlatformSignedSizeType
 
#define PRI_FwSizeType   PRI_PlatformSizeType
 
#define PRI_FwAssertArgType   PRI_PlatformAssertArgType
 
#define PRI_FwNativeIntType   PRI_PlatformIntType
 
#define PRI_FwNativeUIntType   PRI_PlatformUIntType
 
#define PRI_FwSizeStoreType   PRIu16
 
#define PRI_FwEnumStoreType   PRId32
 
#define FW_CONTEXT_DONT_CARE   0xFF
 Don't care value for time contexts in sequences. More...
 
#define PRI_FwTimeBaseStoreType   PRIu16
 
#define PRI_FwTimeContextStoreType   PRIu8
 
#define PRI_FwPacketDescriptorType   PRIu32
 
#define PRI_FwOpcodeType   PRIu32
 
#define PRI_FwChanIdType   PRIu32
 
#define PRI_FwEventIdType   PRIu32
 
#define PRI_FwPrmIdType   PRIu32
 
#define PRI_FwTlmPacketizeIdType   PRIu16
 
#define PRI_FwQueuePriorityType   PRId32
 
#define PRI_FwDpIdType   PRIu32
 
#define PRI_FwDpPriorityType   PRIu32
 
#define PRI_FwQueueSizeType   PRI_FwIndexType
 
#define FW_SERIALIZE_TRUE_VALUE   (0xFF)
 Value encoded during serialization for boolean true. More...
 
#define FW_SERIALIZE_FALSE_VALUE   (0x00)
 Value encoded during serialization for boolean false. More...
 
#define FW_OBJECT_NAMES    1
 Indicates whether or not object names are stored (more memory, can be used for tracking objects) More...
 
#define FW_OPTIONAL_NAME(name)   name
 
#define FW_OBJECT_TO_STRING    1
 Indicates whether or not generated objects have toString() methods to dump internals (more code) More...
 
#define FW_OBJECT_REGISTRATION    1
 Indicates whether or not objects can register themselves (more code, more object tracking) More...
 
#define FW_QUEUE_REGISTRATION   1
 Indicates whether or not queue registration is used. More...
 
#define FW_BAREMETAL_SCHEDULER    0
 Indicates whether or not a baremetal scheduler should be used. Alternatively the Os scheduler is used. More...
 
#define FW_PORT_TRACING   1
 Indicates whether port calls are traced (more code, more visibility into execution) More...
 
#define FW_PORT_SERIALIZATION    1
 for multi-note systems) More...
 
#define FW_SERIALIZATION_TYPE_ID    0
 Indicates if type id is stored when type is serialized. (More storage, but more type safety) More...
 
#define FW_ASSERT_DFL_MSG_LEN   256
 Maximum assert message length when using the default assert handler. More...
 
#define FW_ASSERT_LEVEL   FW_FILENAME_ASSERT
 Defines the type of assert used. More...
 
#define FW_ASSERT_TEXT_SIZE   256
 Size of string used to store assert description. More...
 
#define FW_OBJ_NAME_BUFFER_SIZE    80
 Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80. More...
 
#define FW_OBJ_SIMPLE_REG_ENTRIES   500
 Number of objects stored in simple object registry. More...
 
#define FW_OBJ_SIMPLE_REG_BUFF_SIZE   255
 Size of object registry dump string. More...
 
#define FW_QUEUE_SIMPLE_QUEUE_ENTRIES   100
 Number of queues stored in simple queue registry. More...
 
#define FW_QUEUE_NAME_BUFFER_SIZE   80
 Max size of message queue name. More...
 
#define FW_TASK_NAME_BUFFER_SIZE   80
 Max size of task name. More...
 
#define FW_COM_BUFFER_MAX_SIZE   512
 
#define FW_CMD_ARG_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwOpcodeType) - sizeof(FwPacketDescriptorType))
 
#define FW_CMD_STRING_MAX_SIZE   40
 Max character size of command string arguments. More...
 
#define FW_CMD_CHECK_RESIDUAL   1
 Check for leftover command bytes. More...
 
#define FW_LOG_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwEventIdType) - sizeof(FwPacketDescriptorType))
 
#define FW_LOG_STRING_MAX_SIZE   200
 Max size of log string parameter type. More...
 
#define FW_TLM_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwChanIdType) - sizeof(FwPacketDescriptorType))
 
#define FW_TLM_STRING_MAX_SIZE   40
 Max size of channelized telemetry string type. More...
 
#define FW_PARAM_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwPrmIdType) - sizeof(FwPacketDescriptorType))
 
#define FW_PARAM_STRING_MAX_SIZE   40
 Max size of parameter string type. More...
 
#define FW_FILE_BUFFER_MAX_SIZE   255
 Max size of file buffer (i.e. chunk of file) More...
 
#define FW_INTERNAL_INTERFACE_STRING_MAX_SIZE   256
 Max size of interface string parameter type. More...
 
#define FW_ENABLE_TEXT_LOGGING   1
 Indicates whether text logging is turned on. More...
 
#define FW_LOG_TEXT_BUFFER_SIZE   256
 Max size of string for text log message. More...
 
#define FW_SERIALIZABLE_TO_STRING   1
 Indicates if autocoded serializables have toString() methods. More...
 
#define FW_AMPCS_COMPATIBLE   0
 Whether or not JPL AMPCS ground system support is enabled. More...
 
#define FW_USE_TIME_BASE   1
 Whether or not to use the time base. More...
 
#define FW_USE_TIME_CONTEXT   1
 Whether or not to serialize the time context. More...
 
#define FW_FIXED_LENGTH_STRING_SIZE   256
 Character array size for Fw::String. More...
 
#define FW_HANDLE_MAX_SIZE   24
 Maximum size of a handle for OS resources (files, queues, locks, etc.) More...
 
#define FW_HANDLE_ALIGNMENT   16
 Alignment of handle storage. More...
 
#define FW_FILE_CHUNK_SIZE   512
 Chunk size for working with files. More...
 
#define PRI_FwBuffSizeType   PRI_FwSizeStoreType
 

Typedefs

typedef PlatformIndexType FwIndexType
 
typedef PlatformSignedSizeType FwSignedSizeType
 
typedef PlatformSizeType FwSizeType
 
typedef PlatformAssertArgType FwAssertArgType
 
typedef PlatformIntType FwNativeIntType
 
typedef PlatformUIntType FwNativeUIntType
 
typedef U16 FwSizeStoreType
 
typedef I32 FwEnumStoreType
 
typedef U16 FwTimeBaseStoreType
 
typedef U8 FwTimeContextStoreType
 
typedef U32 FwPacketDescriptorType
 
typedef U32 FwOpcodeType
 
typedef U32 FwChanIdType
 
typedef U32 FwEventIdType
 
typedef U32 FwPrmIdType
 
typedef U16 FwTlmPacketizeIdType
 
typedef I32 FwQueuePriorityType
 
typedef U32 FwDpIdType
 
typedef U32 FwDpPriorityType
 
typedef FwIndexType FwQueueSizeType
 
typedef FwSizeStoreType FwBuffSizeType
 

Enumerations

enum  TimeBase { TB_NONE , TB_PROC_TIME , TB_WORKSTATION_TIME , TB_DONT_CARE }
 

Detailed Description

C-compatible configuration header for fprime configuration.

Author
T. Canham, mstarch

Definition in file FpConfig.h.

Macro Definition Documentation

◆ FPCONFIG_H_

#define FPCONFIG_H_

Definition at line 13 of file FpConfig.h.

◆ FW_AMPCS_COMPATIBLE

#define FW_AMPCS_COMPATIBLE   0

Whether or not JPL AMPCS ground system support is enabled.

Definition at line 351 of file FpConfig.h.

◆ FW_ASSERT_DFL_MSG_LEN

#define FW_ASSERT_DFL_MSG_LEN   256

Maximum assert message length when using the default assert handler.

Definition at line 216 of file FpConfig.h.

◆ FW_ASSERT_LEVEL

#define FW_ASSERT_LEVEL   FW_FILENAME_ASSERT

Defines the type of assert used.

Definition at line 218 of file FpConfig.h.

◆ FW_ASSERT_TEXT_SIZE

#define FW_ASSERT_TEXT_SIZE   256

Size of string used to store assert description.

Definition at line 224 of file FpConfig.h.

◆ FW_BAREMETAL_SCHEDULER

#define FW_BAREMETAL_SCHEDULER    0

Indicates whether or not a baremetal scheduler should be used. Alternatively the Os scheduler is used.

Definition at line 171 of file FpConfig.h.

◆ FW_CMD_ARG_BUFFER_MAX_SIZE

#define FW_CMD_ARG_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwOpcodeType) - sizeof(FwPacketDescriptorType))

Definition at line 274 of file FpConfig.h.

◆ FW_CMD_CHECK_RESIDUAL

#define FW_CMD_CHECK_RESIDUAL   1

Check for leftover command bytes.

Definition at line 289 of file FpConfig.h.

◆ FW_CMD_STRING_MAX_SIZE

#define FW_CMD_STRING_MAX_SIZE   40

Max character size of command string arguments.

Definition at line 279 of file FpConfig.h.

◆ FW_COM_BUFFER_MAX_SIZE

#define FW_COM_BUFFER_MAX_SIZE   512

Definition at line 268 of file FpConfig.h.

◆ FW_CONTEXT_DONT_CARE

#define FW_CONTEXT_DONT_CARE   0xFF

Don't care value for time contexts in sequences.

Definition at line 63 of file FpConfig.h.

◆ FW_ENABLE_TEXT_LOGGING

#define FW_ENABLE_TEXT_LOGGING   1

Indicates whether text logging is turned on.

Definition at line 335 of file FpConfig.h.

◆ FW_FILE_BUFFER_MAX_SIZE

#define FW_FILE_BUFFER_MAX_SIZE   255

Max size of file buffer (i.e. chunk of file)

Definition at line 325 of file FpConfig.h.

◆ FW_FILE_CHUNK_SIZE

#define FW_FILE_CHUNK_SIZE   512

Chunk size for working with files.

Definition at line 382 of file FpConfig.h.

◆ FW_FIXED_LENGTH_STRING_SIZE

#define FW_FIXED_LENGTH_STRING_SIZE   256

Character array size for Fw::String.

Definition at line 368 of file FpConfig.h.

◆ FW_HANDLE_ALIGNMENT

#define FW_HANDLE_ALIGNMENT   16

Alignment of handle storage.

Definition at line 378 of file FpConfig.h.

◆ FW_HANDLE_MAX_SIZE

#define FW_HANDLE_MAX_SIZE   24

Maximum size of a handle for OS resources (files, queues, locks, etc.)

Definition at line 374 of file FpConfig.h.

◆ FW_INTERNAL_INTERFACE_STRING_MAX_SIZE

#define FW_INTERNAL_INTERFACE_STRING_MAX_SIZE   256

Max size of interface string parameter type.

Definition at line 330 of file FpConfig.h.

◆ FW_LOG_BUFFER_MAX_SIZE

#define FW_LOG_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwEventIdType) - sizeof(FwPacketDescriptorType))

Definition at line 294 of file FpConfig.h.

◆ FW_LOG_STRING_MAX_SIZE

#define FW_LOG_STRING_MAX_SIZE   200

Max size of log string parameter type.

Definition at line 300 of file FpConfig.h.

◆ FW_LOG_TEXT_BUFFER_SIZE

#define FW_LOG_TEXT_BUFFER_SIZE   256

Max size of string for text log message.

Definition at line 340 of file FpConfig.h.

◆ FW_OBJ_NAME_BUFFER_SIZE

#define FW_OBJ_NAME_BUFFER_SIZE    80

Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80.

Definition at line 233 of file FpConfig.h.

◆ FW_OBJ_SIMPLE_REG_BUFF_SIZE

#define FW_OBJ_SIMPLE_REG_BUFF_SIZE   255

Size of object registry dump string.

Definition at line 245 of file FpConfig.h.

◆ FW_OBJ_SIMPLE_REG_ENTRIES

#define FW_OBJ_SIMPLE_REG_ENTRIES   500

Number of objects stored in simple object registry.

Definition at line 240 of file FpConfig.h.

◆ FW_OBJECT_NAMES

#define FW_OBJECT_NAMES    1

Indicates whether or not object names are stored (more memory, can be used for tracking objects)

Definition at line 136 of file FpConfig.h.

◆ FW_OBJECT_REGISTRATION

#define FW_OBJECT_REGISTRATION    1

Indicates whether or not objects can register themselves (more code, more object tracking)

Definition at line 162 of file FpConfig.h.

◆ FW_OBJECT_TO_STRING

#define FW_OBJECT_TO_STRING    1

Indicates whether or not generated objects have toString() methods to dump internals (more code)

Definition at line 152 of file FpConfig.h.

◆ FW_OPTIONAL_NAME

#define FW_OPTIONAL_NAME (   name)    name

Definition at line 142 of file FpConfig.h.

◆ FW_PARAM_BUFFER_MAX_SIZE

#define FW_PARAM_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwPrmIdType) - sizeof(FwPacketDescriptorType))

Definition at line 315 of file FpConfig.h.

◆ FW_PARAM_STRING_MAX_SIZE

#define FW_PARAM_STRING_MAX_SIZE   40

Max size of parameter string type.

Definition at line 320 of file FpConfig.h.

◆ FW_PORT_SERIALIZATION

#define FW_PORT_SERIALIZATION    1

for multi-note systems)

Indicates whether there is code in ports to serialize the call (more code, but ability to serialize calls

Definition at line 185 of file FpConfig.h.

◆ FW_PORT_TRACING

#define FW_PORT_TRACING   1

Indicates whether port calls are traced (more code, more visibility into execution)

Definition at line 178 of file FpConfig.h.

◆ FW_QUEUE_NAME_BUFFER_SIZE

#define FW_QUEUE_NAME_BUFFER_SIZE   80

Max size of message queue name.

Definition at line 258 of file FpConfig.h.

◆ FW_QUEUE_REGISTRATION

#define FW_QUEUE_REGISTRATION   1

Indicates whether or not queue registration is used.

Definition at line 166 of file FpConfig.h.

◆ FW_QUEUE_SIMPLE_QUEUE_ENTRIES

#define FW_QUEUE_SIMPLE_QUEUE_ENTRIES   100

Number of queues stored in simple queue registry.

Definition at line 252 of file FpConfig.h.

◆ FW_SERIALIZABLE_TO_STRING

#define FW_SERIALIZABLE_TO_STRING   1

Indicates if autocoded serializables have toString() methods.

Definition at line 346 of file FpConfig.h.

◆ FW_SERIALIZATION_TYPE_ID

#define FW_SERIALIZATION_TYPE_ID    0

Indicates if type id is stored when type is serialized. (More storage, but more type safety)

Definition at line 198 of file FpConfig.h.

◆ FW_SERIALIZE_FALSE_VALUE

#define FW_SERIALIZE_FALSE_VALUE   (0x00)

Value encoded during serialization for boolean false.

Definition at line 130 of file FpConfig.h.

◆ FW_SERIALIZE_TRUE_VALUE

#define FW_SERIALIZE_TRUE_VALUE   (0xFF)

Value encoded during serialization for boolean true.

Definition at line 126 of file FpConfig.h.

◆ FW_TASK_NAME_BUFFER_SIZE

#define FW_TASK_NAME_BUFFER_SIZE   80

Max size of task name.

Definition at line 263 of file FpConfig.h.

◆ FW_TLM_BUFFER_MAX_SIZE

#define FW_TLM_BUFFER_MAX_SIZE   (FW_COM_BUFFER_MAX_SIZE - sizeof(FwChanIdType) - sizeof(FwPacketDescriptorType))

Definition at line 305 of file FpConfig.h.

◆ FW_TLM_STRING_MAX_SIZE

#define FW_TLM_STRING_MAX_SIZE   40

Max size of channelized telemetry string type.

Definition at line 310 of file FpConfig.h.

◆ FW_USE_TIME_BASE

#define FW_USE_TIME_BASE   1

Whether or not to use the time base.

Definition at line 358 of file FpConfig.h.

◆ FW_USE_TIME_CONTEXT

#define FW_USE_TIME_CONTEXT   1

Whether or not to serialize the time context.

Definition at line 362 of file FpConfig.h.

◆ PRI_FwAssertArgType

#define PRI_FwAssertArgType   PRI_PlatformAssertArgType

Definition at line 35 of file FpConfig.h.

◆ PRI_FwBuffSizeType

#define PRI_FwBuffSizeType   PRI_FwSizeStoreType

Definition at line 390 of file FpConfig.h.

◆ PRI_FwChanIdType

#define PRI_FwChanIdType   PRIu32

Definition at line 83 of file FpConfig.h.

◆ PRI_FwDpIdType

#define PRI_FwDpIdType   PRIu32

Definition at line 103 of file FpConfig.h.

◆ PRI_FwDpPriorityType

#define PRI_FwDpPriorityType   PRIu32

Definition at line 107 of file FpConfig.h.

◆ PRI_FwEnumStoreType

#define PRI_FwEnumStoreType   PRId32

Definition at line 52 of file FpConfig.h.

◆ PRI_FwEventIdType

#define PRI_FwEventIdType   PRIu32

Definition at line 87 of file FpConfig.h.

◆ PRI_FwIndexType

#define PRI_FwIndexType   PRI_PlatformIndexType

Definition at line 21 of file FpConfig.h.

◆ PRI_FwNativeIntType

#define PRI_FwNativeIntType   PRI_PlatformIntType

Definition at line 39 of file FpConfig.h.

◆ PRI_FwNativeUIntType

#define PRI_FwNativeUIntType   PRI_PlatformUIntType

Definition at line 43 of file FpConfig.h.

◆ PRI_FwOpcodeType

#define PRI_FwOpcodeType   PRIu32

Definition at line 79 of file FpConfig.h.

◆ PRI_FwPacketDescriptorType

#define PRI_FwPacketDescriptorType   PRIu32

Definition at line 75 of file FpConfig.h.

◆ PRI_FwPrmIdType

#define PRI_FwPrmIdType   PRIu32

Definition at line 91 of file FpConfig.h.

◆ PRI_FwQueuePriorityType

#define PRI_FwQueuePriorityType   PRId32

Definition at line 99 of file FpConfig.h.

◆ PRI_FwQueueSizeType

#define PRI_FwQueueSizeType   PRI_FwIndexType

Definition at line 118 of file FpConfig.h.

◆ PRI_FwSignedSizeType

#define PRI_FwSignedSizeType   PRI_PlatformSignedSizeType

Definition at line 26 of file FpConfig.h.

◆ PRI_FwSizeStoreType

#define PRI_FwSizeStoreType   PRIu16

Definition at line 47 of file FpConfig.h.

◆ PRI_FwSizeType

#define PRI_FwSizeType   PRI_PlatformSizeType

Definition at line 31 of file FpConfig.h.

◆ PRI_FwTimeBaseStoreType

#define PRI_FwTimeBaseStoreType   PRIu16

Definition at line 67 of file FpConfig.h.

◆ PRI_FwTimeContextStoreType

#define PRI_FwTimeContextStoreType   PRIu8

Definition at line 71 of file FpConfig.h.

◆ PRI_FwTlmPacketizeIdType

#define PRI_FwTlmPacketizeIdType   PRIu16

Definition at line 95 of file FpConfig.h.

Typedef Documentation

◆ FwAssertArgType

Definition at line 34 of file FpConfig.h.

◆ FwBuffSizeType

Definition at line 389 of file FpConfig.h.

◆ FwChanIdType

typedef U32 FwChanIdType

Definition at line 82 of file FpConfig.h.

◆ FwDpIdType

typedef U32 FwDpIdType

Definition at line 102 of file FpConfig.h.

◆ FwDpPriorityType

typedef U32 FwDpPriorityType

Definition at line 106 of file FpConfig.h.

◆ FwEnumStoreType

typedef I32 FwEnumStoreType

Definition at line 51 of file FpConfig.h.

◆ FwEventIdType

typedef U32 FwEventIdType

Definition at line 86 of file FpConfig.h.

◆ FwIndexType

Definition at line 20 of file FpConfig.h.

◆ FwNativeIntType

Definition at line 38 of file FpConfig.h.

◆ FwNativeUIntType

Definition at line 42 of file FpConfig.h.

◆ FwOpcodeType

typedef U32 FwOpcodeType

Definition at line 78 of file FpConfig.h.

◆ FwPacketDescriptorType

Definition at line 74 of file FpConfig.h.

◆ FwPrmIdType

typedef U32 FwPrmIdType

Definition at line 90 of file FpConfig.h.

◆ FwQueuePriorityType

typedef I32 FwQueuePriorityType

Definition at line 98 of file FpConfig.h.

◆ FwQueueSizeType

Definition at line 117 of file FpConfig.h.

◆ FwSignedSizeType

typedef PlatformSignedSizeType FwSignedSizeType

Definition at line 25 of file FpConfig.h.

◆ FwSizeStoreType

typedef U16 FwSizeStoreType

Definition at line 46 of file FpConfig.h.

◆ FwSizeType

Definition at line 30 of file FpConfig.h.

◆ FwTimeBaseStoreType

typedef U16 FwTimeBaseStoreType

Definition at line 66 of file FpConfig.h.

◆ FwTimeContextStoreType

Definition at line 70 of file FpConfig.h.

◆ FwTlmPacketizeIdType

typedef U16 FwTlmPacketizeIdType

Definition at line 94 of file FpConfig.h.

Enumeration Type Documentation

◆ TimeBase

enum TimeBase
Enumerator
TB_NONE 

No time base has been established.

TB_PROC_TIME 

Indicates time is processor cycle time. Not tied to external time.

TB_WORKSTATION_TIME 

Time as reported on workstation where software is running. For testing.

TB_DONT_CARE 

Don't care value for sequences. If FwTimeBaseStoreType is changed, value should be changed.

Definition at line 56 of file FpConfig.h.