![]() |
ModelSpace
Documentation for ModelSpace models and classes.
|
/******************************************************************************
* Copyright (c) ATTX INC 2025. All Rights Reserved.
*
* This software and associated documentation (the "Software") are the
* proprietary and confidential information of ATTX, INC. The Software is
* furnished under a license agreement between ATTX and the user organization
* and may be used or copied only in accordance with the terms of the agreement.
* Refer to 'license/attx_license.adoc' for standard license terms.
*
* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
* transmitted in any form or by any means, for any purpose, without the express
* written permission of ATTX, INC.
******************************************************************************/
/*
App APID definition file
------------------------
This file defines the APIDs associated with individual apps. The Apids are uint16
values which are unique per app. To ensure APIDs are not duplicated between apps,
they are defined collectively within a single file. The APID per app is also used
as the base for APIDs for telemetry and commands. While not strictly enforced,
the following rules should be observed for APIDs
Of the 3 numerical spaces available in a single 11-bit apid (that is, 0x000 to
0x7FF), the following conventions (while not strictly enforced) should be observed:
- The 11 APID bits are broken into 7 and 4-bit values, with the 7 largest bits
reserved for apps and the last four reserved for cmd/tlm per app. That is:
APID: 0000000 0000
| App | |C/T |
- APIDs for Apps should be contained to the first two hex "digits" of the APID,
that is, Apps should start at 0x000 and run through 0x7F0, with only the first
two digits incrementing
- APIDs which come pre-defined with cFS++ are defined beginning at 0x000, with
system utilities beginning at 0x000 and cFS++ included apps beginning at
0x100
- APIDs for user-defined (non-system) apps should begin at 0x400 and increment
from there, that is 0x410, 0x420, through 0x7F0. Therefore a total of 64
APIDs are available to cFS++ users
- APIDs for telemetry and commands are contained to the last hex "digit" of the APID
and are added the the App APID, allowing up to 15 slots for cmd/tlm per app
- Full APIDs for telemetry and commands are defined as (APID_FOR_APP) + (CMD/TLM_OFFSET)
+ (APID_FOR_TLM_CMD) beginning at 0x001 and ending at 0x7FF
- APIDs for telemetry begin at 0x0C and run through 0x0F (= 4 tlm packets definable per app)
- APIDs for commands begin at 0x01 and run through 0x0B (= 11 cmd packets definable per app)
APIDs for apps are defined here in the APIDs file.
APIDs for telemetry are defined in the telemetry file per app in the telemtry/ folder
APIDs for commands are defined in the command file per app in the commands/ folder
Author: Alex Reynolds
*/
#ifndef APPS_APIDS_H
#define APPS_APIDS_H
// -------------------------------------------------------------------------------------
// APID DEFINITIONS FOR APPS, TELEMETRY, AND COMMANDS
// -------------------------------------------------------------------------------------
// APID base at which all command APIDs begin
#define CMD_APID_BASE 0x001
// APID base at which all telemetry APIDs begin
#define TLM_APID_BASE 0x00C
// -------------------------------------------------------------------------------------
// SYSTEM LEVEL APPS
// -------------------------------------------------------------------------------------
// Base APID for all executive functions which are not tied to an app -- i.e. schedule, etc.
#define APP_APID_EXECUTIVE 0x000
// Base APID for the telemetry manager
#define APP_APID_TELEMETRY_MANAGER 0x010
// Base APID for the command manager
#define APP_APID_COMMAND_MANAGER 0x020
// Base APID for the storage manager
#define APP_APID_STORAGE_MANAGER 0x030
// -------------------------------------------------------------------------------------
// GNC APPS
// -------------------------------------------------------------------------------------
// Base APID for the Inertial Navigation EKF Dead Reckon Propagation Step
#define APP_APID_GNC_INERT_NAV_DEAD_RECKON 0x300
// Base APID for the Inertial Navigation EKF Magnetometer Update Step
#define APP_APID_GNC_INERT_NAV_MAG_UPDATE 0x310
// Base APID for the Inertial Navigation EKF GPS Update Step
#define APP_APID_GNC_INERT_NAV_GPS_UPDATE 0x320
// Base APID for the PD Attitude controller
#define APP_APID_GNC_PD_ATT_CTRL 0x330
// Base APID for the Two axis pointing guidance
#define APP_APID_GNC_TWO_AXIS_PNT 0x340
// -------------------------------------------------------------------------------------
// USER-DEFINED APPS
// -------------------------------------------------------------------------------------
// Base APID for the LED Blinker example
#define APP_APID_LED_BLINKER 0x400
#endif