minsp.mo module
The minsp.mo module provides MAL header related classes.
- class minsp.mo.MALHeader(version: int = 0, sdu_type: int = 0, service_area: int = 0, service: int = 0, operation: int = 0, area_version: int = 0, is_error: int = 0, qos_level: int = 0, session: int = 0, secondary_apid: int = 0, secondary_apid_qualifier: int = 0, transaction_id: int = 0, source_id_flag: int = 0, destination_id_flag: int = 0, priority_flag: int = 0, timestamp_flag: int = 0, network_zone_flag: int = 0, session_name_flag: int = 0, domain_flag: int = 0, authentication_id_flag: int = 0, source_id: int = 0, destination_id: int = 0, segment_counter: int = 0, priority: int = 0, timestamp: datetime | None = None, network_zone: str = '', session_name: str = '', domain: str = '', authentication_id: str = '')
Bases:
object
Represents a MAL (Message Abstraction Layer) secondary header as defined by CCSDS 524.1-B-1.
This header is used in CCSDS Space Packet Protocols to provide structured metadata about messages, including addressing, quality of service, and transport-level information.
- Parameters:
version (int) – MAL version (3 bits, usually 1).
sdu_type (str) – SDU type (5 bits), e.g., 1 for message, 2 for acknowledgment.
service_area (int) – Numeric identifier of the service area (16 bits).
service (int) – Specific service within the area (16 bits).
operation (int) – Operation identifier (8 bits).
area_version (int) – Version of the service area (8 bits).
is_error (int) – Error flag (1 bit): 0 = normal, 1 = error.
qos_level (int) – Quality of Service level (2 bits).
session (int) – Session type (2 bits), e.g., P2P, PUB/SUB.
secondary_apid (int) – 11-bit field representing the secondary Application Process ID.
secondary_apid_qualifier (int) – Qualifier for secondary APID (16 bits).
transaction_id (int) – Unique transaction ID (64 bits).
source_id_flag (int) – If set, source_id field is present (1 bit).
destination_id_flag (int) – If set, destination_id field is present (1 bit).
priority_flag (int) – If set, priority field is present (1 bit).
timestamp_flag (int) – If set, timestamp field is present (1 bit).
network_zone_flag (int) – If set, network_zone field is present (1 bit).
session_name_flag (int) – If set, session_name field is present (1 bit).
domain_flag (int) – If set, domain field is present (1 bit).
authentication_id_flag (int) – If set, authentication_id field is present (1 bit).
source_id (int) – Optional source identifier (8 bits).
destination_id (int) – Optional destination identifier (8 bits).
segment_counter (int) – Optional segment counter for sequencing (32 bits).
priority (int) – Optional message priority (32 bits).
timestamp (datetime) – Optional UTC timestamp (CUC 7-byte format).
network_zone (str) – Optional network zone string (UTF-8, length-prefixed).
session_name (str) – Optional session name string (UTF-8, length-prefixed).
domain (str) – Optional domain string (UTF-8, length-prefixed).
authentication_id – Optional authentication ID string (UTF-8, length-prefixed).
- area_version: int = 0
- as_bytes(sequence_flag=3) bytes
Packs the MAL header as a byte stream.
- Raises:
ValueError – Timestamp flag set but no valid timestamp provided
- Returns:
MAL header bytes.
- Return type:
bytes
- authentication_id: str = ''
- authentication_id_flag: int = 0
- destination_id: int = 0
- destination_id_flag: int = 0
- domain: str = ''
- domain_flag: int = 0
- classmethod from_bytes(data: bytes, sequence_flag: int = 3)
Unpacks a byte stream into a MALHeader instance.
- Parameters:
data (bytes) – The byte stream.
sequence_flag (int) – The packet sequence flag, defaults to 3.
- Raises:
ValueError – MAL header too short.
- Returns:
A new MALHeader.
- Return type:
- is_error: int = 0
- network_zone: str = ''
- network_zone_flag: int = 0
- operation: int = 0
- priority: int = 0
- priority_flag: int = 0
- qos_level: int = 0
- sdu_type: int = 0
- secondary_apid: int = 0
- secondary_apid_qualifier: int = 0
- segment_counter: int = 0
- service: int = 0
- service_area: int = 0
- session: int = 0
- session_name: str = ''
- session_name_flag: int = 0
- source_id: int = 0
- source_id_flag: int = 0
- timestamp: datetime | None = None
- timestamp_flag: int = 0
- transaction_id: int = 0
- version: int = 0