onboardapi  9.10.0
by Rheinmetall
M_Mount::IService Class Reference

Public Member Functions

virtual ~IService ()
 
virtual void ConfigMaximumRate (M_Common::AngleRateDegreesPerSecOptionalType const &AzimuthRate, M_Common::AngleRateDegreesPerSecOptionalType const &ElevationRate)
 
virtual void ConfigInputSource (bool IsClientIdFilterEnabled, M_Common::StringListType const &ClientIds)
 
virtual void ConfigTgtAssignmentInputSource (bool IsTgtAssignmentClientIdFilterEnabled, M_Common::StringListType const &TgtAssignmentClientIds)
 
virtual void ConfigTgtAssignmentSearchInputSource (bool IsTgtAssignmentSearchClientIdFilterEnabled, M_Common::StringListType const &TgtAssignmentSearchClientIds)
 
virtual void ConfigTgtAssignmentSearchPattern (M_Mount::TgtAssignmentSearchPatternType const &SearchPatternParams)
 
virtual void ConfigLeadingDevice (M_Common::LongOptionalType const &DeviceId)
 
virtual void ConfigSlavedDevice (M_Common::LongOptionalType const &DeviceId)
 
virtual void ConfigSlewLimits (M_Mount::AngularLimitType const &SlewLimits)
 
virtual void ConfigStorePosition (std::string const &KeyId, M_Common::AngleDegreesType Azimuth, M_Common::AngleDegreesType Elevation, bool IsRemoved)
 
virtual void CmdMoveToStoredPosition (std::string const &Id)
 
virtual void CmdMode (M_Mount::ModeCommand::Type Mode)
 
virtual void CmdTgtAssignmentSearchAction (M_Mount::TgtAssignmentSearchCmdKind::Type Action)
 
virtual void CmdAutoDriftCompensation (bool IsEnabled)
 
virtual void CmdManualDriftCompensation (M_Common::AngleRateDegreesPerSecType OffsetAzimuthRate, M_Common::AngleRateDegreesPerSecType OffsetElevationRate, bool IsRelative)
 
virtual void CmdAllowExternalDriftCompensation (bool IsAllowed)
 
virtual void CmdHorizontalAiming (bool IsEnabled)
 
virtual void CmdSetOperationalModeRateAid (bool Activate)
 
virtual void NotifyAngle (std::string const &InputSourceClientId, M_Common::AngleDegreesType Azimuth, M_Common::AngleDegreesType Elevation, M_Mount::MountAngleParamsType const &AngleParams)
 
virtual void NotifyTgtAssignment (std::string const &InputSourceClientId, M_Common::PositionType const &Position, M_Common::LinearVelocityOptionalType const &Velocity, M_Common::TimeType const &Timestamp, M_Mount::MountAngleParamsType const &AngleParams)
 
virtual void NotifyRateRelative (std::string const &InputSourceClientId, M_Common::AngleRateDegreesPerSecType AzimuthRate, M_Common::AngleRateDegreesPerSecType ElevationRate)
 
virtual void NotifyRateAbsolute (std::string const &InputSourceClientId, M_Common::AngleRateDegreesPerSecType AzimuthRate, M_Common::AngleRateDegreesPerSecType ElevationRate)
 
virtual void NotifyRateScaled (std::string const &InputSourceClientId, M_Mount::ScaledRateOptionalType const &ScaledRate)
 

Detailed Description

Mount Service interface. Contains operations that a client can command the Mount Service to perform.

Mount State Chart

Constructor & Destructor Documentation

◆ ~IService()

M_Mount::IService::~IService ( )
virtual

Member Function Documentation

◆ CmdAllowExternalDriftCompensation()

void M_Mount::IService::CmdAllowExternalDriftCompensation ( bool  IsAllowed)
virtual

Command to allow external sources to set drift compensation.

Parameters
IsAllowedIndicates whether external drift compensation is allowed.

◆ CmdAutoDriftCompensation()

void M_Mount::IService::CmdAutoDriftCompensation ( bool  IsEnabled)
virtual

Command to the Mount service to enable or disable automatic drift compensation correction. This is used to correct a drifting Mount platform. It uses offset values automatically determined by the Mount platform.

Parameters
IsEnabledIndicates if drift compensation should be enabled (true) or disabled (false). True = Enable drift compensation False = Disable drift compensation

◆ CmdHorizontalAiming()

void M_Mount::IService::CmdHorizontalAiming ( bool  IsEnabled)
virtual

Command to aim perfectly aligned with the horizon line by compensating vehicle attitude.

Parameters
IsEnabledIndicates whether horizontal aiming should be enabled (true) or disabled (false).

◆ CmdManualDriftCompensation()

void M_Mount::IService::CmdManualDriftCompensation ( M_Common::AngleRateDegreesPerSecType  OffsetAzimuthRate,
M_Common::AngleRateDegreesPerSecType  OffsetElevationRate,
bool  IsRelative 
)
virtual

Command to manually set the specified drift compensation offset. This is used to set the offset values to correct a drifting Mount.

Parameters
OffsetAzimuthRateAzimuth rate offset in degrees.
OffsetElevationRateElevation rate offset in degrees.
IsRelativeIndicates if the provided rate values are relative to the currently used Drift compensation (true) or absolute rate value replacing currently used Drift compensation. True = Relative to the currently used Drift compensation False = Absolute rate value replacing currently used Drift compensation

◆ CmdMode()

void M_Mount::IService::CmdMode ( M_Mount::ModeCommand::Type  Mode)
virtual

Command to set mode of control and stabilization for a Mount platform.

Note: The Mount will use stored data from previously provided config calls when required as parameters for the specified Mode.

Parameters
ModeMode of control and stabilization for a Mount platform.

◆ CmdMoveToStoredPosition()

void M_Mount::IService::CmdMoveToStoredPosition ( std::string const &  Id)
virtual

Move to an earlier assigned or persistently stored mount position, identified by a string key.

Parameters
IdIdentifies the stored position to be moved to

◆ CmdSetOperationalModeRateAid()

void M_Mount::IService::CmdSetOperationalModeRateAid ( bool  Activate)
virtual

Sets operational mode RateAid calculation.

Parameters
ActivateActivate the RateAid calculation (true) or deacivate (false).

◆ CmdTgtAssignmentSearchAction()

void M_Mount::IService::CmdTgtAssignmentSearchAction ( M_Mount::TgtAssignmentSearchCmdKind::Type  Action)
virtual

Control Target Assignment search action.

Note: Command is only processed when the Mount is in the "Target_Assignment" Control Mode.

Parameters
ActionType of action to perform.

◆ ConfigInputSource()

void M_Mount::IService::ConfigInputSource ( bool  IsClientIdFilterEnabled,
M_Common::StringListType const &  ClientIds 
)
virtual

Determine source for inputs.

Note: Input data should only be handled by the mount from the configured clients. Input data from other clients should be ignored. If a filter is disabled, all inputs are allowed. If a filter is enabled, all inputs in the according list are allowed (white list). (Therefore, an enabled filter in combination with an empty list inhibits all input.)

Parameters
IsClientIdFilterEnabledIndicates whether the mount should filter client ID input.
ClientIdsList of client IDs to accept data (angles, rates) input from.

The following calls should only be handled from the specified clients:

◆ ConfigLeadingDevice()

void M_Mount::IService::ConfigLeadingDevice ( M_Common::LongOptionalType const &  DeviceId)
virtual

Configure the internal device that the Mount shall be slaved to. If value is not present, no leading device shall be used to slave to.

Note: This should be stored and used when in "Slaved_To_Leading_Device" Control Mode.

Parameters
DeviceIdDevice to be slaved to over an internal interface. Not present means that no leading device shall be used to slave to.

◆ ConfigMaximumRate()

void M_Mount::IService::ConfigMaximumRate ( M_Common::AngleRateDegreesPerSecOptionalType const &  AzimuthRate,
M_Common::AngleRateDegreesPerSecOptionalType const &  ElevationRate 
)
virtual

Configure the maximum rate of movement for a Mount platform (angular velocity soft limits).

Parameters
AzimuthRateMaximum azimuth rate in degrees per second. Not present means no limit.
ElevationRateMaximum elevation rate in degrees per second. Not present means no limit.

◆ ConfigSlavedDevice()

void M_Mount::IService::ConfigSlavedDevice ( M_Common::LongOptionalType const &  DeviceId)
virtual

Configure the internal device that shall be slaved to the Mount. If value is not present, no slaving device shall be used.

Parameters
DeviceIdDevice to slave over an internal interface. Not present means that no slaving device shall be used.

◆ ConfigSlewLimits()

void M_Mount::IService::ConfigSlewLimits ( M_Mount::AngularLimitType const &  SlewLimits)
virtual

Configure the azimuth/elevation slew limits. If slew limitation is specified the Mount service uses the provided limits, otherwise the hard limits of the Mount will be used.

Parameters
SlewLimitsAngular slew limits for Mount which can change during runtime. Note: Setting the limit to not present deactivates the limit.

◆ ConfigStorePosition()

void M_Mount::IService::ConfigStorePosition ( std::string const &  KeyId,
M_Common::AngleDegreesType  Azimuth,
M_Common::AngleDegreesType  Elevation,
bool  IsRemoved 
)
virtual

Store a mount position, identified by a string key. This is meant to quickly access positions of interest for later use.

Parameters
KeyIdIdentifies the position to be stored.
AzimuthAzimuth [deg].
ElevationElevation [deg].
IsRemovedIndicates if the service should delete a stored position (true) or not (false). After this has been set to true, the position will no longer be available to late joiners.

◆ ConfigTgtAssignmentInputSource()

void M_Mount::IService::ConfigTgtAssignmentInputSource ( bool  IsTgtAssignmentClientIdFilterEnabled,
M_Common::StringListType const &  TgtAssignmentClientIds 
)
virtual

Determine source for target assignment inputs.

Note: Input data should only be handled by the mount from the configured clients. Input data from other clients should be ignored. If a filter is disabled, all inputs are allowed. If a filter is enabled, all inputs in the according list are allowed (white list). (Therefore, an enabled filter in combination with an empty list inhibits all input.)

Parameters
IsTgtAssignmentClientIdFilterEnabledIndicates whether the mount should filter target assignment client ID input.
TgtAssignmentClientIdsList of client IDs from which target assignment notifies shall are processed.

The following calls should only be handled from the specified clients:

◆ ConfigTgtAssignmentSearchInputSource()

void M_Mount::IService::ConfigTgtAssignmentSearchInputSource ( bool  IsTgtAssignmentSearchClientIdFilterEnabled,
M_Common::StringListType const &  TgtAssignmentSearchClientIds 
)
virtual

Determine source for target assignment search inputs.

Note: Input data should only be handled by the mount from the configured clients. Input data from other clients should be ignored. If a filter is disabled, all inputs are allowed. If a filter is enabled, all inputs in the according list are allowed (white list). (Therefore, an enabled filter in combination with an empty list inhibits all input.)

Parameters
IsTgtAssignmentSearchClientIdFilterEnabledIndicates whether the mount should filter target assignment search client ID input.
TgtAssignmentSearchClientIdsList of client IDs from which rates shall be processed in manual search mode.

The following calls should only be handled from the specified clients when the mount is in mode "Target_Assignment" and TgtAssignmentSearchState = "Manual_Search".

◆ ConfigTgtAssignmentSearchPattern()

void M_Mount::IService::ConfigTgtAssignmentSearchPattern ( M_Mount::TgtAssignmentSearchPatternType const &  SearchPatternParams)
virtual

Configure the search area around the Target Assignment position.

Note: This should be stored and used when searching around a position in provided "NotifyTgtAssignmentCart" or "NotifyTgtAssignmentSphere" in "Target_Assignment" Control Mode.

Parameters
SearchPatternParamsSearch pattern parameters.

◆ NotifyAngle()

void M_Mount::IService::NotifyAngle ( std::string const &  InputSourceClientId,
M_Common::AngleDegreesType  Azimuth,
M_Common::AngleDegreesType  Elevation,
M_Mount::MountAngleParamsType const &  AngleParams 
)
virtual

Notify the Mount to turn to a position angle in degrees.

Note: This operation shall be called only if the InputSourceClientId matches with the MountStatusType.InputSourceClientId of ReportMountStatus().

Parameters
InputSourceClientIdThe client name of the calling instance associated with the position angle
AzimuthAzimuth in degrees.
ElevationElevation in degrees.
AngleParamsParameters to tune how the Mount should be commanded into position. Note: This indicates, among other things, what the above position is relative to.

◆ NotifyRateAbsolute()

void M_Mount::IService::NotifyRateAbsolute ( std::string const &  InputSourceClientId,
M_Common::AngleRateDegreesPerSecType  AzimuthRate,
M_Common::AngleRateDegreesPerSecType  ElevationRate 
)
virtual

Command to set absolute rate of movement for a Mount platform. A value of 0 stops the Mount from moving. A negative value moves the Mount in the other direction.

Note: This is implemented as a notify call in order to always contain the latest value from a client. Note: This operation shall be called only if the InputSourceClientId matches with the MountStatusType.InputSourceClientId of ReportMountStatus().

Parameters
InputSourceClientIdThe client name of the calling instance associated with the absolute rate
AzimuthRateAzimuth rate in degrees per second.
ElevationRateElevation rate in degrees per second.

◆ NotifyRateRelative()

void M_Mount::IService::NotifyRateRelative ( std::string const &  InputSourceClientId,
M_Common::AngleRateDegreesPerSecType  AzimuthRate,
M_Common::AngleRateDegreesPerSecType  ElevationRate 
)
virtual

Command to set relative rate of movement for a Mount platform. A value of 0 keeps the current Mount movement. A positive value speeds up or negative value slows down the Mount movement in one direction. A negative value speeds up or a positive value slows down the movement in the opposite direction.

Note: This is implemented as a notify call in order to always contain the latest value from a client. Note: This operation shall be called only if the InputSourceClientId matches with the MountStatusType.InputSourceClientId of ReportMountStatus().

Parameters
InputSourceClientIdThe client name of the calling instance associated with the absolute rate
AzimuthRateAzimuth rate in degrees per second.
ElevationRateElevation rate in degrees per second.

◆ NotifyRateScaled()

void M_Mount::IService::NotifyRateScaled ( std::string const &  InputSourceClientId,
M_Mount::ScaledRateOptionalType const &  ScaledRate 
)
virtual

Provides the Mount with normed rate of movement. This sets the rate of movement normed to the maximum possible rate of the Mount. A value of 0 stops the Mount from moving. A value of 1 or -1 moves the Mount at the maximum rate. A negative value moves the Mount in the opposite direction.

Note: This is implemented as a notify call in order to always contain the latest value from a client. This can then correspond to an output report from a joystick.

Note: This operation shall be called only if the InputSourceClientId matches with the MountStatusType.InputSourceClientId of ReportMountStatus().

Parameters
InputSourceClientIdThe client name of the calling instance associated with the scaled rate
ScaledRateRate of movement normed to the maximum possible rate of the Mount. Note: Not present indicates no rate (similar to setting a rate of 0)

◆ NotifyTgtAssignment()

void M_Mount::IService::NotifyTgtAssignment ( std::string const &  InputSourceClientId,
M_Common::PositionType const &  Position,
M_Common::LinearVelocityOptionalType const &  Velocity,
M_Common::TimeType const &  Timestamp,
M_Mount::MountAngleParamsType const &  AngleParams 
)
virtual

Designate the Mount to position for a target assignment. The Mount will follow the object automatically between updates by using the provided object velocity.

Note: This operation shall be called only if the InputSourceClientId matches with the MountStatusType.InputSourceClientId of ReportMountStatus().

Parameters
InputSourceClientIdThe client name of the calling instance associated with the assignment
PositionTarget position.
VelocityTarget velocity.
TimestampTimestamp of target data.
AngleParamsParameters to tune how the Mount should be commanded into position. Note: This indicates, among other things, what the above position is relative to.