// 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_SUBSYSTEM_PARAMETERSDEFVAR
#define ORGOMGC4ISERVICE_INTERFACESSUBSYSTEM_SERVICESSUBSYSTEM_CONTROLMANAGE_SUBSYSTEM_PARAMETERSDEFVAR
#include "Common_Types.idl"
#include "Requests.idl"
#include "Subsystem_Control.idl"
module org
{
module omg
{
module c4i
{
module Service_Interfaces
{
module Subsystem_Services
{
module Subsystem_Control
{
module Manage_Subsystem_Parameters
{
// struct holding keys for class report_parameter_values_type.
struct report_parameter_values_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
};
// The service allows the actor to obtain and modify the values of parameters of the
// subsystem. It also provides the facilities to retrieve the descriptions of
// parameters available in a certain subsystem.
// The actor of the service is the Combat Management System.
// The service starts when the CMS requests one of the following:
//
// - Parameter value retrieval
// - Parameter value modification
// - Retrieval of parameter descriptor,
//
// with a list of parameter names (and values in case of modification).
// A parameter value may be structured (e.g. a vector or a table).
// The service ends when the subsystem has provided the requested information or
// modified the parameter value.
// It is the CMS's responsibility to initiate the determination of initial state by
// making a request for information to the subsystem.
// Parameter names used by a subsystem are to be unique within the scope of that
// subsystem. Requests for parameter descriptions and to get and set current values
// are consequently well-defined. Parameter names may be structured using a
// namespace scheme to promote uniqueness.
// Unknown parameter
// On receipt of a request for parameter value retrieval, parameter value
// modification or parameter descriptor retrieval for an unknown parameter name, the
// subsystem responds with an indication “unknown parameter”. Other (correctly
// identified) parameters in the same request are processed as requested.
// Illegal parameter value
// On receipt of a request for parameter value modification with a parameter value
// that is outside the allowable range of the specified parameter, the subsystem
// responds with an indication “illegal parameter value” and does not change the
// parameter value.
// This includes inconsistencies of parameter type (e.g. real where integer is
// expected) and structure (e.g. vector of 2 elements, where a vector of 3 is
// expected).
// Other parameters with legal values in the same request are modified as requested.
// In case of an illegal value for an element of a structured parameter, the entire
// parameter remains unchanged.
//
// Modification of parameter value
// A parameter value may only be modified in the technical state(s) as specified in
// the descriptor of that parameter.
// Security
// Access to the service may be restricted to certain parts of the CMS because of
// security restrictions.
struct report_parameter_values_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
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
#ifdef DDS_XTYPES
@key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#else
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::name_value_sequence_type the_name_value_set;
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::name_error_sequence_type the_name_error_set;
};
#ifndef DDS_XTYPES
#pragma keylist report_parameter_values_type request_id subsystem_id
#endif
// struct holding keys for class report_parameter_descriptors_type.
struct report_parameter_descriptors_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
};
// The service allows the actor to obtain and modify the values of parameters of the
// subsystem. It also provides the facilities to retrieve the descriptions of
// parameters available in a certain subsystem.
// The actor of the service is the Combat Management System.
// The service starts when the CMS requests one of the following:
//
// - Parameter value retrieval
// - Parameter value modification
// - Retrieval of parameter descriptor,
//
// with a list of parameter names (and values in case of modification).
// A parameter value may be structured (e.g. a vector or a table).
// The service ends when the subsystem has provided the requested information or
// modified the parameter value.
// It is the CMS's responsibility to initiate the determination of initial state by
// making a request for information to the subsystem.
// Parameter names used by a subsystem are to be unique within the scope of that
// subsystem. Requests for parameter descriptions and to get and set current values
// are consequently well-defined. Parameter names may be structured using a
// namespace scheme to promote uniqueness.
// Unknown parameter
// On receipt of a request for parameter value retrieval, parameter value
// modification or parameter descriptor retrieval for an unknown parameter name, the
// subsystem responds with an indication “unknown parameter”. Other (correctly
// identified) parameters in the same request are processed as requested.
// Illegal parameter value
// On receipt of a request for parameter value modification with a parameter value
// that is outside the allowable range of the specified parameter, the subsystem
// responds with an indication “illegal parameter value” and does not change the
// parameter value.
// This includes inconsistencies of parameter type (e.g. real where integer is
// expected) and structure (e.g. vector of 2 elements, where a vector of 3 is
// expected).
// Other parameters with legal values in the same request are modified as requested.
// In case of an illegal value for an element of a structured parameter, the entire
// parameter remains unchanged.
//
// Modification of parameter value
// A parameter value may only be modified in the technical state(s) as specified in
// the descriptor of that parameter.
// Security
// Access to the service may be restricted to certain parts of the CMS because of
// security restrictions.
struct report_parameter_descriptors_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
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
#ifdef DDS_XTYPES
@key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#else
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::descriptor_sequence_type the_descriptor_sequence;
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::name_error_sequence_type the_name_error_set;
};
#ifndef DDS_XTYPES
#pragma keylist report_parameter_descriptors_type request_id subsystem_id
#endif
// struct holding keys for class retrieve_parameter_values_type.
struct retrieve_parameter_values_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
};
struct retrieve_parameter_values_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
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
#ifdef DDS_XTYPES
@key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#else
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::parameter_name_sequence_type the_name_set;
};
#ifndef DDS_XTYPES
#pragma keylist retrieve_parameter_values_type request_id subsystem_id
#endif
// struct holding keys for class modify_parameter_values_type.
struct modify_parameter_values_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
};
struct modify_parameter_values_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
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
#ifdef DDS_XTYPES
@key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#else
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::name_value_sequence_type the_name_value_set;
};
#ifndef DDS_XTYPES
#pragma keylist modify_parameter_values_type request_id subsystem_id
#endif
// struct holding keys for class retrieve_parameter_descriptors_type.
struct retrieve_parameter_descriptors_key_type
{
org::omg::c4i::Domain_Model::Common_Types::Requests::request_id_type request_id;
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
};
struct retrieve_parameter_descriptors_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
// Indicates which subsystem published the data or is intended to read it as a
// subscriber
#ifdef DDS_XTYPES
@key org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#else
org::omg::c4i::Domain_Model::Common_Types::subsystem_id_type subsystem_id;
#endif
org::omg::c4i::Domain_Model::Subsystem_Domain::Subsystem_Control::parameter_name_sequence_type the_name_set;
};
#ifndef DDS_XTYPES
#pragma keylist retrieve_parameter_descriptors_type request_id subsystem_id
#endif
};
};
};
};
};
};
};
#endif