AuboStudio SDK  0.6.3
application_api.h
浏览该文件的文档.
1#ifndef AUBO_SCOPE_APPLICATION_API_H
2#define AUBO_SCOPE_APPLICATION_API_H
3
11
12namespace arcs {
13
14namespace aubo_sdk {
16}
17
18namespace aubo_scope {
21
22/**
23 * @defgroup ApplicationApi ApplicationApi(应用程序)
24 * @ingroup ApplicationApi
25 * ApplicationApi
26 * Provides access to functionality and services which are relevant for various
27 * different applications and contexts. This includes what is available from
28 * within AuboScope, as well as creating additional model elements to be used
29 * within AuboScope.
30 */
32{
33public:
36 virtual ~ApplicationApi();
37
38 /**
39 * @ingroup ApplicationApi
40 * @ref IoModel
41 * @return An interface for working with the inputs and outputs of the robot
42 */
43 IoModelPtr getIoModel();
44
45 /**
46 * @ingroup ApplicationApi
47 * @ref FeatureModel
48 * @return An interface for working with the features of the current
49 * installation
50 */
51 FeatureModelPtr getFeatureModel();
52
53 /**
54 * @ingroup ApplicationApi
55 * @ref TcpModel
56 * @return An interface for accessing the TCPs of the current installation
57 */
58 TcpModelPtr getTcpModel();
59
60 /**
61 * @ingroup ApplicationApi
62 * @ref PayloadModel
63 * Gets an interface which provides access the payloads in the current
64 * AuboScope installation.
65 *
66 * @return An interface for accessing the payloads in the current AuboScope
67 * installation
68 */
69 PayloadModelPtr getPayloadModel();
70
71 /**
72 * @ingroup ApplicationApi
73 * @ref VariableModel
74 * @return An interface for working with variables
75 */
76 VariableModelPtr getVariableModel();
77
78 /**
79 * @ingroup ApplicationApi
80 * @ref ValueFactory
81 * @return An interface for accessing various factories capable of creating
82 * value objects.
83 */
84 ValueFactoryPtr getValueFactory();
85
86 // /**
87 // * @return An interface with access to various queryable-only system
88 // resources
89 // */
90 // ResourceModel getResourceModel();
91
92 /**
93 * This method can be used to get a specific {@link
94 * InstallationNodeContribution} instance
95 *
96 * @param installationType The class of the installation node
97 * contribution to return
98 * @param <T> The generic for specifying the {@link
99 * InstallationNodeContribution}
100 * @return The installation node instance
101 */
102 template <typename T>
103 std::shared_ptr<T> getInstallationNode()
104 {
105 return std::dynamic_pointer_cast<T>(
106 getInstallationNode(typeid(T).name()));
107 }
108 InstallationNodeContributionPtr getInstallationNode(
109 const char *typeidOfClass);
110
111 /**
112 * @ingroup ApplicationApi
113 * @ref DeviceManager
114 * This method can be used to get a specific {@link DeviceManager}
115 * instance
116 *
117 * @param deviceManagerClass The class for the device manager to return
118 * @param <T> The generic type of class to return
119 * @return An interface for registering and working with a specific
120 * device
121 */
122 DeviceManagerPtr getDeviceManager();
123
124 /**
125 * @brief getRobotProxy
126 * @return
127 */
128 aubo_sdk::RobotProxyPtr getRobotProxy();
129
130protected:
132
133private:
134 friend class DataSwitch;
135 void *d_{ nullptr };
136};
137
138} // namespace aubo_scope
139} // namespace arcs
140
141#endif // AUBO_SCOPE_APPLICATION_API_H
#define ARCS_ABI_EXPORT
#define ARCS_CLASS_FORWARD(C)
Macro that forward declares a class and defines the respective smartpointers through ARCS_DECLARE_PTR...
ApplicationApi(ApplicationApi &f)
InstallationNodeContributionPtr getInstallationNode(const char *typeidOfClass)
aubo_sdk::RobotProxyPtr getRobotProxy()
getRobotProxy
std::shared_ptr< T > getInstallationNode()
This method can be used to get a specific InstallationNodeContribution instance
ApplicationApi(ApplicationApi &&f)
PayloadModelPtr getPayloadModel()
PayloadModel Gets an interface which provides access the payloads in the current AuboScope installati...
DeviceManagerPtr getDeviceManager()
DeviceManager This method can be used to get a specific DeviceManager instance
FeatureModelPtr getFeatureModel()
FeatureModel
TcpModelPtr getTcpModel()
TcpModel
ValueFactoryPtr getValueFactory()
ValueFactory
IoModelPtr getIoModel()
IoModel
VariableModelPtr getVariableModel()
VariableModel