Communication Specification
Data Types
The JAS standard does not require a specific length or encoding format for data types. Systems can define these based on what best suits their needs. Sizes, endianness, byte ordering, and bit ordering are typically driven based on the processing and memory architectures that are used. However, in order to define service types, and make them reusable, a common set of data type definitions is necessary.
The JAS data types are similar to those defined in Chapter 23 of the PUS specification [11]. They are shown in the table below. The table defines data types that are used to define parameters and provides a recommendation for implementation based on typical processing architectures. The columns are defined as follows:
- The first column of the table shows the name of the data type.
- The second column indicates the data type as used in the service definitions. In some cases the types are known (e.g. Unsigned Integer, Boolean, etc), in others they will be defined by the implementation (e.g. Enumerated, Any).
- The third column shows the typical equivalent C++ data type.
- The fifth column shows a typical size of the data type in memory but this is optional.
- The sixth column shows the range of each data type based on size.
Data Type | Abbreviated Name | C++ Type | Size (bits) | Range |
Boolean parameter | boolean | bool | 8 (top 7 bits are ignored) | true or false |
Enumerated parameter | enumerated | int | 32 | 0 to 4294967295 |
Unsigned Character | unsigned character | unsigned char | 8 | 0 to 255 |
Signed Character | character | signed char | 8 | -127 to 128 |
Unsigned Short Integer | unsigned short | unsigned short | 16 | 0 to 65535 |
Signed Short Integer | short | short | 16 | -32768 to 32767 |
Unsigned Integer | unsigned integer | unsigned int | 32 | 0 to 4294967295 |
Signed Integer | integer | int | 32 | -2147483648 to 2147483647 |
Unsigned Long Integer | unsigned long | unsigned long | 64 | 0 to 4294967295 |
Signed Long Integer | long | long | 64 | -2147483648 to 2147483647 |
Float | float | float | 32 | +/- 3.4e +/- 38 (~7 digits) |
Double | double | double | 64 | +/- 1.7e +/- 308 (~15 digits) |
Bit-string parameter | bit array | Any unsigned data type | 8 to 64 | Â |
Octet-string parameter | character array | unsigned char[] | 8 * number of elements | Â |
Character string parameter | string | char[] | 8 * number of elements | Â |
Absolute time parameter | absolute time | [unsigned int, unsigned int] | [32, 32] | [seconds, nanoseconds] |
Relative time parameter | relative time | TBD | Â | Â |
JAS Data Types
Internal_Standard
"Internal Standards developed by Sandia National Laboratories". Experience Base, Sandia National Laboratories, Albuquerque, NM, 0000.
ECSS-70-41A_2003
"GROUND SYSTEMS AND OPERATIONS - TELEMETRY AND TELECOMMAND PACKAGE UTILIZATION". ECSS-70-41A, European Cooperation for Space Standardization (ECSS), The Netherlands, 2003, GROUND SYSTEMS AND OPERATIONS - TELEMETRY AND TELECOMMAND PACKAGE UTILIZATION.