diff --git a/docs/src/cfe_api.dox b/docs/src/cfe_api.dox index 33f4a8c45..412b18cee 100644 --- a/docs/src/cfe_api.dox +++ b/docs/src/cfe_api.dox @@ -1,6 +1,6 @@ /** \page cfeapi cFE Application Programmer's Interface (API) Reference -

Executive Services API

+ \section cfeapi_s1 Executive Services API -

Events Services API

+ \section cfeapi_s2 Events Services API -

File Services API

+ \section cfeapi_s3 File Services API -

Message API

+ \section cfeapi_s4 Message API -

Resource ID API

+ \section cfeapi_s5 Resource ID API -

Software Bus Services API

+ \section cfeapi_s6 Software Bus Services API -

Table Services API

+ \section cfeapi_s7 Table Services API -

Time Services API

+ \section cfeapi_s8 Time Services API For a description of the format in which this data is dumped, see #CFE_ES_AppInfo_t. - - Next: \ref cfeesugtasklist
- Prev: \ref cfeesugappreload
- Up To: \ref cfeesugappsrv **/ /** @@ -451,11 +402,6 @@
  • Application Name - The name of the Application the Task is associated with
    - - - Next: \ref cfeesugloadlibs
    - Prev: \ref cfeesugapplist
    - Up To: \ref cfeesugappsrv **/ /** @@ -468,10 +414,6 @@ startup scripts. The startup script delivered with the cFE (cfe_es_startup.scr) also has some detailed information about library routines. - - Next: \ref cfeesugfilesrv
    - Prev: \ref cfeesugtasklist
    - Up To: \ref cfeesugappsrv **/ /** @@ -479,10 +421,6 @@ ES provides minimal functionality to initialize, read, and write cfe File headers. - - Next: \ref cfeesugperfsrv
    - Prev: \ref cfeesugloadlibs
    - Up To: \ref cfeesugappsrv **/ /** @@ -509,10 +447,6 @@
  • \subpage cfeesugperfstop
  • \subpage cfeesugperfview
    - - Next: \ref cfeesugperftrig
    - Prev: \ref cfeesugfilesrv
    - Up To: \ref cfeesovr **/ /** @@ -527,10 +461,6 @@ If the trigger mask is set to all zeros, then the collection will begin immediately after the start command and continue until a stop command is received. In this case the buffer behaves in a 'circular' manner. - - Next: \ref cfeesugperfstart
    - Prev: \ref cfeesugperfsrv
    - Up To: \ref cfeesugperfsrv **/ /** @@ -545,10 +475,6 @@ Count' to zero. If this counter is zero, it is ok to send the start command. If any errors are encountered when the start command is received, the details will be displayed in an error event message. - - Next: \ref cfeesugperfstop
    - Prev: \ref cfeesugperftrig
    - Up To: \ref cfeesugperfsrv **/ /** @@ -566,10 +492,6 @@ then sleep for a short time to give tasks of lower priority a chance to run. The number of entries between delays, and the delay time is displayed in the debug event at the time the stop command is received. - - Next: \ref cfeesugperfview
    - Prev: \ref cfeesugperfstart
    - Up To: \ref cfeesugperfsrv **/ /** @@ -578,10 +500,6 @@ To view the performance data, the file created as a result of the stop command must be transferred to the ground and imported into a viewing tool. See https://github.com/nasa/perfutils-java as an example. - - Next: \ref cfeesugcdssrv
    - Prev: \ref cfeesugperfstop
    - Up To: \ref cfeesugperfsrv **/ /** @@ -626,10 +544,6 @@ The format of the CDS Registry Dump File is a cFE Standard File header (see #CFE_FS_Header_t) followed by one or more CDS Registry Dump File Records (see #CFE_ES_CDSRegDumpRec_t). - - Next: \ref cfeesugmempoolsrv
    - Prev: \ref cfeesugperfsrv
    - Up To: \ref cfeesovr **/ /** @@ -771,10 +685,6 @@ previously but are no longer being used
    - - Next: \ref cfeesugsyslogsrv
    - Prev: \ref cfeesugcdssrv
    - Up To: \ref cfeesovr **/ /** @@ -797,29 +707,18 @@ A count of the number of entries in the log is present in the ES housekeeping telemetry. - - Next: \ref cfeesugversion
    - Prev: \ref cfeesugmempoolsrv
    - Up To: \ref cfeesovr **/ /** \page cfeesugversion Version Identification Version information is reported at startup, and upon receipt of a No-op command - - Next: \ref cfeesugfaq
    - Prev: \ref cfeesugsyslogsrv
    - Up To: \ref cfeesovr **/ /** - \page cfeesugfaq Executive Services Frequently Asked Questions - - + \page cfeesugfaq Frequently Asked Questions about Executive Services - Prev: \ref cfeesugversion
    - Up To: \ref cfeesovr + None submitted **/ /** diff --git a/docs/src/cfe_evs.dox b/docs/src/cfe_evs.dox index 7fe668310..dbdce7248 100644 --- a/docs/src/cfe_evs.dox +++ b/docs/src/cfe_evs.dox @@ -81,10 +81,6 @@ and UART. Messages sent out of the message ports will be in ASCII text format. This is generally used for lab purposes. Note that the event mode (short or long) does affect the event message content sent out these message ports. - - - Next: \ref cfeevsuglog
    - Up To: \ref cfeevsovr **/ /** @@ -104,18 +100,13 @@ EVS provides a command in order to \link #CFE_EVS_CLEAR_LOG_CC clear the Local Event Log \endlink. -

    Local Event Log Mode

    + \section cfeevsuglog_s1 Local Event Log Mode EVS can be configured to control the Local Event Log to either discard or overwrite the contents of the log when it becomes full. If the mode is set to overwrite, the log is treated like a circular buffer, overwriting the oldest event message contained in the log first. This control is configured by default in the cfe_platform_cfg.h file but can be modified by \link #CFE_EVS_SET_LOG_MODE_CC a command \endlink. - - - Next: \ref cfeevsugmsgcntrl
    - Prev: \ref cfeevsugmsgformat
    - Up To: \ref cfeevsovr **/ /** @@ -125,7 +116,7 @@ EVS provides various commands in order to control the event messages that are generated as software bus messages. -

    Event Message Control - By Type

    + \section cfeevsugmsgcntrl_s1 Event Message Control - By Type The highest level of event message control that EVS provides is the ability to enable and disable event message types. As mentioned above, there are four event @@ -146,26 +137,26 @@ configuration parameter #CFE_PLATFORM_EVS_DEFAULT_TYPE_FLAG in the cfe_platform_cfg.h file specifies which event message types are enabled/disabled by default. -

    Event Message Control - By Application

    + \section cfeevsugmsgcntrl_s2 Event Message Control - By Application Commands are available to \link #CFE_EVS_ENABLE_APP_EVENTS_CC enable \endlink and \link #CFE_EVS_DISABLE_APP_EVENTS_CC disable \endlink the generation of event messages for a particular application. The result is that ALL event messages for the specified Application are affected (i.e. enabled or disabled). -

    Event Message Control - By Event Type for an Application

    + \section cfeevsugmsgcntrl_s3 Event Message Control - By Event Type for an Application EVS also provides the capability to \link #CFE_EVS_ENABLE_APP_EVENT_TYPE_CC enable \endlink / \link #CFE_EVS_DISABLE_APP_EVENT_TYPE_CC disable \endlink an event type for a particular application. Note that EVS provides the capability to affect multiple event types within one command using a bit mask. -

    Event Message Control - Individual Events

    + \section cfeevsugmsgcntrl_s4 Event Message Control - Individual Events There are two ways to control the generation of individual events depending on whether the application's event message has been registered with EVS or not. -

    Modifying a registered event message filter

    + \subsection cfeevsugmsgcntrl_s4_1 Modifying a registered event message filter When an application registers with EVS, the application has the option of specifying the events that it wants to register for filtering along with the @@ -183,7 +174,7 @@ to set the event message filter to the specified value in order to prevent flooding of the downlink. -

    Adding/Removing an event message for filtering

    + \subsection cfeevsugmsgcntrl_s4_2 Adding/Removing an event message for filtering Commands are also available to add filtering for those events that are not registered for filtering. Once an event is \link #CFE_EVS_ADD_EVENT_FILTER_CC registered for filtering \endlink, @@ -199,11 +190,6 @@ (i.e. unregister) an application's event message. Once it is removed, the event will no longer be filtered. Note that commands issued to disable events by event type, by application or by event type for an application are still valid and could affect this particular event. - - - Next: \ref cfeevsugmsgfilter
    - Prev: \ref cfeevsuglog
    - Up To: \ref cfeevsovr **/ /** @@ -323,10 +309,6 @@ See cfe_evs.h for predefined macro values which can be used for masks. - - Next: \ref cfeevsugregistry
    - Prev: \ref cfeevsugmsgcntrl
    - Up To: \ref cfeevsovr **/ /** @@ -346,11 +328,6 @@
  • Mask - Binary Filter mask value (see \ref cfeevsugmsgfilter for an explanation)
  • Count - Current number of times this Event ID has been issued by this Application
    - - - Next: \ref cfeevsugcounters
    - Prev: \ref cfeevsugmsgfilter
    - Up To: \ref cfeevsovr **/ /** @@ -373,11 +350,6 @@ then you won't know if the event was ever issued by an application. These counters are available by sending a command to \link #CFE_EVS_WRITE_APP_DATA_FILE_CC write the EVS Application Data \endlink and transferring the file to the ground. - - - Next: \ref cfeevsugresetctrs
    - Prev: \ref cfeevsugregistry
    - Up To: \ref cfeevsovr **/ /** @@ -396,11 +368,6 @@ Note that there is currently no way to reset ALL of the events sent counters for all of the Apps with one command. - - - Next: \ref cfeevsugprocreset
    - Prev: \ref cfeevsugcounters
    - Up To: \ref cfeevsovr **/ /** @@ -427,11 +394,6 @@ This provides the ground with the capability to write the Local Event Log to a file and transfer it to the ground in order to help debug a reset. - - - Next: \ref cfeevsugsquelch
    - Prev: \ref cfeevsugresetctrs
    - Up To: \ref cfeevsovr **/ /** @@ -454,75 +416,73 @@ \image html evs_squelch_states.png "Figure EVS-1: EVS Squelching State Diagram" \image latex evs_squelch_states.png "Figure EVS-1: EVS Squelching State Diagram" - - - Next: \ref cfeevsugfaq
    - Prev: \ref cfeevsugprocreset
    - Up To: \ref cfeevsovr **/ /** \page cfeevsugfaq Frequently Asked Questions about Event Services - -
    (Q) - My telemetry stream is being flooded with the same event message. How do I - make it stop? -
      - The most direct way to stop an event message from flooding your downlink - stream is to send a command to EVS to filter the offending event (see - \ref cfeevsugmsgcntrl or \link #CFE_EVS_SET_FILTER_CC \EVS_SETBINFLTRMASK \endlink). - In order to stop the event message from being sent, a bit mask of \c '0xFFFF' should - be used. If the event is not currently registered for filtering, the event message - must be added using the command \link #CFE_EVS_ADD_EVENT_FILTER_CC \EVS_ADDEVTFLTR \endlink. -
    (Q) - I filtered an event message and would now like to see it again. What do I do in - order to see those events again? -
      - If the event message that you are interested is registered with EVS for filtering, - then you have 2 options: - -
      -
    1. You can use the \link #CFE_EVS_SET_FILTER_CC \EVS_SETBINFLTRMASK \endlink command - using a bit mask of \c '0x0000' which will result in getting all of the events for - that Event Id
      -
      or

      -
    2. You can remove the registration of that event with EVS - (see \link #CFE_EVS_DELETE_EVENT_FILTER_CC \EVS_DELEVTFLTR \endlink).
      - Note that option (1) is the preferred method.
      -
    -
    (Q) - What is the purpose of DEBUG event messages? -
      - Event message of type "DEBUG" are primarily used during flight software development - in order to provide information that is most likely not needed on orbit. Some commands - send debug event messages as verification that a command request was received. When - writing the EVS local event log to a file, for example, an event message of type DEBUG - is issued. On orbit, this event message is probably not needed. Instead, the command - counter is used for command verification. -
    (Q) - How do I find out which events are registered for filtering? -
      - EVS provides a command (\link #CFE_EVS_WRITE_APP_DATA_FILE_CC \EVS_WRITEAPPDATA2FILE \endlink) - which generates a file containing all of the applications that have registered with EVS and - all of the filters that are registered for each application. Note that EVS merely generates - the file. The file must be transferred to the ground in order to view it. -
    (Q) - Why do I see event messages in my console window? -
      - By default, the events are configured to transmit out a "port" that shows event messages - in the console -
    (Q) - What is the difference between event services and the ES System Log -
      - Events are within the context of an App or cFE Service (requires registration with ES). - The system log can be written to outside of the Application or cFE Service context, - for example during application startup to report errors before registration. -
    - - - Prev: \ref cfeevsugprocreset
    - Up To: \ref cfeevsovr + (Q) + My telemetry stream is being flooded with the same event message. How do I + make it stop? +

    + The most direct way to stop an event message from flooding your downlink + stream is to send a command to EVS to filter the offending event (see + \ref cfeevsugmsgcntrl or \link #CFE_EVS_SET_FILTER_CC \EVS_SETBINFLTRMASK \endlink). + In order to stop the event message from being sent, a bit mask of \c '0xFFFF' should + be used. If the event is not currently registered for filtering, the event message + must be added using the command \link #CFE_EVS_ADD_EVENT_FILTER_CC \EVS_ADDEVTFLTR \endlink. + + + (Q) + I filtered an event message and would now like to see it again. What do I do in + order to see those events again? +

    + If the event message that you are interested is registered with EVS for filtering, + then you have 2 options: + -# You can use the \link #CFE_EVS_SET_FILTER_CC \EVS_SETBINFLTRMASK \endlink command + using a bit mask of \c '0x0000' which will result in getting all of the events for + that Event Id + -# You can remove the registration of that event with EVS + (see \link #CFE_EVS_DELETE_EVENT_FILTER_CC \EVS_DELEVTFLTR \endlink). + + Note that option (1) is the preferred method.
    + +
    + + (Q) + What is the purpose of DEBUG event messages? +

    + Event message of type "DEBUG" are primarily used during flight software development + in order to provide information that is most likely not needed on orbit. Some commands + send debug event messages as verification that a command request was received. When + writing the EVS local event log to a file, for example, an event message of type DEBUG + is issued. On orbit, this event message is probably not needed. Instead, the command + counter is used for command verification. + + + (Q) + How do I find out which events are registered for filtering? +

    + EVS provides a command (\link #CFE_EVS_WRITE_APP_DATA_FILE_CC \EVS_WRITEAPPDATA2FILE \endlink) + which generates a file containing all of the applications that have registered with EVS and + all of the filters that are registered for each application. Note that EVS merely generates + the file. The file must be transferred to the ground in order to view it. + + + (Q) + Why do I see event messages in my console window? +

    + By default, the events are configured to transmit out a "port" that shows event messages + in the console + + + (Q) + What is the difference between event services and the ES System Log +

    + Events are within the context of an App or cFE Service (requires registration with ES). + The system log can be written to outside of the Application or cFE Service context, + for example during application startup to report errors before registration. + **/ /** diff --git a/docs/src/cfe_frontpage.dox b/docs/src/cfe_frontpage.dox index 391ecae92..9d6fb21ee 100644 --- a/docs/src/cfe_frontpage.dox +++ b/docs/src/cfe_frontpage.dox @@ -104,7 +104,7 @@ once integrated into the cFE build environment, developers will be ready to build and run the system and start developing their mission/project specific applications that easily plug and play into the system. -

    Core Flight Executive (cFE) Goals

    + \section cfebackground_s1 Core Flight Executive (cFE) Goals The main long term goal of the cFE is to form the basis for a platform and project independent reusable software framework. The cFE with the OSAL allow the development @@ -113,7 +113,7 @@ standardized, product-line approach for development of embedded aerospace flight software.
    -

    Functional and Community Goals

    + \subsection cfebackground_s1_1 Functional and Community Goals The cFE allows embedded system software to be developed and tested on desktop workstations and ported to the target platform without changing a single line of code, providing a shorter diff --git a/docs/src/cfe_sb.dox b/docs/src/cfe_sb.dox index 09effca0b..f97aeb2f7 100644 --- a/docs/src/cfe_sb.dox +++ b/docs/src/cfe_sb.dox @@ -28,7 +28,6 @@
  • \subpage cfesbugops
  • \subpage cfesbugfaq
    - **/ /** @@ -44,10 +43,6 @@
  • \subpage cfesbugsubs
  • \subpage cfesbugmem
    - - - Next: \ref cfesbugmsgs
    - Up To: \ref cfesbovr **/ /** @@ -85,9 +80,6 @@ target definitions folder for examples. Following the header is the user defined message data. - - Next: \ref cfesbugpipes
    - Up To: \ref cfesbugterms **/ /** @@ -108,10 +100,6 @@ bus also provides a set of figures regarding capacity, current utilization and high water marks relevant to pipes. This information may be requested by sending the command to \link #CFE_SB_SEND_SB_STATS_CC dump the SB statistics packet \endlink. - - Next: \ref cfesbugsubs
    - Prev: \ref cfesbugmsgs
    - Up To: \ref cfesbugterms **/ /** @@ -144,10 +132,6 @@ message. The \link #CFE_SB_Unsubscribe unsubscribe API \endlink takes two parameters, Message ID and Pipe ID. Only the owner of a pipe may unsubscribe to messages on that pipe. - - Next: \ref cfesbugmem
    - Prev: \ref cfesbugpipes
    - Up To: \ref cfesbugterms **/ /** @@ -185,10 +169,6 @@ contains no memory leaks. The value (in bytes) should remain stable under nominal conditions. Refer to the ES users guide for more information regarding the ES Memory Pool. - - Next: \ref cfesbugauto
    - Prev: \ref cfesbugsubs
    - Up To: \ref cfesbugterms **/ /** @@ -201,10 +181,6 @@ As do other tasks, the SB task sends out housekeeping telemetry when requested through the 'Send Housekeeping Data' command. - - Next: \ref cfesbugops
    - Prev: \ref cfesbugterms
    - Up To: \ref cfesbovr **/ /** @@ -223,10 +199,6 @@
  • \subpage cfesbugqos
  • \subpage cfesbugknwnprob
    - - Next: \ref cfesbuginit
    - Prev: \ref cfesbugauto
    - Up To: \ref cfesbovr **/ /** @@ -234,9 +206,6 @@ No action is required by the ground to initialize the software bus. The software bus initializes internal data structures and tables the same way regardless of the type of reset. - - Next: \ref cfesbugreset
    - Up To: \ref cfesbugops **/ /** @@ -257,10 +226,6 @@
  • Any packets in transit at the time of the reset are lost.
  • The sequence counters for telemetry packets will begin again with a value of one.
    - - Next: \ref cfesbugrouting
    - Prev: \ref cfesbuginit
    - Up To: \ref cfesbugops **/ /** @@ -279,10 +244,6 @@ software bus also provides a set of figures regarding capacity, current utilization and high water marks relevant to the routing. This information may be requested by sending the command to dump the SB statistics packet. - - Next: \ref cfesbugpktseqvals
    - Prev: \ref cfesbugreset
    - Up To: \ref cfesbugops **/ /** @@ -307,10 +268,6 @@ is recommended for situations where the sender did not generate the packet, such as a network interface application passing a packet from a remote system to the local software bus. - - Next: \ref cfesbugmsgpipeerr
    - Prev: \ref cfesbugrouting
    - Up To: \ref cfesbugops **/ /** @@ -340,10 +297,6 @@ A related failure is the pipe overflow condition, which can occur if the total number of packets (of all kinds) sent to a particular pipe is too large. - - Next: \ref cfesbugovererr
    - Prev: \ref cfesbugpktseqvals
    - Up To: \ref cfesbugops **/ /** @@ -354,10 +307,6 @@ pipe is too large. If this error occurs too frequently, it may be an indication that the pipe depth is not set correctly. The pipe depth is given at the time the pipe is created as a parameter in the #CFE_SB_CreatePipe API. - - Next: \ref cfesbugeventfilt
    - Prev: \ref cfesbugmsgpipeerr
    - Up To: \ref cfesbugops **/ /** @@ -382,10 +331,6 @@ that would normally occur without the protection. The heritage software bus did not have this condition because it stored events in the software bus event log and another thread would read them out at a later time. - - Next: \ref cfesbugdiagdata
    - Prev: \ref cfesbugovererr
    - Up To: \ref cfesbugops **/ /** @@ -414,10 +359,6 @@ possible to see the peak messages on a pipe occasionally exceed the depth of the pipe. The "Peak Messages In Use" parameter is included in the SB statistics packet under the pipe depth stats. - - Next: \ref cfesbugroutcntrl
    - Prev: \ref cfesbugeventfilt
    - Up To: \ref cfesbugops **/ /** @@ -432,10 +373,6 @@
  • In flight, one can enable diagnostic packets to see them on the ground.
  • During testing, one can disable a destination to simulate an anomaly.
    - - Next: \ref cfesbugqos
    - Prev: \ref cfesbugdiagdata
    - Up To: \ref cfesbugops **/ /** @@ -449,10 +386,6 @@ of service. A default quality of services is provided via the #CFE_SB_DEFAULT_QOS macro. - - Next: \ref cfesbugknwnprob
    - Prev: \ref cfesbugroutcntrl
    - Up To: \ref cfesbugops **/ /** @@ -474,111 +407,120 @@ The simplest way to prevent this behavior is to ensure that there is margin when sizing the SB memory pool. To check the margin, monitor the "Peak Memory in Use" vs. the configuration parameter #CFE_PLATFORM_SB_BUF_MEMORY_BYTES which indicates the amount allocated. - - Next: \ref cfesbugfaq
    - Prev: \ref cfesbugqos
    - Up To: \ref cfesbugops **/ /** \page cfesbugfaq Frequently Asked Questions about Software Bus - -
    (Q) - How is the memory pool handle (sent in SB housekeeping telemetry) intended to be used? -
      - The memory pool handle is used to analyze the SB memory pool statistics. The cFE ES - command (#CFE_ES_SEND_MEM_POOL_STATS_CC) to dump the memory pool statistics takes the pool handle - as a parameter. These statistics tell how the SB memory pool is configured and gives details - on margin. An improperly configured SB memory pool may inhibit communication. This may occur - if there is not enough margin to create a block of the size needed for a transfer. Refer to - the ES memory pool users guide for more details. \ref cfeesugmempoolsrv
    -
    (Q) - When sending a message, what message header - fields are critical for routing the message? -
      - To route the message properly, the software bus uses only the Message ID and - packet length fields from the header of the message. If the packet length field - is incorrect, then the buffer allocation for the message will also be incorrect. - This may appear to the receiver as a truncated message or a message with unknown - data added to the end of the message. -
    (Q) - How many copies of the message are performed in a typical message delivery? -
      - There is a single copy of the message performed when sending a message - (from the callers memory space) using CFE_SB_TransmitMsg. - When transmitting the message, the software bus copies the message from the - callers memory space into a buffer in the software bus memory space. There - is also the option to request a buffer from SB, write directly to the buffer - and send via CFE_SB_TransmitBuffer. This is equivalent to the previous zero - copy implementation. - The #CFE_SB_ReceiveBuffer API gives the user back a pointer to the buffer. When - working with the buffers, the additional complexity to be aware of is the - buffer is only available to the app from the request to send (on the sending side), - or from the receive until the next receive on the same pipe on the receiving side. - If the data is required outside that scope, the app needs a local copy. -
    (Q) - When does the software bus free the buffer during a typical message - delivery process? Or how long is the message, and the pointer to the buffer - in the #CFE_SB_ReceiveBuffer valid? -
      - After receiving a buffer by calling #CFE_SB_ReceiveBuffer, the buffer received is valid - until the next call to #CFE_SB_ReceiveBuffer with the same Pipe Id. - If the caller needs the message longer than the next call to - #CFE_SB_ReceiveBuffer, the caller must copy the message to its memory space. -
    (Q) - The first parameter in the #CFE_SB_ReceiveBuffer API is a pointer to a pointer which - can get confusing. How can I be sure that the correct address is given for this - parameter. -
      - Typically a caller declares a ptr of type CFE_SB_Buffer_t (i.e. CFE_SB_Buffer_t *Ptr) - then gives the address of that pointer (&Ptr) as this parameter. After a successful - call to #CFE_SB_ReceiveBuffer, Ptr will point to the first byte of the software bus - buffer. This should be used as a read-only pointer. In systems with an MMU, writes - to this pointer may cause a memory protection fault. -
    (Q) - Why am I not seeing expected Message Limit error events or Pipe Overflow events? -
      - It is possible the events are being filtered by cFE Event Services. The filtering - for this event may be specified in the platform configuration file or it may have - been commanded after the system initializes.
    - There is a corresponding counter for each of these conditions. First verify that - the condition is happening by viewing the counter in SB HK telemetry. If the - condition is happening, you can view the SB filter information through the EVS - App Data Main page by clicking the 'go to' button for SB. The event Id for these - events can be learned through a previous event or from the cfe_sb_events.h file. -
    (Q) - Why does the SB provide event filtering through the platform configuration file? -
      - To give the user the ability to filter events before an EVS command can be sent. - During system initialization, there are many conditions occurring that can cause - a flood of SB events such as No Subscribers, Pipe Overflow and MsgId to Pipe errors. - This gives the user a way to limit these events. -
    (Q) - Why does SB have so many debug event messages? -
      - The SB debug messages are positive acknowledgments that an action (like receiving a - cmd, creating a pipe or subscribing to a message) has occurred. They are intended to - help isolate system problems. For instance, if an expected response to a command is - not happening, it may be possible to repeat the scenario with the debug event turned - on to verify that the command was successfully received. -
    (Q) - How is the QOS parameter in the #CFE_SB_SubscribeEx used by the software bus? -
      - The QOS parameter is currently unused by the software bus. It is a placeholder to be - used with the future software bus capability of inter-processor communication. Setting - the QOS as #CFE_SB_DEFAULT_QOS will ensure seamless integration when the software bus - is expanded to support inter-processor communication. -
    (Q) - Can I confirm my software bus buffer was delivered? -
      - There is no built in mechanism for confirming delivery (it could span systems). - This could be accomplished by generating a response message from the receiver. -
    - - - Prev: \ref cfesbugops
    - Up To: \ref cfesbovr + (Q) + How is the memory pool handle (sent in SB housekeeping telemetry) intended to be used? +

    + The memory pool handle is used to analyze the SB memory pool statistics. The cFE ES + command (#CFE_ES_SEND_MEM_POOL_STATS_CC) to dump the memory pool statistics takes the pool handle + as a parameter. These statistics tell how the SB memory pool is configured and gives details + on margin. An improperly configured SB memory pool may inhibit communication. This may occur + if there is not enough margin to create a block of the size needed for a transfer. Refer to + the ES memory pool users guide for more details. \ref cfeesugmempoolsrv
    +
    + + (Q) + When sending a message, what message header + fields are critical for routing the message? +

    + To route the message properly, the software bus uses only the Message ID and + packet length fields from the header of the message. If the packet length field + is incorrect, then the buffer allocation for the message will also be incorrect. + This may appear to the receiver as a truncated message or a message with unknown + data added to the end of the message. + + + (Q) + How many copies of the message are performed in a typical message delivery? +

    + There is a single copy of the message performed when sending a message + (from the callers memory space) using CFE_SB_TransmitMsg. + When transmitting the message, the software bus copies the message from the + callers memory space into a buffer in the software bus memory space. There + is also the option to request a buffer from SB, write directly to the buffer + and send via CFE_SB_TransmitBuffer. This is equivalent to the previous zero + copy implementation. + The #CFE_SB_ReceiveBuffer API gives the user back a pointer to the buffer. When + working with the buffers, the additional complexity to be aware of is the + buffer is only available to the app from the request to send (on the sending side), + or from the receive until the next receive on the same pipe on the receiving side. + If the data is required outside that scope, the app needs a local copy. + + + (Q) + When does the software bus free the buffer during a typical message + delivery process? Or how long is the message, and the pointer to the buffer + in the #CFE_SB_ReceiveBuffer valid? +

    + After receiving a buffer by calling #CFE_SB_ReceiveBuffer, the buffer received is valid + until the next call to #CFE_SB_ReceiveBuffer with the same Pipe Id. + If the caller needs the message longer than the next call to + #CFE_SB_ReceiveBuffer, the caller must copy the message to its memory space. + + + (Q) + The first parameter in the #CFE_SB_ReceiveBuffer API is a pointer to a pointer which + can get confusing. How can I be sure that the correct address is given for this + parameter. +

    + Typically a caller declares a ptr of type CFE_SB_Buffer_t (i.e. CFE_SB_Buffer_t *Ptr) + then gives the address of that pointer (&Ptr) as this parameter. After a successful + call to #CFE_SB_ReceiveBuffer, Ptr will point to the first byte of the software bus + buffer. This should be used as a read-only pointer. In systems with an MMU, writes + to this pointer may cause a memory protection fault. + + + (Q) + Why am I not seeing expected Message Limit error events or Pipe Overflow events? +

    + It is possible the events are being filtered by cFE Event Services. The filtering + for this event may be specified in the platform configuration file or it may have + been commanded after the system initializes.
    + There is a corresponding counter for each of these conditions. First verify that + the condition is happening by viewing the counter in SB HK telemetry. If the + condition is happening, you can view the SB filter information through the EVS + App Data Main page by clicking the 'go to' button for SB. The event Id for these + events can be learned through a previous event or from the cfe_sb_events.h file. +
    + + (Q) + Why does the SB provide event filtering through the platform configuration file? +

    + To give the user the ability to filter events before an EVS command can be sent. + During system initialization, there are many conditions occurring that can cause + a flood of SB events such as No Subscribers, Pipe Overflow and MsgId to Pipe errors. + This gives the user a way to limit these events. + + + (Q) + Why does SB have so many debug event messages? +

    + The SB debug messages are positive acknowledgments that an action (like receiving a + cmd, creating a pipe or subscribing to a message) has occurred. They are intended to + help isolate system problems. For instance, if an expected response to a command is + not happening, it may be possible to repeat the scenario with the debug event turned + on to verify that the command was successfully received. + + + (Q) + How is the QOS parameter in the #CFE_SB_SubscribeEx used by the software bus? +

    + The QOS parameter is currently unused by the software bus. It is a placeholder to be + used with the future software bus capability of inter-processor communication. Setting + the QOS as #CFE_SB_DEFAULT_QOS will ensure seamless integration when the software bus + is expanded to support inter-processor communication. + + + (Q) + Can I confirm my software bus buffer was delivered? +

    + There is no built in mechanism for confirming delivery (it could span systems). + This could be accomplished by generating a response message from the receiver. + **/ /** diff --git a/docs/src/cfe_tbl.dox b/docs/src/cfe_tbl.dox index 646a71374..c8a9d86cd 100644 --- a/docs/src/cfe_tbl.dox +++ b/docs/src/cfe_tbl.dox @@ -24,7 +24,6 @@
  • \subpage cfetblugprocreset
  • \subpage cfetblugfaq
    - **/ /** @@ -77,9 +76,6 @@ that a new table image is available. It is then up to the Application to determine when is the best time to perform the "Update" of the table. When an Application performs an Update, the contents of the Inactive table image become the Active table image. - - Next: \ref cfetblugtypes
    - Up To: \ref cfetblovr **/ /** @@ -112,10 +108,6 @@
  • \subpage cfetblugdumponly
    - - Next: \ref cfetblugsnglbuff
    - Prev: \ref cfetblugmanage
    - Up To: \ref cfetblovr **/ /** @@ -137,9 +129,6 @@ Single buffered tables are allowed to be critical (see \ref cfetblugcritical), dump-only (see \ref cfetblugdumponly) and/or have a user-defined address (see \ref cfetbluguserdef). - - Next: \ref cfetblugdblbuff
    - Up To: \ref cfetblugtypes **/ /** @@ -166,10 +155,6 @@ Performance minded Applications that are required to perform processing with tight timing deadlines may choose to use double buffered tables because the Update for a double buffered table is deterministic and quick. - - Next: \ref cfetblugvalfunc
    - Prev: \ref cfetblugsnglbuff
    - Up To: \ref cfetblugtypes **/ /** @@ -182,10 +167,6 @@ Tables that are NOT assigned a Validation Function are assumed to be valid regardless of the contents of the table image. These tables do not require a Validation Command prior to Activation. - - Next: \ref cfetblugcritical
    - Prev: \ref cfetblugdblbuff
    - Up To: \ref cfetblugtypes **/ /** @@ -198,10 +179,6 @@ If a Processor Reset happens, when the Application attempts to Register the table again, Table Services automatically locates the associated Critical Data Store and initializes the Table with the saved contents. - - Next: \ref cfetbluguserdef
    - Prev: \ref cfetblugvalfunc
    - Up To: \ref cfetblugtypes **/ /** @@ -217,10 +194,6 @@ the contents of a data structure that is not normally accessible via telemetry or table dumps. Then, on command, the Flight Software Maintenance team can periodically dump the data structure's contents to an on-board file(s) that can then be transferred to the ground for later analysis. - - Next: \ref cfetblugdumponly
    - Prev: \ref cfetblugcritical
    - Up To: \ref cfetblugtypes **/ /** @@ -237,10 +210,6 @@ be processed by the table's owning Application when it manages its tables. By letting the Application perform the dump, the Operator can feel confident that the table contents are a complete snapshot in time and not corrupted by taking a snapshot while the Application was in the process of modifying its contents. - - Next: \ref cfetblugregistry
    - Prev: \ref cfetbluguserdef
    - Up To: \ref cfetblugtypes **/ /** @@ -278,10 +247,6 @@ is, however, a message written to the System Error Log by Table Services that can be dumped by the ground to get this information. Note that failure to restore a table from CDS is not an expected error and requires some sort of data corruption to occur. - - Next: \ref cfetblugtelemetry
    - Prev: \ref cfetblugtypes
    - Up To: \ref cfetblovr **/ /** @@ -291,10 +256,6 @@ Services Housekeeping Packet, is routinely produced by Table Services upon receipt of the Housekeeping Request message that is typically sent to all Applications by an on board scheduler. The contents and format of this packet are described in detail at #CFE_TBL_HousekeepingTlm_t. - - Next: \ref cfetblugprocreset
    - Prev: \ref cfetblugregistry
    - Up To: \ref cfetblovr **/ /** @@ -309,106 +270,104 @@ If Table Services is able to find a valid table image for a Critical table in the Critical Data Store, the contents of the table are automatically loaded into the table and the Application is notified that the table does not require additional initialization. - - Next: \ref cfetblugfaq
    - Prev: \ref cfetblugtelemetry
    - Up To: \ref cfetblovr **/ /** \page cfetblugfaq Frequently Asked Questions about Table Services - -
    (Q) - Is it an error to load a table image that is smaller than the registered size? -
      - Table images that are smaller than the declared size of a table fall into one of two categories. - - If the starting offset of the table image (as specified in the Table Image secondary file header) is - not equal to zero, then the table image is considered to be a "partial" table load. Partial loads - are valid as long as a table has been previously loaded with a non-"partial" table image. - - If the starting offset of the table image is zero and the size is less than the declared size - of the table, the image is considered "short" but valid. This feature allows application developers - to use variable length tables. -
    (Q) - I tried to validate a table and received the following event message that said the event failed:
    -
    "MyApp validation failed for Inactive 'MyApp.MyTable', Status=0x####"

    - What happened? -
      - The event message indicates the application who owns the table has discovered a problem with the - contents of the image. The code number following the 'Status' keyword is defined by the Application. - The documentation for the specified Application should be referred to in order to identify the exact - nature of the problem. -
    (Q) - What commands do I use to load a table with a new image? -
      - There are a number of steps required to load a table. - -# The operator needs to create a cFE Table Services compatible table image file with the - desired data contained in it. This can be accomplished by creating a 'C' source file, compiling - it with the appropriate cross compiler for the onboard platform and then running the elf2cfetbl - utility on the resultant object file. - -# The file needs to be loaded into the onboard processor's filesystem using whichever file transfer - protocol is used for that mission. - -# The \link #CFE_TBL_LOAD_CC Load Command \endlink is sent next to tell Table Services to load the - table image file into the Inactive Table Image Buffer for the table identified in the file. - -# The \link #CFE_TBL_VALIDATE_CC Validate Command \endlink is then sent to validate the contents of - the inactive table image. This will ensure the file was not corrupted or improperly defined. The - results of the validation are reported in Table Services Housekeeping Telemetry. If a table does - not have a validation function associated with it, the operator may wish to compare the computed - CRC to verify the table contents match what was intended. - -# Upon successful validation, the operator then sends the - \link #CFE_TBL_ACTIVATE_CC Activate Command. \endlink The application owning the table should, within - a reasonable amount of time, perform a table update and send an event message. -
    (Q) - What causes cFE Table Services to generate the following sys log message: - - CFE_TBL:GetAddressInternal-App(\%d) attempt to access unowned Tbl Handle=\%d -
      - When an application sharing its table(s) with one or more applications is reloaded, the reloaded application's - table handle(s) are released. cFE Table Services sees that the table(s) are shared and keeps a 'shadow' version - of the table in the Table Services registry. The registry will show the released, shared tables with no name. - When the applications sharing the table attempt to access the table via the 'old', released handle, Table Services - will return an error code to the applications and generate the sys log message. The applications may then unregister - the 'old' handle(s) in order to remove the released, shared table(s) from the Table Services registry and share the - newly loaded application table(s). -
    (Q) - When does the Table Services Abort Table Load command need to be issued? -
      - The Abort command should be used whenever a table image has been loaded but the application has not yet activated it and - the operator no longer wants the table to be loaded. - - The purpose of the Abort command is to free a previously allocated table buffer. It should be noted, however, that multiple - table loads to the SAME table without an intervening activation or abort, will simply OVERWRITE the previous table load using - the SAME buffer. - - Therefore, the most likely scenarios that would lead to a needed abort are as follows: - -
      -
    1. Operator loads a table and realizes immediately that the load is not wanted.
    2. - -
    3. Operator loads a table and performs a validation on it. Regardless of whether - the table passes or fails the validation, if the operator no longer wants to - activate the table, the abort command should be issued. - - It should be noted that a table image that fails activation is retained in the - inactive buffer for diagnosis, if necessary. It is NOT released until it is - aborted or overwritten and successfully validated and activated.
    4. - -
    5. A table image was loaded; the image was successfully validated; the command for - activation was sent; but the application fails to perform the activation. - - The Abort command will free the table buffer and clear the activation request. - - This situation can occur when either the application is improperly designed and - fails to adequately manage its tables (sometimes seen in the lab during development) - or the application is "hung" and not performing as it should.
    6. -
    - -
    - - Prev: \ref cfetblugprocreset
    - Up To: \ref cfetblovr + (Q) + Is it an error to load a table image that is smaller than the registered size? +

    + Table images that are smaller than the declared size of a table fall into one of two categories. + + If the starting offset of the table image (as specified in the Table Image secondary file header) is + not equal to zero, then the table image is considered to be a "partial" table load. Partial loads + are valid as long as a table has been previously loaded with a non-"partial" table image. + + If the starting offset of the table image is zero and the size is less than the declared size + of the table, the image is considered "short" but valid. This feature allows application developers + to use variable length tables. + + + (Q) + I tried to validate a table and received the following event message that said the event failed: + + MyApp validation failed for Inactive 'MyApp.MyTable', Status=0x#### + + What happened? +

    + The event message indicates the application who owns the table has discovered a problem with the + contents of the image. The code number following the 'Status' keyword is defined by the Application. + The documentation for the specified Application should be referred to in order to identify the exact + nature of the problem. + + + (Q) + What commands do I use to load a table with a new image? +

    + There are a number of steps required to load a table. + -# The operator needs to create a cFE Table Services compatible table image file with the + desired data contained in it. This can be accomplished by creating a 'C' source file, compiling + it with the appropriate cross compiler for the onboard platform and then running the elf2cfetbl + utility on the resultant object file. + -# The file needs to be loaded into the onboard processor's filesystem using whichever file transfer + protocol is used for that mission. + -# The \link #CFE_TBL_LOAD_CC Load Command \endlink is sent next to tell Table Services to load the + table image file into the Inactive Table Image Buffer for the table identified in the file. + -# The \link #CFE_TBL_VALIDATE_CC Validate Command \endlink is then sent to validate the contents of + the inactive table image. This will ensure the file was not corrupted or improperly defined. The + results of the validation are reported in Table Services Housekeeping Telemetry. If a table does + not have a validation function associated with it, the operator may wish to compare the computed + CRC to verify the table contents match what was intended. + -# Upon successful validation, the operator then sends the + \link #CFE_TBL_ACTIVATE_CC Activate Command. \endlink The application owning the table should, within + a reasonable amount of time, perform a table update and send an event message. + + + + (Q) + What causes cFE Table Services to generate the following sys log message: + + CFE_TBL:GetAddressInternal-App(\%d) attempt to access unowned Tbl Handle=\%d +

    + When an application sharing its table(s) with one or more applications is reloaded, the reloaded application's + table handle(s) are released. cFE Table Services sees that the table(s) are shared and keeps a 'shadow' version + of the table in the Table Services registry. The registry will show the released, shared tables with no name. + When the applications sharing the table attempt to access the table via the 'old', released handle, Table Services + will return an error code to the applications and generate the sys log message. The applications may then unregister + the 'old' handle(s) in order to remove the released, shared table(s) from the Table Services registry and share the + newly loaded application table(s). + + + (Q) + When does the Table Services Abort Table Load command need to be issued? +

    + The Abort command should be used whenever a table image has been loaded but the application has not yet activated it and + the operator no longer wants the table to be loaded. + + The purpose of the Abort command is to free a previously allocated table buffer. It should be noted, however, that multiple + table loads to the SAME table without an intervening activation or abort, will simply OVERWRITE the previous table load using + the SAME buffer. + + Therefore, the most likely scenarios that would lead to a needed abort are as follows: + -# Operator loads a table and realizes immediately that the load is not wanted. + -# Operator loads a table and performs a validation on it. Regardless of whether + the table passes or fails the validation, if the operator no longer wants to + activate the table, the abort command should be issued. + + It should be noted that a table image that fails activation is retained in the + inactive buffer for diagnosis, if necessary. It is NOT released until it is + aborted or overwritten and successfully validated and activated. + -# A table image was loaded; the image was successfully validated; the command for + activation was sent; but the application fails to perform the activation. + + The Abort command will free the table buffer and clear the activation request. + + This situation can occur when either the application is improperly designed and + fails to adequately manage its tables (sometimes seen in the lab during development) + or the application is "hung" and not performing as it should. + + **/ /** diff --git a/docs/src/cfe_time.dox b/docs/src/cfe_time.dox index b191b984d..1f16a05cb 100644 --- a/docs/src/cfe_time.dox +++ b/docs/src/cfe_time.dox @@ -59,7 +59,6 @@
  • \subpage cfetimeugfaq
    - **/ /** @@ -112,10 +111,6 @@ by the International Earth Rotation Service (IERS): https://www.iers.org in IERS Bulletin C (leap second announcements). Search the IERS site for "Bulletin C" to obtain the latest issue/announcement. - - - Next: \ref cfetimeugstruct
    - Up To: \ref cfetimeovr **/ /** @@ -137,11 +132,6 @@ uint32 Subseconds; /* Number of 2^(-32) subseconds */ } CFE_TIME_SysTime_t; \endverbatim - - - Next: \ref cfetimeugformat
    - Prev: \ref cfetimeugcomponents
    - Up To: \ref cfetimeovr **/ /** @@ -177,11 +167,6 @@ \verbatim UTC = MET + STCF - Leap Seconds \endverbatim - - - Next: \ref cfetimeugconfig
    - Prev: \ref cfetimeugcomponents
    - Up To: \ref cfetimeovr **/ /** @@ -238,11 +223,6 @@
  • \subpage cfetimeugsource
  • \subpage cfetimeugsignal
    - - - Next: \ref cfetimeugparadigm
    - Prev: \ref cfetimeugformat
    - Up To: \ref cfetimeovr **/ /** @@ -271,10 +251,6 @@ affected by the hardware configuration. \sa #CFE_MISSION_TIME_CFG_DEFAULT_TAI, #CFE_MISSION_TIME_CFG_DEFAULT_UTC
    - - - Next: \ref cfetimeugfaketone
    - Up To: \ref cfetimeugconfig **/ /** @@ -294,10 +270,6 @@ Hypothetical hardware configuration number one (described above) would enable the fake tone signal. \sa #CFE_MISSION_TIME_CFG_FAKE_TONE - - Next: \ref cfetimeugtoneorder
    - Prev: \ref cfetimeugformsel
    - Up To: \ref cfetimeugconfig **/ /** @@ -320,11 +292,6 @@ enable "time at the tone was". \sa #CFE_MISSION_TIME_AT_TONE_WAS, #CFE_MISSION_TIME_AT_TONE_WILL_BE - - - Next: \ref cfetimeugtonewindow
    - Prev: \ref cfetimeugfaketone
    - Up To: \ref cfetimeugconfig **/ /** @@ -346,11 +313,6 @@ and lasts for one tenth of a second. \sa #CFE_MISSION_TIME_MIN_ELAPSED, #CFE_MISSION_TIME_MAX_ELAPSED - - - Next: \ref cfetimeugserver
    - Prev: \ref cfetimeugtoneorder
    - Up To: \ref cfetimeugconfig **/ /** @@ -377,11 +339,6 @@ \endverbatim \sa #CFE_PLATFORM_TIME_CFG_SERVER, #CFE_PLATFORM_TIME_CFG_CLIENT - - - Next: \ref cfetimeugendian
    - Prev: \ref cfetimeugtonewindow
    - Up To: \ref cfetimeugconfig **/ /** @@ -399,10 +356,6 @@ \verbatim #define CFE_PLATFORM_TIME_CFG_BIGENDIAN \endverbatim - - Next: \ref cfetimeugvirtualmet
    - Prev: \ref cfetimeugserver
    - Up To: \ref cfetimeugconfig **/ /** @@ -415,11 +368,6 @@ local to any TIME client, then that instantiation of TIME would have to be the server. TIME servers must be configured as using a virtual MET - - - Next: \ref cfetimeugsource
    - Prev: \ref cfetimeugendian
    - Up To: \ref cfetimeugconfig **/ /** @@ -484,10 +432,6 @@ \sa #CFE_PLATFORM_TIME_CFG_SRC_MET, #CFE_PLATFORM_TIME_CFG_SRC_GPS, #CFE_PLATFORM_TIME_CFG_SRC_TIME - - Next: \ref cfetimeugsignal
    - Prev: \ref cfetimeugvirtualmet
    - Up To: \ref cfetimeugconfig **/ /** @@ -504,10 +448,6 @@ Note: this feature requires additional custom software to make the physical signal switch. \sa #CFE_PLATFORM_TIME_CFG_SIGNAL - - Next: \ref cfetimeugparadigm
    - Prev: \ref cfetimeugsource
    - Up To: \ref cfetimeugconfig **/ /** @@ -556,11 +496,6 @@ The mission configuration parameters, #CFE_MISSION_TIME_CFG_DEFAULT_TAI and #CFE_MISSION_TIME_CFG_DEFAULT_UTC specify the default time format. Applications are encouraged to use the #CFE_TIME_GetTime API, which returns time in the format specified by this configuration parameter. - - - Next: \ref cfetimeugflywheeling
    - Prev: \ref cfetimeugcomponents
    - Up To: \ref cfetimeovr **/ @@ -580,10 +515,6 @@ If the TIME server is in Flywheel mode then the TIME client is also in flywheel mode. - - Next: \ref cfetimeugstate
    - Prev: \ref cfetimeugparadigm
    - Up To: \ref cfetimeovr **/ @@ -607,11 +538,6 @@ the Time Server. However, setting a Time Client to FLYWHEEL cannot be overridden by the Time Server since the Time Client will ignore time updates from the Time Server while in FLYWHEEL mode. - - - Next: \ref cfetimeuginit
    - Prev: \ref cfetimeugflywheeling
    - Up To: \ref cfetimeovr **/ @@ -627,11 +553,6 @@
  • \subpage cfetimeugpoweron
  • \subpage cfetimeugprocessor
    - - - Next: \ref cfetimeugpoweron
    - Prev: \ref cfetimeugstate
    - Up To: \ref cfetimeovr **/ @@ -640,10 +561,6 @@ TIME initializes all counters in housekeeping telemetry, sets the Validity state to Invalid, and initializes the STCF, Leap Seconds, and 1 Hz Adjustment to zero. - - - Next: \ref cfetimeugprocessor
    - Up To: \ref cfetimeuginit **/ @@ -664,10 +581,6 @@ written to the preserved area. On a processor reset, TIME queries that signature to make sure that it matches what is expected. If the signature does not match, then TIME is initialized as if a cFE power-on reset occurred. - - Next: \ref cfetimeugnormal
    - Prev: \ref cfetimeugpoweron
    - Up To: \ref cfetimeuginit **/ @@ -681,11 +594,6 @@
  • \subpage cfetimeugclientops
  • \subpage cfetimeugserverops
    - - - Next: \ref cfetimeugclientops
    - Prev: \ref cfetimeuginit
    - Up To: \ref cfetimeovr **/ @@ -696,10 +604,6 @@ however TIME clients do provide commands to set the persistent latency between the server and client. Latency can be either added or subtracted to the current TIME client time calculation to account for the latency. - - - Next: \ref cfetimeugserverops
    - Up To: \ref cfetimeugnormal **/ @@ -715,11 +619,6 @@
  • \subpage cfetimeugadjust
  • \subpage cfetimeugsetmet
    - - - Next: \ref cfetimeugsettime
    - Prev: \ref cfetimeugclientops
    - Up To: \ref cfetimeugnormal **/ @@ -746,10 +645,6 @@ \endverbatim \sa #CFE_TIME_SET_TIME_CC - - - Next: \ref cfetimeugadjust
    - Up To: \ref cfetimeugserverops **/ @@ -777,11 +672,6 @@ \sa #CFE_TIME_ADD_ADJUST_CC, #CFE_TIME_SUB_ADJUST_CC, #CFE_TIME_SET_STCF_CC, #CFE_TIME_ADD_1HZ_ADJUSTMENT_CC, #CFE_TIME_SUB_1HZ_ADJUSTMENT_CC, #CFE_TIME_SET_LEAP_SECONDS_CC - - - Next: \ref cfetimeugsetmet
    - Prev: \ref cfetimeugsettime
    - Up To: \ref cfetimeugserverops **/ @@ -799,26 +689,13 @@ upon execution of this command. \sa #CFE_TIME_SET_MET_CC - - - Next: \ref cfetimeugfaq
    - Prev: \ref cfetimeugadjust
    - Up To: \ref cfetimeugserverops **/ /** - \page cfetimeugfaq Frequently Asked Questions - - -
    (Q) - -
      -
    - + \page cfetimeugfaq Frequently Asked Questions about Time Services - Prev: \ref cfetimeugnormal
    - Up To: \ref cfetimeovr + None submitted **/ diff --git a/docs/src/cfs_versions.dox b/docs/src/cfs_versions.dox index 27869ae23..dd44c909f 100644 --- a/docs/src/cfs_versions.dox +++ b/docs/src/cfs_versions.dox @@ -1,7 +1,7 @@ /** \page cfsversions Version Numbers -

    Version Number Semantics

    + \section cfsversions_s1 Version Number Semantics The version number is a sequence of four numbers, generally separated by dots when written. These are, in order, the Major number, the Minor number, the Revision number, and the Mission Revision number. @@ -27,7 +27,7 @@ The Mission Rev Version number is set to zero in all official releases, and is reserved for the mission use. -

    How and Where Defined

    + \section cfsversions_s2 How and Where Defined The version numbers are provided as simple macros defined in the cfe_version.h header file as part of the API definition; these macros must expand to simple integer values, so that they can be used in simple if @@ -35,7 +35,7 @@ Note the Mission Rev number is provided for missions to be able to identify unique changes they have made to the released software (via clone and own). Specicifally, the values 1-254 are reserved for mission use to denote patches/customizations while 0 and 0xFF are reserved for cFS open-source development use (pending resolution of nasa/cFS#440). -

    Identifying Development Builds

    + \section cfsversions_s3 Identifying Development Builds In order to distinguish between development versions, we also provide a BUILD_NUMBER. @@ -45,7 +45,7 @@ string also refers to the current development cycle. When a new baseline tag and codename are created, the BUILD_NUMBER resets to zero and begins increasing from a new baseline. -

    Templates for the short and long version string

    + \section cfsversions_s4 Templates for the short and long version string See cfe_version.h for the standard layout and definition of version information. The apps and repositories follow the same pattern by replacing the CFE_ prefix with the appropriate diff --git a/modules/cfe_assert/inc/cfe_assert.h b/modules/cfe_assert/inc/cfe_assert.h index f799d59f1..52faa6d9d 100644 --- a/modules/cfe_assert/inc/cfe_assert.h +++ b/modules/cfe_assert/inc/cfe_assert.h @@ -263,7 +263,7 @@ int32 CFE_Assert_LibInit(CFE_ES_LibId_t LibId); ** \par Assumptions, External Events, and Notes: ** Must be followed by a call to CFE_Assert_ExecuteTest() ** -** \return None +** \return #CFE_SUCCESS if successful, or error code ** *************************************************************************/ int32 CFE_Assert_RegisterTest(const char *TestName); @@ -275,9 +275,6 @@ int32 CFE_Assert_RegisterTest(const char *TestName); ** ** \par Assumptions, External Events, and Notes: ** None -** -** \return None -** *************************************************************************/ void CFE_Assert_ExecuteTest(void); @@ -293,9 +290,6 @@ void CFE_Assert_ExecuteTest(void); * None * * \param[in] Callback Callback function to invoke after every test - * - * \return None - * */ void CFE_Assert_RegisterCallback(CFE_Assert_StatusCallback_t Callback); @@ -329,9 +323,6 @@ int32 CFE_Assert_OpenLogFile(const char *Filename); * * \par Assumptions, External Events, and Notes: * This should be called once test cases have completed - * - * \return None - * */ void CFE_Assert_CloseLogFile(void); diff --git a/modules/sb/fsw/src/cfe_sb_priv.h b/modules/sb/fsw/src/cfe_sb_priv.h index 923825e0c..4f06ded1e 100644 --- a/modules/sb/fsw/src/cfe_sb_priv.h +++ b/modules/sb/fsw/src/cfe_sb_priv.h @@ -461,8 +461,6 @@ int32 CFE_SB_ZeroCopyReleaseAppId(CFE_ES_AppId_t AppId); * @note This must only be invoked while holding the SB global lock * * @param bd Pointer to the buffer descriptor. - * - * \return Execution status, see \ref CFEReturnCodes */ void CFE_SB_IncrBufUseCnt(CFE_SB_BufferD_t *bd); @@ -479,8 +477,6 @@ void CFE_SB_IncrBufUseCnt(CFE_SB_BufferD_t *bd); * @note This must only be invoked while holding the SB global lock * * @param bd Pointer to the buffer descriptor. - * - * \return Execution status, see \ref CFEReturnCodes */ void CFE_SB_DecrBufUseCnt(CFE_SB_BufferD_t *bd);