From c4f4fcd21a3440014c35152e6258033351ed7dc0 Mon Sep 17 00:00:00 2001 From: Olivier Lanneluc Date: Sat, 27 Apr 2013 00:11:52 +0200 Subject: digital/io-hub/src/common-cc: add simulation path report --- digital/io-hub/src/common-cc/simu_report.host.cc | 10 ++++++++++ digital/io-hub/src/common-cc/simu_report.host.hh | 3 +++ host/simu/robots/apbirthday/model/bag.py | 1 + host/simu/robots/apbirthday/view/bag.py | 2 ++ 4 files changed, 16 insertions(+) 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 9e6793ff..395903d2 100644 --- a/host/simu/robots/apbirthday/model/bag.py +++ b/host/simu/robots/apbirthday/model/bag.py @@ -85,5 +85,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) -- cgit v1.2.3