From 850cc292ac7ea847f6be2afcdc5bae89418cabda Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 30 May 2011 23:42:52 +0200 Subject: digital/io-hub: add path finding --- digital/io-hub/src/robospierre/simu.host.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'digital/io-hub/src/robospierre/simu.host.c') diff --git a/digital/io-hub/src/robospierre/simu.host.c b/digital/io-hub/src/robospierre/simu.host.c index 7ca7364b..70055d7d 100644 --- a/digital/io-hub/src/robospierre/simu.host.c +++ b/digital/io-hub/src/robospierre/simu.host.c @@ -29,6 +29,7 @@ #include "modules/host/host.h" #include "modules/host/mex.h" #include "modules/adc/adc.h" +#include "modules/path/path.h" #include "io.h" /** AVR registers. */ @@ -36,6 +37,7 @@ uint8_t PORTA, DDRA, PINA, PINE, PINF; /** Message types. */ uint8_t simu_mex_pos_report; +uint8_t simu_mex_path; static void simu_adc_handle (void *user, mex_msg_t *msg) @@ -56,6 +58,7 @@ simu_init (void) uint8_t mtype = mex_node_reservef ("%s:adc", mex_instance); mex_node_register (mtype, simu_adc_handle, 0); simu_mex_pos_report = mex_node_reservef ("%s:pos-report", mex_instance); + simu_mex_path = mex_node_reservef ("%s:path", mex_instance); } /** Make a simulation step. */ @@ -78,6 +81,19 @@ timer_wait (void) return 0; } +/** Send computed path. */ +void +simu_send_path (vect_t *points, uint8_t len, + struct path_obstacle_t *obstacles, uint8_t obstacles_nb) +{ + int i; + mex_msg_t *m; + m = mex_msg_new (simu_mex_path); + for (i = 0; i < len; i++) + mex_msg_push (m, "hh", points[i].x, points[i].y); + mex_node_send (m); +} + void simu_send_pos_report (vect_t *pos, uint8_t pos_nb, uint8_t id) { -- cgit v1.2.3