122 lines
4.3 KiB
C++
122 lines
4.3 KiB
C++
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// GENERATED CODE - do not edit (Generated by ddkit/genModelMsg)
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// ScanCtrl.hpp (rmodel-msg)
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <tmsif/type/ScanCtrl.hpp>
|
|
#include <tmsif/tmsif_export.hpp>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <map>
|
|
|
|
|
|
namespace M_ScanCtrl {
|
|
|
|
|
|
//
|
|
// Service
|
|
//
|
|
|
|
/// Scan Control Service interface.
|
|
/// Contains operations that a client can command the Scan Control Service to perform.
|
|
///
|
|
/// The default use case of this interface is that a scan can be conducted around an assignment position
|
|
/// (e.g. assignment of a mount). All scan pattern positions are w.r.t. to the assigned position (e.g.
|
|
/// scan sector is around assignment position).
|
|
///
|
|
/// In other use cases, both sides of an interface have to mutually agree upon the reference coordinate
|
|
/// frame for scans.
|
|
/// @startuml "ScanCtrl State Chart"
|
|
/// hide empty description
|
|
/// top to bottom direction
|
|
///
|
|
/// skinparam StateBorderColor<<internalState>> dimgray
|
|
/// skinparam StateBackgroundColor<<internalState>> white
|
|
/// skinparam StateBorderColor<<ctrlState>> dimgray
|
|
/// skinparam StateBackgroundColor<<ctrlState>> lightcyan
|
|
/// skinparam StateBorderColor<<searchState>> dimgray
|
|
/// skinparam StateBackgroundColor<<searchState>> thistle
|
|
/// skinparam StateBackgroundColor<<sysBorder>> white
|
|
/// skinparam StateBorderColor<<sysBorder>> black
|
|
/// skinparam NoteFontSize<<sysBorder>> 30
|
|
/// skinparam StateBorderColor<<sysBorder>> black
|
|
///
|
|
/// skinparam StateBorderColor<<connector>> transparent
|
|
/// skinparam StateBackgroundColor<<connector>> lightblue
|
|
///
|
|
/// legend top left
|
|
/// <back:thistle><font size=20>ScanCtrlMode
|
|
/// endlegend
|
|
///
|
|
///
|
|
///
|
|
/// state SUPERORDINATE_DEVICE_MODE<<ctrlState>>{
|
|
/// note "Transitions are taken and states are reported\nregardless of whether the service supports these\nsearch features." as N3
|
|
///
|
|
/// SUPERORDINATE_DEVICE_MODE : This state represents the superordinate device state in which a scan is performed (e.g. Assignment control state of mount).
|
|
/// SUPERORDINATE_DEVICE_MODE : ScanCtrlMode shall be <back:thistle>Off</back> outside this state.
|
|
///
|
|
///
|
|
/// [*] --> OFF
|
|
/// SUPERORDINATE_DEVICE_MODE --> INIT : CmdScanAction[Reset]
|
|
/// SUPERORDINATE_DEVICE_MODE --> OFF : CmdScanAction[Stop]
|
|
///
|
|
///
|
|
/// state "OFF" as OFF <<searchState>>
|
|
/// OFF --> INIT : CmdScanAction[Run]
|
|
///
|
|
/// state "INIT" as INIT <<searchState>>
|
|
/// INIT --> RUNNING : evReachedStartPos
|
|
/// state "RUNNING" as RUNNING <<searchState>>
|
|
/// RUNNING --> PAUSED : CmdScanAction[Pause]
|
|
///
|
|
/// state "PAUSED" as PAUSED <<searchState>>
|
|
/// PAUSED --> RUNNING : CmdScanAction[Run]
|
|
///
|
|
/// INIT : <b>Device initializes scan
|
|
/// RUNNING : <b>Device scans with given scan pattern
|
|
/// PAUSED : <b>Scan is paused.
|
|
/// PAUSED : <b>E.g. needed if operator wants to pause and search manually.
|
|
/// }
|
|
///
|
|
///
|
|
///
|
|
/// @enduml
|
|
class TMSIF_EXPORT IService {
|
|
|
|
public:
|
|
virtual ~IService();
|
|
virtual void CmdScanPattern(std::string const& PatternName, M_ScanCtrl::ScanPatternOptionalType const& ScanPattern);
|
|
virtual void CmdScanAction(M_ScanCtrl::ScanCtrlMode::Type Action);
|
|
virtual void ConfigStoreScanPattern(std::string const& KeyPatternName, M_ScanCtrl::ScanPatternType const& ScanPattern, bool IsRemoved);
|
|
virtual void CmdDeleteScanPattern(std::string const& PatternName);
|
|
};
|
|
|
|
|
|
//
|
|
// Client
|
|
//
|
|
|
|
/// Scan Control Client interface.
|
|
/// Contains operations reported by the Scan Control Service.
|
|
class TMSIF_EXPORT IClient {
|
|
|
|
public:
|
|
virtual ~IClient();
|
|
virtual void ReportScanCtrlSettings(M_ScanCtrl::ScanCtrlSettingsType const& Settings);
|
|
virtual void ReportScanCtrlStatus(M_ScanCtrl::ScanCtrlStatusType const& Status, bool IsRemoved);
|
|
virtual void ReportStoredScanPattern(std::string const& KeyPatternName, M_ScanCtrl::ScanPatternType const& ScanPattern, bool IsRemoved);
|
|
virtual void ReportAssignmentSearchOffset(M_Common::PositionType const& Offset);
|
|
};
|
|
|
|
|
|
} // namespace M_ScanCtrl
|
|
|
|
|