Actin®  Version 5.2.0
Software for Robotics Simulation and Control
ecPluginSignals.h
Go to the documentation of this file.
1 #ifndef ec_PluginSignals_H_
2 #define ec_PluginSignals_H_
3 //------------------------------------------------------------------------------
4 // Copyright (c) 2012-2013 Energid Technologies. All rights reserved.
5 //
8 //
9 //------------------------------------------------------------------------------
10 #include <foundCore/ecFoundCoreSignals.h> // Required to be first header.
11 #include "ecIOParams.h"
12 
15 
16 #include <boost/mpl/string.hpp>
17 #include <boost/logic/tribool.hpp>
18 
19 #ifndef WIN32
20 // Avoid getting warnings from gcc related to the use of multichar below.
21 // FIXME: I would like to use "diagnostic ignored"; however, the pragma does not seem to work.
22 // system_header is a bit heavy-handed here.
23 //# pragma GCC diagnostic ignored "-Wmultichar"
24 # pragma GCC system_header
25 #endif
26 
31 class EcPoseSet;
32 
33 namespace Ec
34 {
37 {
42 };
43 
46 {
47  // Default operation is a Get
48  PM_SetModifier = 0x8000,
49 
50  // Plugin network enumerations start at 0x101
51  PM_Ack = 0x0100,
52 
53  // hardwarePlugin messages
54  PM_EmergencyStop,
56  PM_Reset,
57 
58  // manipulationDirectorExecPlugin messages
65 
66  // manipulationActionExecPlugin message
71 
72  // manipulationSequenceExecPlugin message
74 
75  // networkPlugin messages
79  PM_Terminate,
80 
81  // control-related message
85 };
86 
87 
88 // NOTE: Must split Name into groups of 4 (or fewer) characters.
89 
90 //------------------------------------------------------------------------------
94 {
95  typedef boost::mpl::string<'atta', 'chme', 'ntCh', 'ange'> Name;
96  typedef void (Type)(const EcManipulatorAttachmentChange& attachmentChange);
97 };
98 
99 //------------------------------------------------------------------------------
102 {
103  typedef boost::mpl::string<'atta', 'chme', 'ntMa', 'pCha', 'nge'> Name;
104  typedef void (Type)();
105 };
106 
107 //------------------------------------------------------------------------------
110 {
111  typedef boost::mpl::string<'coll', 'isio', 'nMap', 'Chan', 'ge'> Name;
112  typedef void (Type)();
113 };
114 
115 //------------------------------------------------------------------------------
120 {
121  typedef boost::mpl::string<'cont', 'rolD', 'escr', 'ipti', 'onCh', 'ange'> Name;
122  typedef void (Type)(const EcU32 manipIndex, const EcU32 descIndex);
123 };
124 
125 //------------------------------------------------------------------------------
130 {
131  typedef boost::mpl::string<'cont', 'rolM', 'etho', 'dCha', 'nge'> Name;
132  typedef void (Type)(const EcU32 manipIndex, const EcU32 methodIndex);
133 };
134 
135 //------------------------------------------------------------------------------
140 {
141  typedef boost::mpl::string<'cont', 'rolM', 'ode', 'Chan', 'ge'> Name;
142  typedef void (Type)(const EcU32 manipIndex, const EcU32 eeIndex, const EcU32 modeIndex);
143 };
144 
145 //------------------------------------------------------------------------------
148 {
149  typedef boost::mpl::string<'cont', 'rolS', 'topS', 'tate', 'Chan', 'ge'> Name;
150  typedef void (Type)(const EcPropagationResultDataVector& curResults, const EcPropagationResultDataVector& prevResults);
151 };
152 
153 //------------------------------------------------------------------------------
156 {
157  typedef boost::mpl::string<'cont', 'rolS', 'yste', 'mCha', 'nge'> Name;
158  typedef void (Type)();
159 };
160 
161 //------------------------------------------------------------------------------
166 {
167  typedef boost::mpl::string<'coor', 'dina', 'ted', 'Move'> Name;
168  typedef void (Type)(const EcU32 manipIndex, const EcBoolean enabled);
169 };
170 
171 //------------------------------------------------------------------------------
176 {
177  typedef boost::mpl::string<'endE', 'ffec', 'torS', 'et'> Name;
178  typedef void (Type)(const EcU32 manipIndex, const EcU32 eeSetIndex);
179 };
180 
181 //------------------------------------------------------------------------------
185 {
186  typedef boost::mpl::string<'mani', 'pula', 'torA', 'dd'> Name;
187  typedef void (Type)(const EcString& manipLabel);
188 };
189 
190 //------------------------------------------------------------------------------
194 {
195  typedef boost::mpl::string<'mani', 'pula', 'torD', 'elet', 'e'> Name;
196  typedef void (Type)(const EcU32 manipIndex);
197 };
198 
199 //------------------------------------------------------------------------------
202 {
203  typedef boost::mpl::string<'mani', 'pula', 'torE', 'xcha', 'ngeB', 'egin'> Name;
204  typedef void (Type)();
205 };
206 
207 //------------------------------------------------------------------------------
211 {
212  typedef boost::mpl::string<'mani', 'pula', 'torE', 'xcha', 'ngeE', 'nd'> Name;
213  typedef void (Type)(const EcInt32 manipIndex);
214 };
215 
216 //------------------------------------------------------------------------------
219 {
220  typedef boost::mpl::string<'mani', 'pula', 'torM', 'erge', 'Begi', 'n'> Name;
221  typedef void (Type)();
222 };
223 
224 //------------------------------------------------------------------------------
227 {
228  typedef boost::mpl::string<'mani', 'pula', 'torM', 'erge', 'End'> Name;
229  typedef void (Type)();
230 };
231 
232 //------------------------------------------------------------------------------
235 {
236  typedef boost::mpl::string<'simu', 'lati', 'onCl', 'oseB', 'egin'> Name;
237  typedef void (Type)();
238 };
239 
240 //------------------------------------------------------------------------------
243 {
244  typedef boost::mpl::string<'simu', 'lati', 'onCl', 'oseE', 'nd'> Name;
245  typedef void (Type)();
246 };
247 
248 //------------------------------------------------------------------------------
252 {
253  typedef boost::mpl::string<'mani', 'pula', 'torU', 'pdat', 'e'> Name;
254  typedef void (Type)(const EcU32 manipIndex);
255 };
256 
257 //------------------------------------------------------------------------------
261 {
262  typedef boost::mpl::string<'mani', 'pula', 'torA', 'ddVi', 'rtua', 'l'> Name;
263  typedef void (Type)(const EcString& manipLabel);
264 };
265 
266 //------------------------------------------------------------------------------
270 {
271  typedef boost::mpl::string<'mani', 'pula', 'torD', 'elet', 'eVir', 'tual'> Name;
272  typedef void (Type)(const EcU32 manipIndex);
273 };
274 
275 //------------------------------------------------------------------------------
279 {
280  typedef boost::mpl::string<'mani', 'pula', 'torU', 'pdat', 'eVir', 'tual'> Name;
281  typedef void (Type)(const EcU32 manipIndex);
282 };
283 
284 //------------------------------------------------------------------------------
288 {
289  typedef boost::mpl::string<'mani', 'pula', 'tion', 'Comp','lete'> Name;
290  typedef void (Type)(const EcBoolean success);
291 };
292 
293 //------------------------------------------------------------------------------
297 {
298  typedef boost::mpl::string<'mani', 'pula', 'tion', 'Upda','te'> Name;
299  typedef void (Type)(const EcManipulationDirectorSimpleState& state);
300 };
301 
302 //------------------------------------------------------------------------------
306 {
307  typedef boost::mpl::string<'pose', 'sLoa', 'ded'> Name;
308  typedef void (Type)(const EcPoseSet& poseSet);
309 };
310 
311 //------------------------------------------------------------------------------
316 {
317  typedef boost::mpl::string<'pose', 'Chan', 'ged'> Name;
318  typedef void (Type)(const EcString& name, const EcCoordinateSystemTransformation& coord);
319 };
320 
321 //------------------------------------------------------------------------------
325 {
326  typedef boost::mpl::string<'simu', 'lati', 'onRa', 'teCh', 'ange'> Name;
327  typedef void (Type)(const EcReal rate);
328 };
329 
330 //------------------------------------------------------------------------------
334 {
335  typedef boost::mpl::string<'simu', 'lati', 'onCh', 'ange'> Name;
336  typedef void (Type)(const EcU32 changed);
337 };
338 
339 //------------------------------------------------------------------------------
343 {
344  typedef boost::mpl::string<'simu', 'lati', 'onEn', 'able'> Name;
345  typedef void (Type)(const EcBoolean enabled);
346 };
347 
348 //------------------------------------------------------------------------------
351 {
352  typedef boost::mpl::string<'simu', 'lati', 'onPa', 'use'> Name;
353  typedef void (Type)();
354 };
355 
356 //------------------------------------------------------------------------------
359 {
360  typedef boost::mpl::string<'simu', 'lati', 'onSt', 'art'> Name;
361  typedef void (Type)();
362 };
363 
364 //------------------------------------------------------------------------------
368 {
369  typedef boost::mpl::string<'simu', 'lati', 'onSt', 'ate'> Name;
370  typedef void (Type)(const Ec::SimulationRunState state);
371 };
372 
373 //------------------------------------------------------------------------------
376 {
377  typedef boost::mpl::string<'simu', 'lati', 'onSt', 'op'> Name;
378  typedef void (Type)();
379 };
380 
381 //------------------------------------------------------------------------------
384 {
385  typedef boost::mpl::string<'simu', 'lati', 'onRe', 'set'> Name;
386  typedef void (Type)();
387 };
388 
389 //------------------------------------------------------------------------------
392 {
393  typedef boost::mpl::string<'simu', 'lati', 'onTi', 'meSt', 'ep'> Name;
394  typedef void (Type)(const EcReal time);
395 };
396 
397 //------------------------------------------------------------------------------
400 {
401  typedef boost::mpl::string<'remo', 'teco', 'mman', 'dres', 'ult'> Name;
403  // cppcheck-suppress syntaxError
405  typedef LogicalAndCompleteResults::result_type (Type)(const EcU32 msgType, const EcXmlObject& obj);
406 };
407 
408 //------------------------------------------------------------------------------
414 {
415  typedef boost::mpl::string<'tool', 'Offs', 'etCh', 'ange'> Name;
416  typedef void (Type)(const EcU32 manipIndex, const EcU32 offsetIndex, const EcCoordinateSystemTransformation& offset);
417 };
418 
419 //------------------------------------------------------------------------------
426 {
427  typedef boost::mpl::string<'tool', 'Offs', 'etIn','dexC', 'hang', 'e'> Name;
428  typedef void (Type)(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 offsetIndex);
429 };
430 
431 //------------------------------------------------------------------------------
434 {
435  typedef boost::mpl::string<'requ', 'estS', 'hutd', 'own'> Name;
436  typedef void (Type)();
437 };
438 
439 //------------------------------------------------------------------------------
442 {
443  typedef boost::mpl::string<'requ', 'estR', 'esta', 'rt'> Name;
444  typedef void (Type)();
445 };
446 
447 //------------------------------------------------------------------------------
450 {
451  typedef boost::mpl::string<'virt', 'ualS', 'yste', 'mIni', 't'> Name;
452  typedef void (Type)();
453 };
454 
455 //------------------------------------------------------------------------------
458 {
459  typedef boost::mpl::string<'stop', 'Moti', 'on'> Name;
460  typedef void (Type)(const EcU32 manipIndex, const EcBoolean stop);
461 };
462 
463 //-------------------------------------------------------------------------------
466 {
467  EcString name;
468  EcString message;
469  EcBoolean result;
470 };
471 
473 typedef std::vector<PluginTestResult> PluginTestResultVector;
474 
475 //------------------------------------------------------------------------------
476 // Combiner struct that will aggregate the handles from all overlay plugins
477 // in a single list
478 template<typename Container>
480 {
481  typedef Container result_type;
482  template <typename T> result_type operator()(T f, T l) const
483  {
484  result_type r;
485  for(; f != l; ++f)
486  {
487  r.push_back(*f);
488  }
489  return r;
490  }
491 };
492 
493 //------------------------------------------------------------------------------
496 {
497  typedef boost::mpl::string<'plug', 'inTe', 'st'> Name;
499  // cppcheck-suppress syntaxError
500  typedef PluginTestResult (Type)();
501 };
502 
503 } // namespace Ec
504 
505 
506 #endif // ec_PluginSignals_H_
boost::mpl::string<'requ', 'estR', 'esta', 'rt'> Name
boost mpl string
Change operation from get to set.
(EcRrtPathPlanner)
boost::mpl::string<'cont', 'rolM', 'ode', 'Chan', 'ge'> Name
boost mpl string
LogicalAndCompleteResults Combiner
A class that organizes poses into a hierarchy structure.
Definition: ecPoseSet.h:25
boost::mpl::string<'mani', 'pula', 'torM', 'erge', 'End'> Name
boost mpl string
A rotation and a translation to describe a new frame.
boost::mpl::string<'coor', 'dina', 'ted', 'Move'> Name
boost mpl string
SimulationRunState
Enumeration on state of the current simulation.
Definition: ecIOParams.h:284
Signal for a plugin to request actinRT to shutdown.
boost::mpl::string<'mani', 'pula', 'torA', 'dd'> Name
boost mpl string
boost::mpl::string<'coll', 'isio', 'nMap', 'Chan', 'ge'> Name
boost mpl string
Signal when a stop motion command has changed.
(EcManipulationActionManager)
boost::mpl::string<'mani', 'pula', 'torD', 'elet', 'e'> Name
boost mpl string
boost::uint32_t EcU32
32-bit unsigned integer
Definition: ecTypes.h:53
Signal indicating that the simulation is reset.
Signal for a plugin to request actinRT to restart.
Signal for merge manipulator begin.
boost::mpl::string<'simu', 'lati', 'onRa', 'teCh', 'ange'> Name
boost mpl string
Signal when the virtual system is initialized.
Enumeration of types available via plugin API.
boost::mpl::string<'pose', 'Chan', 'ged'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'tion', 'Upda','te'> Name
boost mpl string
Signal indicating that the simulation is running.
boost::mpl::string<'simu', 'lati', 'onEn', 'able'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'torU', 'pdat', 'eVir', 'tual'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'torU', 'pdat', 'e'> Name
boost mpl string
Signal indicating that the simulation is paused.
boost::mpl::string<'mani', 'pula', 'torA', 'ddVi', 'rtua', 'l'> Name
boost mpl string
Signal for collision exclusion map.
boost::mpl::string<'simu', 'lati', 'onSt', 'art'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'tion', 'Comp','lete'> Name
boost mpl string
(S,EcManipulatorEndEffectorPlacement) Desired EE using path planning
A base class for xml objects.
Definition: ecXmlObject.h:23
Signal for control system change.
Signal for exchange manipulator begin.
Signal indicating that a remote command has been completed.
void( Type)(const EcManipulatorAttachmentChange &attachmentChange)
signal for attachment changes
boost::mpl::string<'simu', 'lati', 'onTi', 'meSt', 'ep'> Name
boost mpl string
Signal for Simulation close begin.
Signal indicating that a simulation timestep has been completed.
boost::mpl::string<'mani', 'pula', 'torE', 'xcha', 'ngeB', 'egin'> Name
boost mpl string
boost::mpl::string<'requ', 'estS', 'hutd', 'own'> Name
boost mpl string
(GS,RunStateEnum)
boost::mpl::string<'pose', 'sLoa', 'ded'> Name
boost mpl string
boost::mpl::string<'cont', 'rolM', 'etho', 'dCha', 'nge'> Name
boost mpl string
Holds EcManipulationDirector simple state information.
boost::mpl::string<'tool', 'Offs', 'etCh', 'ange'> Name
boost mpl string
boost::mpl::string<'virt', 'ualS', 'yste', 'mIni', 't'> Name
boost mpl string
boost::mpl::string<'cont', 'rolS', 'yste', 'mCha', 'nge'> Name
boost mpl string
A test result struct.
This namespace contains the manipulation status enumeration.
boost::mpl::string<'simu', 'lati', 'onPa', 'use'> Name
boost mpl string
Signal for control stop state.
boost::mpl::string<'simu', 'lati', 'onCl', 'oseE', 'nd'> Name
boost mpl string
Energid common namespace.
boost::mpl::string<'endE', 'ffec', 'torS', 'et'> Name
boost mpl string
bool EcBoolean
Boolean (0 or 1)
Definition: ecTypes.h:21
boost::mpl::string<'atta', 'chme', 'ntCh', 'ange'> Name
boost mpl string
Signal indicating that the simulation is stopped.
PluginParamTypeEnum
Plugin Messages (PM) used to pass data through the network transport.
boost::mpl::string<'remo', 'teco', 'mman', 'dres', 'ult'> Name
boost mpl string
boost::mpl::string<'simu', 'lati', 'onSt', 'op'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'torM', 'erge', 'Begi', 'n'> Name
boost mpl string
Signal for merge manipulator end.
boost::logic::tribool result_type
boost::int32_t EcInt32
32-bit signed integer
Definition: ecTypes.h:56
boost::mpl::string<'cont', 'rolD', 'escr', 'ipti', 'onCh', 'ange'> Name
boost mpl string
Signal for Simulation close end.
(EcManipulationActionContainer)
EcF64 EcReal
Alias for 64-bit float.
Definition: ecTypes.h:30
(SG,EcManipulatorSystemState)
std::basic_string< char > EcString
a character string
Definition: ecTypes.h:116
boost::mpl::string<'simu', 'lati', 'onRe', 'set'> Name
boost mpl string
boost::mpl::string<'mani', 'pula', 'torD', 'elet', 'eVir', 'tual'> Name
boost mpl string
(EcU32) Active end-effector set index
Acknowledgement message (EcBoolean)
Directs a cast to run a manipulation script.
std::vector< PluginTestResult > PluginTestResultVector
a vector of test results
boost::mpl::string<'cont', 'rolS', 'topS', 'tate', 'Chan', 'ge'> Name
boost mpl string
Signal to trigger a plugin test and return the result.
boost::mpl::string<'mani', 'pula', 'torE', 'xcha', 'ngeE', 'nd'> Name
boost mpl string
Signal for attachment map.
boost::mpl::string<'simu', 'lati', 'onCl', 'oseB', 'egin'> Name
boost mpl string
RunStateEnum
run states
(EcManipulationDirector)
boost::mpl::string<'tool', 'Offs', 'etIn','dexC', 'hang', 'e'> Name
boost mpl string
(time,status,director,directorstate)
boost::mpl::string<'stop', 'Moti', 'on'> Name
boost mpl string
boost::mpl::string<'simu', 'lati', 'onCh', 'ange'> Name
boost mpl string
boost::mpl::string<'atta', 'chme', 'ntMa', 'pCha', 'nge'> Name
boost mpl string
boost::mpl::string<'simu', 'lati', 'onSt', 'ate'> Name
boost mpl string
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.