joint_dispatcher
StateAggregator.hpp
Go to the documentation of this file.
1 #ifndef STATEAGGREGATOR_HPP
2 #define STATEAGGREGATOR_HPP
3 #include <vector>
4 #include <map>
5 #include <base/Time.hpp>
6 #include <base/commands/Joints.hpp>
7 #include <boost/function.hpp>
8 
9 namespace joint_dispatcher
10 {
11 
13 {
14  class StateInfo
15  {
16  public:
17  size_t stateId;
18  size_t outputPosition;
19  bool updated;
20  base::Time updateTime;
21  };
22 
24  size_t actuatorCnt;
25 
27  size_t updateCnt;
28 
29  base::commands::Joints status;
30  std::vector<StateInfo *> stateIdToInfo;
31 
32  std::map<size_t, StateInfo> stateMap;
33 
35  base::Time statusInterval;
36 
37  boost::function<void (const base::commands::Joints &status)> writeStatusCallback;
38 
39  bool writeState;
40 protected:
41  const base::commands::Joints &getStatus() const
42  {
43  return status;
44  };
45 
46 public:
47 
48  const std::vector<size_t> getActuatorIds() const;
49 
50  StateAggregator(const std::vector< std::pair<size_t, std::string> >& stateMap, boost::function<void (const base::commands::Joints &status)> writeStatusCallback, base::Time statusInterval);
52 
57  void setNewStatus(size_t stateId, const base::Time stateTime, const base::JointState& state);
58 
64  void checkWriteState();
65 
66 
71  void reset();
72 };
73 
75 {
76  class InputMapping
77  {
78  public:
79  int actuatorId;
80  int inputId;
81  };
82 
84  std::vector<InputMapping> inputMap;
85 
86  boost::function<void (int32_t actuatorId, base::JointState::MODE mode, double value)> setCommandCallback;
87 
88 public:
89  const std::vector<int32_t> getActuatorIds() const;
90 
91  CommandDispatcher(std::vector< boost::int32_t > const & actuatorMap, boost::function<void (int32_t actuatorId, base::JointState::MODE mode, double value)> setCommandCallback);
92  virtual ~CommandDispatcher() {};
93 
94  void processCommand(base::commands::Joints cmd);
95 };
96 
97 }
98 
99 #endif // STATEAGGREGATOR_HPP
void reset()
Definition: StateAggregator.cpp:47
void checkWriteState()
Definition: StateAggregator.cpp:104
void setNewStatus(size_t stateId, const base::Time stateTime, const base::JointState &state)
Definition: StateAggregator.cpp:62
Definition: StateAggregator.hpp:12
Definition: Dispatcher.hpp:8
const std::vector< size_t > getActuatorIds() const
Definition: StateAggregator.cpp:36
const base::commands::Joints & getStatus() const
Definition: StateAggregator.hpp:41
Definition: StateAggregator.hpp:74
~StateAggregator()
Definition: StateAggregator.hpp:51
StateAggregator(const std::vector< std::pair< size_t, std::string > > &stateMap, boost::function< void(const base::commands::Joints &status)> writeStatusCallback, base::Time statusInterval)
Definition: StateAggregator.cpp:8
virtual ~CommandDispatcher()
Definition: StateAggregator.hpp:92