@@ -25,6 +25,7 @@ struct MyEntity : public dynamicgraph::Entity {
25
25
26
26
dynamicgraph::Signal<double , int > m_sigdSIN;
27
27
dynamicgraph::SignalTimeDependent<double , int > m_sigdTimeDepSOUT;
28
+ dynamicgraph::SignalTimeDependent<Vector, int > m_sigVTimeDepSOUT;
28
29
dynamicgraph::SignalTimeDependent<double , int > m_sigdTwoTimeDepSOUT;
29
30
30
31
explicit MyEntity (const std::string &name)
@@ -33,12 +34,15 @@ struct MyEntity : public dynamicgraph::Entity {
33
34
m_sigdTimeDepSOUT(boost::bind(&MyEntity::update, this , _1, _2),
34
35
m_sigdSIN,
35
36
"MyEntity(" + name + " )::input(double )::out_double"),
37
+ m_sigVTimeDepSOUT(boost::bind(&MyEntity::updateVector, this , _1, _2),
38
+ m_sigdSIN,
39
+ "MyEntity(" + name + " )::input(vector)::out_vector"),
36
40
m_sigdTwoTimeDepSOUT(
37
41
boost::bind (&MyEntity::update, this , _1, _2), m_sigdSIN,
38
42
"MyEntity(" + name + " )::input(double )::out2double")
39
43
40
44
{
41
- signalRegistration (m_sigdSIN << m_sigdTimeDepSOUT << m_sigdTwoTimeDepSOUT);
45
+ signalRegistration (m_sigdSIN << m_sigdTimeDepSOUT << m_sigVTimeDepSOUT << m_sigdTwoTimeDepSOUT);
42
46
}
43
47
44
48
virtual void display (std::ostream &os) const {
@@ -52,11 +56,20 @@ struct MyEntity : public dynamicgraph::Entity {
52
56
res = aDouble;
53
57
return res;
54
58
}
59
+
60
+ Vector &updateVector (Vector &res, const int &inTime) {
61
+ const double &aDouble = m_sigdSIN (inTime);
62
+ res.resize (2 );
63
+ res << aDouble, 2 *aDouble;
64
+ return res;
65
+ }
55
66
};
56
67
DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (MyEntity, " MyEntity" );
57
68
} // namespace dynamicgraph
58
69
59
70
BOOST_AUTO_TEST_CASE (test_tracer) {
71
+ using dynamicgraph::Vector;
72
+
60
73
// Creates a tracer.
61
74
dynamicgraph::Tracer &atracer = *dynamic_cast <dynamicgraph::Tracer *>(
62
75
dynamicgraph::FactoryStorage::getInstance ()->newEntity (" Tracer" ,
@@ -75,13 +88,19 @@ BOOST_AUTO_TEST_CASE(test_tracer) {
75
88
76
89
// / Add trace by name
77
90
atracer.addSignalToTraceByName (" my-entity.out_double" , " output" );
91
+ // / Add trace by name
92
+ atracer.addSignalToTraceByName (" my-entity.out_vector" , " output-vector" );
78
93
79
94
dynamicgraph::SignalBase<int > &aSignal = entity.getSignal (" out2double" );
80
95
81
96
dynamicgraph::Signal<double , int > &aSignalInt =
82
97
*(dynamic_cast <dynamicgraph::Signal<double , int > *>(
83
98
&entity.getSignal (" in_double" )));
84
99
100
+ dynamicgraph::Signal<Vector, int > &aSignalVector =
101
+ *(dynamic_cast <dynamicgraph::Signal<Vector, int > *>(
102
+ &entity.getSignal (" out_vector" )));
103
+
85
104
// / Add trace by signal object
86
105
atracer.addSignalToTrace (aSignal, " output2" );
87
106
@@ -91,7 +110,10 @@ BOOST_AUTO_TEST_CASE(test_tracer) {
91
110
92
111
for (int i = 0 ; i < 1000 ; i++) {
93
112
aSignal.setTime (i);
113
+ aSignalInt.access (i);
94
114
aSignalInt.setTime (i);
115
+ aSignalVector.recompute (i);
116
+ aSignalVector.setTime (i);
95
117
atracer.recordTrigger (i, i);
96
118
}
97
119
0 commit comments