Commit 67847675 authored by Maxime Perrotin's avatar Maxime Perrotin
Browse files

Add large test case (from GMV)

parent c80df7e8
# H2020 ESROCOS Project
# Company: GMV Aerospace & Defence S.A.U.
# Licence: GPLv2
# Create the C types for the PUS services from the ASN.1 definitions using the
# ESROCOS macros for ASN.1 types.
#
# See the esrocos.cmake file for details on the variables and targets created
# to build the ASN.1 types.
esrocos_asn1_types_package(esrocos_pustypes_${MISSION}
${CCDS_PACKET_PATH_${MISSION}}ccsds_packet.asn
ccsds_packet_fields.asn
pus_config.asn
pus_types_definitions.asn
${SERVICES_PATH_${MISSION}}pus_services.asn
pus_st01.asn
pus_st03.asn
pus_st05.asn
pus_st08.asn
pus_st12.asn
pus_st09.asn
pus_st19.asn
pus_st18.asn
pus_st20.asn
pus_st23.asn
pus_time.asn
${${MISSION}_ASN1}
)
esrocos_asn1_types_build_test(esrocos_pustypes_${MISSION})
esrocos_asn1_types_install(esrocos_pustypes_${MISSION} ${CMAKE_INSTALL_PREFIX}/types/pus)
This diff is collapsed.
---------------------------------------------------
-- AADL2.1
-- TASTE type deploymentview
--
-- generated code: do not edit
---------------------------------------------------
PACKAGE deploymentview::DV::Node1
PUBLIC
WITH Taste;
WITH Deployment;
WITH TASTE_DV_Properties;
PROCESS x86_partition
END x86_partition;
PROCESS IMPLEMENTATION x86_partition.others
END x86_partition.others;
END deploymentview::DV::Node1;
PACKAGE deploymentview::DV
PUBLIC
WITH interfaceview::IV::Ground;
WITH interfaceview::IV::OnBoard::PusServices::TC::TcQueue;
WITH interfaceview::IV::OnBoard::PusServices::TC::TcDispatch;
WITH interfaceview::IV::OnBoard::PusServices::TM::TmDispatch;
WITH interfaceview::IV::OnBoard::PusServices::TM::TmQueue;
WITH interfaceview::IV::OnBoard::PusServices::ST17;
WITH interfaceview::IV::OnBoard::PusServices::ST01;
WITH interfaceview::IV::OnBoard::PusServices::ST08;
WITH interfaceview::IV::OnBoard::PusServices::OnBoardAPID;
WITH interfaceview::IV::OnBoard::PusServices::TimeReports::ST09;
WITH interfaceview::IV::OnBoard::PusServices::TimeReports::TimeReportAPID;
WITH interfaceview::IV::OnBoard::PusServices::EventServices::Events;
WITH interfaceview::IV::OnBoard::PusServices::EventServices::ST05;
WITH interfaceview::IV::OnBoard::PusServices::EventServices::ST19;
WITH interfaceview::IV::OnBoard::PusServices::HousekeepingServices::Housekeeping;
WITH interfaceview::IV::OnBoard::PusServices::HousekeepingServices::ST03;
WITH interfaceview::IV::OnBoard::PusServices::HousekeepingServices::ST12;
WITH interfaceview::IV::OnBoard::PusServices::ST11;
WITH interfaceview::IV::OnBoard::PusServices::OBCP::ST18;
WITH interfaceview::IV::OnBoard::PusServices::FilesService::ST23;
WITH interfaceview::IV::OnBoard::PusServices::FilesService::FileManagement;
WITH interfaceview::IV::OnBoard::PusServices::ParameterManagement::ST20;
WITH interfaceview::IV::OnBoard::PusServices::ParameterManagement::OnBoardParams;
WITH interfaceview::IV::OnBoard::PusServices::trigger;
WITH interfaceview::IV::OnBoard::OnboardSoftware;
WITH ocarina_processors_x86;
WITH deploymentview::DV::Node1;
WITH Taste;
WITH Deployment;
WITH interfaceview::IV;
WITH TASTE_DV_Properties;
SYSTEM Node1
END Node1;
SYSTEM IMPLEMENTATION Node1.others
SUBCOMPONENTS
IV_Ground : SYSTEM interfaceview::IV::Ground::Ground.others {
Taste::FunctionName => "Ground";
};
IV_TcQueue : SYSTEM interfaceview::IV::OnBoard::PusServices::TC::TcQueue::TcQueue.others {
Taste::FunctionName => "TcQueue";
};
IV_TcDispatch : SYSTEM interfaceview::IV::OnBoard::PusServices::TC::TcDispatch::TcDispatch.others {
Taste::FunctionName => "TcDispatch";
};
IV_TmDispatch : SYSTEM interfaceview::IV::OnBoard::PusServices::TM::TmDispatch::TmDispatch.others {
Taste::FunctionName => "TmDispatch";
};
IV_TmQueue : SYSTEM interfaceview::IV::OnBoard::PusServices::TM::TmQueue::TmQueue.others {
Taste::FunctionName => "TmQueue";
};
IV_ST17 : SYSTEM interfaceview::IV::OnBoard::PusServices::ST17::ST17.others {
Taste::FunctionName => "ST17";
};
IV_ST01 : SYSTEM interfaceview::IV::OnBoard::PusServices::ST01::ST01.others {
Taste::FunctionName => "ST01";
};
IV_ST08 : SYSTEM interfaceview::IV::OnBoard::PusServices::ST08::ST08.others {
Taste::FunctionName => "ST08";
};
IV_OnBoardAPID : SYSTEM interfaceview::IV::OnBoard::PusServices::OnBoardAPID::OnBoardAPID.others {
Taste::FunctionName => "OnBoardAPID";
};
IV_ST09 : SYSTEM interfaceview::IV::OnBoard::PusServices::TimeReports::ST09::ST09.others {
Taste::FunctionName => "ST09";
};
IV_TimeReportAPID : SYSTEM interfaceview::IV::OnBoard::PusServices::TimeReports::TimeReportAPID::TimeReportAPID.others {
Taste::FunctionName => "TimeReportAPID";
};
IV_Events : SYSTEM interfaceview::IV::OnBoard::PusServices::EventServices::Events::Events.others {
Taste::FunctionName => "Events";
};
IV_ST05 : SYSTEM interfaceview::IV::OnBoard::PusServices::EventServices::ST05::ST05.others {
Taste::FunctionName => "ST05";
};
IV_ST19 : SYSTEM interfaceview::IV::OnBoard::PusServices::EventServices::ST19::ST19.others {
Taste::FunctionName => "ST19";
};
IV_Housekeeping : SYSTEM interfaceview::IV::OnBoard::PusServices::HousekeepingServices::Housekeeping::Housekeeping.others {
Taste::FunctionName => "Housekeeping";
};
IV_ST03 : SYSTEM interfaceview::IV::OnBoard::PusServices::HousekeepingServices::ST03::ST03.others {
Taste::FunctionName => "ST03";
};
IV_ST12 : SYSTEM interfaceview::IV::OnBoard::PusServices::HousekeepingServices::ST12::ST12.others {
Taste::FunctionName => "ST12";
};
IV_ST11 : SYSTEM interfaceview::IV::OnBoard::PusServices::ST11::ST11.others {
Taste::FunctionName => "ST11";
};
IV_ST18 : SYSTEM interfaceview::IV::OnBoard::PusServices::OBCP::ST18::ST18.others {
Taste::FunctionName => "ST18";
};
IV_ST23 : SYSTEM interfaceview::IV::OnBoard::PusServices::FilesService::ST23::ST23.others {
Taste::FunctionName => "ST23";
};
IV_FileManagement : SYSTEM interfaceview::IV::OnBoard::PusServices::FilesService::FileManagement::FileManagement.others {
Taste::FunctionName => "FileManagement";
};
IV_ST20 : SYSTEM interfaceview::IV::OnBoard::PusServices::ParameterManagement::ST20::ST20.others {
Taste::FunctionName => "ST20";
};
IV_OnBoardParams : SYSTEM interfaceview::IV::OnBoard::PusServices::ParameterManagement::OnBoardParams::OnBoardParams.others {
Taste::FunctionName => "OnBoardParams";
};
IV_trigger : SYSTEM interfaceview::IV::OnBoard::PusServices::trigger::trigger.others {
Taste::FunctionName => "trigger";
};
IV_OnboardSoftware : SYSTEM interfaceview::IV::OnBoard::OnboardSoftware::OnboardSoftware.others {
Taste::FunctionName => "OnboardSoftware";
};
x86_partition : PROCESS deploymentview::DV::Node1::x86_partition.others {
Taste::coordinates => "112694 80013 205703 205198";
Deployment::Port_Number => 0;
};
x86_linux : PROCESSOR ocarina_processors_x86::x86.linux {
Taste::coordinates => "108044 63495 219385 206638";
};
PROPERTIES
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_Ground;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_TcQueue;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_TcDispatch;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_TmDispatch;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_TmQueue;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST17;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST01;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST08;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_OnBoardAPID;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST09;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_TimeReportAPID;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_Events;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST05;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST19;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_Housekeeping;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST03;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST12;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST11;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST18;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST23;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_FileManagement;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_ST20;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_OnBoardParams;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_trigger;
Taste::APLC_Binding => (reference (x86_partition)) APPLIES TO IV_OnboardSoftware;
Actual_Processor_Binding => (reference (x86_linux)) APPLIES TO x86_partition;
END Node1.others;
SYSTEM deploymentview
END deploymentview;
SYSTEM IMPLEMENTATION deploymentview.others
SUBCOMPONENTS
Node1 : SYSTEM Node1.others {
Taste::coordinates => "99682 52440 223225 210000";
};
interfaceview : SYSTEM interfaceview::IV::interfaceview.others;
END deploymentview.others;
PROPERTIES
Taste::coordinates => "0 0 297000 210000";
Taste::version => "2.0";
Taste::interfaceView => "InterfaceView.aadl";
Taste::HWLibraries => ("");
END deploymentview::DV;
This diff is collapsed.
AADL_PARSER=../../aadl_parser
all: test-parse
test-parse: clean
$(AADL_PARSER) --gw \
-o output \
--glue \
--debug \
-i InterfaceView.aadl \
-c DeploymentView.aadl \
-d DataView.aadl \
../common/ocarina_components.aadl \
#2>&1 | tail -1 | diff expected -
clean:
rm -rf output
.PHONY: clean test-parse
-- H2020 ESROCOS Project
-- Company: GMV Aerospace & Defence S.A.U.
-- Licence: GPLv2
-- ASN.1 definitions for CCSDS packets
-- (cf. ECSS-E-ST-70-41C section 7.4)
PUS-CcsdsPacket DEFINITIONS ::=
BEGIN
IMPORTS
PusTime FROM PUS-Time
PusServiceType, PusSubserviceType FROM PUS-Services
PusVersionNumber, PusTimeReferenceStatus, PusMessageTypeCounter, PusPacketType, PusApid,
PusChecksum, PusAcknowledgementFlags, PusPacketVersion, PusSecondaryHeaderFlag, PusSequenceFlags,
PusSequenceCount, PusPacketDataLength FROM PUS-CcsdsPacketFields
PusTM-1-X-Data FROM PUS-ST01
PusTM-3-25-Data FROM PUS-ST03
PusTM-5-X-Data FROM PUS-ST05
PusTC-8-1-Data FROM PUS-ST08
PusTC-9-1-Data, PusTM-9-2-Data FROM PUS-ST09
PusTC-12-1-2-Data FROM PUS-ST12
PusTC-19-X-Data FROM PUS-ST19
PusTC-TM-20-X-Data FROM PUS-ST20
PusTC-18-1-Data, PusTC-18-2-6-12-Data, PusTC-18-3-Data,
PusTC-18-4-5-Data, PusTC-18-13-Data FROM PUS-ST18
PusTC-TM-23-1-4-Data, PusTC-23-2-3-Data, PusTC-23-14-Data FROM PUS-ST23
PusSt05EventId FROM PUS-ST05 -- for PusTC-19-X-Data
PusUInt32 FROM PUS-TypesDefinitions
pus-ST11-MAX-SCHEDULED-ACTIVITIES FROM PUS-Config
;
-- TM secondary header
PusTmHeader ::= SEQUENCE
{
pusVersion PusVersionNumber,
timeRefStatus PusTimeReferenceStatus,
serviceId PusServiceType,
subtype PusSubserviceType,
msgTypeCount PusMessageTypeCounter,
destination PusApid,
time PusTime
-- no spare bits
}
-- TM actual data
PusTmSourceData ::= CHOICE
{
st-1-X PusTM-1-X-Data,
st-3-25 PusTM-3-25-Data,
st-5-X PusTM-5-X-Data,
st-9-2 PusTM-9-2-Data,
st-20-2 PusTC-TM-20-X-Data,
st-23-4 PusTC-TM-23-1-4-Data
}
-- TC secondary header
PusTcHeader ::= SEQUENCE
{
pusVersion PusVersionNumber,
ackFlags PusAcknowledgementFlags,
serviceId PusServiceType,
subtype PusSubserviceType,
source PusApid
-- no spare bits
}
-- Data for TM[19,1], event action
PusTC-19-1-Data ::= SEQUENCE
{
-- Just 1 action-event per TC
-- No Aplication Process ID in TC packet
eventId PusSt05EventId,
packetReduced PusPacketReduced
}
-- Schedulable action TC11.4
PusTcScheduledActivity ::= SEQUENCE
{
time PusTime,
packetReduced PusPacketReduced
}
-- Data field for TC11.4
PusTC-11-4-Data ::= SEQUENCE SIZE(1..pus-ST11-MAX-SCHEDULED-ACTIVITIES) OF PusTcScheduledActivity
-- TC actual data
PusTcApplicationData ::= CHOICE
{ -- The same order as the reduced
st-8-1 PusTC-8-1-Data,
st-9-1 PusTC-9-1-Data,
st-12-1-2 PusTC-12-1-2-Data,
st-18-2-6-12 PusTC-18-2-6-12-Data,
st-18-3 PusTC-18-3-Data,
st-18-4-5 PusTC-18-4-5-Data,
st-18-13 PusTC-18-13-Data,
st-19-X PusTC-19-X-Data,
st-20-X PusTC-TM-20-X-Data,
st-23-1 PusTC-TM-23-1-4-Data,
st-23-2-3 PusTC-23-2-3-Data,
st-23-14 PusTC-23-14-Data,
-- No packet reduced
st-11-4 PusTC-11-4-Data,
st-18-1 PusTC-18-1-Data,
st-19-1 PusTC-19-1-Data
}
PusTcApplicationDataReduced ::= CHOICE
{
st-8-1 PusTC-8-1-Data,
st-9-1 PusTC-9-1-Data,
st-12-1-2 PusTC-12-1-2-Data,
st-18-2-6-12 PusTC-18-2-6-12-Data,
st-18-3 PusTC-18-3-Data,
st-18-4-5 PusTC-18-4-5-Data,
st-18-13 PusTC-18-13-Data,
st-19-X PusTC-19-X-Data,
st-20-X PusTC-TM-20-X-Data,
st-23-1 PusTC-TM-23-1-4-Data,
st-23-2-3 PusTC-23-2-3-Data,
st-23-14 PusTC-23-14-Data
}
-- TM/TC header + data
PusTmHeaderData ::= SEQUENCE
{
header PusTmHeader,
data PusTmSourceData
}
PusTcHeaderDataTemplate{T} ::= SEQUENCE
{
header PusTcHeader,
data T
}
-- PusTcHeaderData ::= PusTcHeaderDataTemplate{PusTcApplicationData}
-- PusTcHeaderDataReduced ::= PusTcHeaderDataTemplate{PusTcApplicationDataReduced}
-- Packet data
PusPacketDataTemplate{T} ::= CHOICE
{
tmData PusTmHeaderData,
tmDataNoHeader PusTmSourceData,
tcData PusTcHeaderDataTemplate{T},
tcDataNoHeader T
}
PusPacketData ::= PusPacketDataTemplate{PusTcApplicationData}
PusPacketDataReduced ::= PusPacketDataTemplate{PusTcApplicationDataReduced}
-- CCSDS packet
-- TM/TC user data contains only the source/application data. No spare bits or checksum is used.
-- Spare bits are not needed because TASTE handles the packing of the fields.
-- Checksum is not used because TASTE handles encoding/decoding, and there might be
-- mismatched checksums if a message is transmitted between hosts with different endianness.
PusPacketTemplate{T} ::= SEQUENCE
{
packetVersion PusPacketVersion,
packetType PusPacketType,
secondaryHeaderFlag PusSecondaryHeaderFlag,
apid PusApid,
sequenceFlags PusSequenceFlags,
sequenceCount PusSequenceCount,
dataLength PusPacketDataLength,
data T
}
PusPacket ::= PusPacketTemplate {PusPacketData}
PusPacketReduced ::= PusPacketTemplate {PusPacketDataReduced}
END
-- H2020 ESROCOS Project
-- Company: GMV Aerospace & Defence S.A.U.
-- Licence: GPLv2
-- ASN.1 definitions for CCSDS packets
-- (cf. ECSS-E-ST-70-41C section 7.4)
PUS-CcsdsPacketFields DEFINITIONS ::=
BEGIN
IMPORTS
PusUInt4, PusUInt11, PusUInt14, PusUInt16, PusUInt32 FROM PUS-TypesDefinitions
PusServiceType, PusSubserviceType FROM PUS-Services;
-- Packet version number field
PusPacketVersion ::= ENUMERATED
{
pus-CCSDS-V1 (0) -- Version 0 for CCSDS 133. 0-B-1 (version 1 CCSDS packet)
}
-- Default packet version
pus-PACKET-VERSION-CURRENT PusPacketVersion ::= pus-CCSDS-V1
-- Packet type field (1 bit)
PusPacketType ::= ENUMERATED
{
pus-TM (0),
pus-TC (1)
}
-- Packet secondary header flag (1 bit)
PusSecondaryHeaderFlag ::= BOOLEAN
-- Application Process ID (11 bits)
PusApid ::= PusUInt11
-- reserved APIDs
pus-APID-TIME PusApid ::= 0 -- time packets
pus-APID-IDLE PusApid ::= 2047 -- idle packets
-- Sequence flags (3 bits)
PusSequenceFlags ::= ENUMERATED
{
pus-STANDALONE-PACKET (3) -- all PUS standard packets are standalone (11)
}
-- Sequence count (14 bits)
PusSequenceCount ::= PusUInt14
-- Packet data length (16 bits)
PusPacketDataLength ::= PusUInt16
-- PUS version numver (4 bits)
PusVersionNumber ::= ENUMERATED
{
pus-V0 (0), -- ESA PSS-07-101
pus-V1 (1), -- ECSS-E-70-41A
pus-V2 (2), -- ECSS-E-ST-70-41C
pus-INVALID-VERSION (15) -- Invalid value
}
pus-VERSION-CURRENT PusVersionNumber ::= pus-V2 -- current version
-- Spacecraft time reference status
PusTimeReferenceStatus ::= PusUInt4
pus-TIME-REFERENCE-STATUS-NONE PusTimeReferenceStatus ::= 0 -- value for application processes without the capability to report it
-- Message type counter (per destination and type)
PusMessageTypeCounter ::= PusUInt16
pus-MESSAGE-TYPE-COUNTER-NONE PusMessageTypeCounter ::= 0 -- value for application processes without such counter
-- Acknowledgement flags (4 bits)
PusAcknowledgementFlags ::= SEQUENCE
{
acceptanceReportRequested BOOLEAN,
startReportRequested BOOLEAN,
progressReportRequested BOOLEAN,
completionReportRequested BOOLEAN
}
-- Packet error control checksum (16 bits)
PusChecksum ::= PusUInt16
-- Type to identify progress steps used e.g. by ST[01] and ST[18]
PusStepId ::= PusUInt32
pus-STEP-NONE PusStepId ::= 0 -- Null step value
END
-- H2020 ESROCOS Project
-- Company: GMV Aerospace & Defence S.A.U.
-- Licence: GPLv2
-- ASN.1 constant definitions related to the configuration of PUS services
--
-- This file centralizes some definitions regarding sizes, etc. of the PUS services.
--
-- Limitations:
-- These sizes could be derived from the mission configuration. However, in order to
-- simplify code generation, they are currently defined here.
PUS-Config DEFINITIONS ::=
BEGIN
IMPORTS
PusUInt32 FROM PUS-TypesDefinitions
;
-- Dummy type, workaround for missing include bug in asn1.exe (TO-DO: remove when fixed)
PusConfigDummyType ::= PusUInt32
-- Maximum number of parameters in a housekeeping report
pus-ST03-MAX-REPORT-LENGTH PusUInt32 ::= 20
-- Maximun number of Scheduled Actions in a TC11.4 packet
pus-ST11-MAX-SCHEDULED-ACTIVITIES PusUInt32 ::= 5
-- Maximun number of character in OBCP ID (ST18)
pus-ST18-SIZE-OBCP-ID PusUInt32 ::= 10
-- Maximun number of character in OBCP Code TC[18,1]
pus-ST18-MAX-SIZE-OBCP-CODE PusUInt32 ::= 15000
-- Maximun number of bits in OBCP CHECKSUM (ST18)
pus-ST18-SIZE-OBCP-CHECKSUM PusUInt32 ::= 16
-- Maximum number of character in file path (ST23)
pus-ST23-MAX-SIZE-FILE-PATH PusUInt32 ::= 30
-- Maximum number of character in repository path (ST23)
pus-ST23-MAX-SIZE-REPOSITORY-PATH PusUInt32 ::= 30
-- Maximum number of character in repository domain (ST23)
pus-ST23-MAX-SIZE-REPOSITORY-DOMAIN PusUInt32 ::= 30
-- Maximum size of a file in ST23
pus-ST23-MAX-SIZE-FILE PusUInt32 ::= 1000
END
\ No newline at end of file
-- H2020 ESROCOS Project
-- Company: GMV Aerospace & Defence S.A.U.
-- Licence: GPLv2
-- ASN.1 definitions for the standard PUS services and subservices
-- (cf. ECSS-E-ST-70-41C)
-- Only a subset of the capabilities are implemented
PUS-Services DEFINITIONS ::=
BEGIN
IMPORTS PusUInt8 FROM PUS-TypesDefinitions;
-- PUS service types
PusServiceType ::= PusUInt8
PusSubserviceType ::= PusUInt8
-- Default value
pusService-NONE PusServiceType ::= 0
-- Standard service types (1..127)
pus-ST01-requestVerification PusServiceType ::= 1
pus-ST02-deviceAccess PusServiceType ::= 2
pus-ST03-housekeeping PusServiceType ::= 3
pus-ST04-parameterStatisticsReporting PusServiceType ::= 4
pus-ST05-eventReporting PusServiceType ::= 5
pus-ST06-memoryManagement PusServiceType ::= 6
-- reserved (7)
pus-ST08-functionManagement PusServiceType ::= 8
pus-ST09-timeManagement PusServiceType ::= 9
-- reserved (10)
pus-ST11-timeBasedScheduling PusServiceType ::= 11
pus-ST12-onBoardMonitoring PusServiceType ::= 12
pus-ST13-largePacketTransfer PusServiceType ::= 13
pus-ST14-realTimeForwardingControl PusServiceType ::= 14
pus-ST15-onBoardStorageAndRetrieval PusServiceType ::= 15
-- reserved (16)
pus-ST17-test PusServiceType ::= 17
pus-ST18-onBoardControlProcedure PusServiceType ::= 18
pus-ST19-eventAction PusServiceType ::= 19
pus-ST20-parameterManagement PusServiceType ::= 20
pus-ST21-requestSequencing PusServiceType ::= 21
pus-ST22-partitionBasedScheduling PusServiceType ::= 22
pus-ST23-fileManagement PusServiceType ::= 23
-- Standard service subtypes
-- Default value
pusSubtype-NONE PusSubserviceType ::= 0
-- ST[01] Request Verification
pus-TM-1-1-successfulAcceptance PusSubserviceType ::= 1
pus-TM-1-2-failedAcceptance PusSubserviceType ::= 2
pus-TM-1-3-successfulStart PusSubserviceType ::= 3
pus-TM-1-4-failedStart PusSubserviceType ::= 4
pus-TM-1-5-successfulProgress PusSubserviceType ::= 5
pus-TM-1-6-failedProgress PusSubserviceType ::= 6
pus-TM-1-7-successfulCompletion PusSubserviceType ::= 7
pus-TM-1-8-failedCompletion PusSubserviceType ::= 8
-- pus-TM-1-10-failedRouting PusSubserviceType ::= 10 -- NOT IMPLEMENTED
-- ST[02] Device Access