// copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
#ifndef ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESSUBSYSTEM_CONTROLMANAGE_TECHNICAL_STATEDEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESSUBSYSTEM_CONTROLMANAGE_TECHNICAL_STATEDEFVAR
#include "Requests.idl"
#include "Subsystem_Control.idl"
module org
{
module omg
{
module c4i
{
module Service_Interfaces
{
module Subsystem_Services
{
module Subsystem_Control
{
// Contains operations and sequence diagrams for the Manage Technical State
// interface.
module Manage_Technical_State
{
// Interface used by CMS to receive periodic technical state reports from the
// subsystem.
// Manage Technical State causes the subsystem to provide or change its technical
// state.
// Special Requirements:
// Initialization: Upon initialization, reset or power-on, the sub-system shall
// transition to a pre-defined state and report the current state to the CMS.
// Additional Information:
// If a critical component of the subsystem becomes NOT AVAILABLE, the technical
// state shall transition to FAILED.
// All states may transition to OFFLINE, but the subsystem shall only do so in
// emergency situations or catastrophic damage, to indicate an uncontrolled shutdown
// Startup, Shutdown, and Restart explain the sequence of
// actions for nominal progression through the technical states.
struct receive_periodic_technical_state_type
{
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::technical_state_type technical_state;
};
#ifndef DDS_XTYPES
#pragma keylist receive_periodic_technical_state_type
#endif
// Interface used by CMS to receive technical state reports from the subsystem which
// were the result of a transition request from the CMS.
// Manage Technical State causes the subsystem to provide or change its technical
// state.
// Special Requirements:
// Initialization: Upon initialization, reset or power-on, the sub-system shall
// transition to a pre-defined state and report the current state to the CMS.
// Additional Information:
// If a critical component of the subsystem becomes NOT AVAILABLE, the technical
// state shall transition to FAILED.
// All states may transition to OFFLINE, but the subsystem shall only do so in
// emergency situations or catastrophic damage, to indicate an uncontrolled shutdown
// Startup, Shutdown, and Restart explain the sequence of
// actions for nominal progression through the technical states.
struct receive_technical_state_type
{
#ifdef DDS_XTYPES
@Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::technical_state_type technical_state;
};
#ifndef DDS_XTYPES
#pragma keylist receive_technical_state_type request_id
#endif
// Interface used by the subsystem to receive requests from the CMS to change its
// technical state.
struct change_technical_state_type
{
#ifdef DDS_XTYPES
@Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::technical_state_type technical_state;
};
#ifndef DDS_XTYPES
#pragma keylist change_technical_state_type request_id
#endif
// Interface used by the subsystem to receive requests from the CMS to provide its
// current technical state.
struct provide_technical_state_type
{
#ifdef DDS_XTYPES
@Key org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#else
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
#endif
};
#ifndef DDS_XTYPES
#pragma keylist provide_technical_state_type request_id
#endif
};
};
};
};
};
};
};
#endif