summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--digital/io-hub/src/common-cc/simu_report.host.cc10
-rw-r--r--digital/io-hub/src/common-cc/simu_report.host.hh3
-rw-r--r--host/simu/robots/apbirthday/model/bag.py1
-rw-r--r--host/simu/robots/apbirthday/view/bag.py2
4 files changed, 16 insertions, 0 deletions
diff --git a/digital/io-hub/src/common-cc/simu_report.host.cc b/digital/io-hub/src/common-cc/simu_report.host.cc
index 2a3f98fd..e28df533 100644
--- a/digital/io-hub/src/common-cc/simu_report.host.cc
+++ b/digital/io-hub/src/common-cc/simu_report.host.cc
@@ -28,6 +28,7 @@ SimuReport::SimuReport (ucoo::Host &host)
{
std::string instance (host.get_instance ());
pos_mtype_ = node_.reserve (instance + ":pos-report");
+ path_mtype_ = node_.reserve (instance + ":path");
}
void
@@ -40,3 +41,12 @@ SimuReport::pos (vect_t *pos, int pos_nb, uint8_t id)
node_.send (msg);
}
+void
+SimuReport::path (const vect_t *pos, int pos_nb)
+{
+ ucoo::mex::Msg msg (path_mtype_);
+ for (; pos_nb; pos++, pos_nb--)
+ msg.push ("hh") << pos->x << pos->y;
+ node_.send (msg);
+}
+
diff --git a/digital/io-hub/src/common-cc/simu_report.host.hh b/digital/io-hub/src/common-cc/simu_report.host.hh
index 8e8929ad..eaf50281 100644
--- a/digital/io-hub/src/common-cc/simu_report.host.hh
+++ b/digital/io-hub/src/common-cc/simu_report.host.hh
@@ -34,9 +34,12 @@ class SimuReport
SimuReport (ucoo::Host &host);
/// Report positions.
void pos (vect_t *pos, int pos_nb, uint8_t id);
+ /// Report path.
+ void path (const vect_t *pos, int pos_nb);
private:
ucoo::mex::Node &node_;
ucoo::mex::mtype_t pos_mtype_;
+ ucoo::mex::mtype_t path_mtype_;
};
#endif // simu_report_host_hh
diff --git a/host/simu/robots/apbirthday/model/bag.py b/host/simu/robots/apbirthday/model/bag.py
index b40e199f..869b75cd 100644
--- a/host/simu/robots/apbirthday/model/bag.py
+++ b/host/simu/robots/apbirthday/model/bag.py
@@ -86,5 +86,6 @@ class Bag:
(Switch (link_bag.cherry_plate_left_contact),
Switch (link_bag.cherry_plate_right_contact)),
link_bag.io_hub.potentiometer)
+ self.path = link_bag.io_hub.path
self.pos_report = link_bag.io_hub.pos_report
diff --git a/host/simu/robots/apbirthday/view/bag.py b/host/simu/robots/apbirthday/view/bag.py
index 05dbfc70..68bd6827 100644
--- a/host/simu/robots/apbirthday/view/bag.py
+++ b/host/simu/robots/apbirthday/view/bag.py
@@ -25,6 +25,7 @@
from simu.view.switch import Switch
from simu.view.distance_sensor import DistanceSensor
from simu.view.distance_sensor_us import DistanceSensorUS
+from simu.view.path import Path
from simu.view.pos_report import PosReport
from simu.robots.apbirthday.view.robot import Robot
@@ -44,5 +45,6 @@ class Bag:
for ds in model_bag.distance_sensor]
self.cake_front = DistanceSensor (self.robot, model_bag.cake_front)
self.cake_back = DistanceSensor (self.robot, model_bag.cake_back)
+ self.path = Path (table, model_bag.path)
self.pos_report = PosReport (table, model_bag.pos_report)