From 382b99e11c033f1952cbe2b9e082cd35812a13e3 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sat, 12 May 2012 02:02:03 +0200 Subject: digital/ui-hub: add debug draw module to debug path finding --- digital/io-hub/src/common/debug_draw.host.c | 76 +++++++++++++++++++++++++++++ digital/io-hub/src/common/debug_draw.host.h | 58 ++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 digital/io-hub/src/common/debug_draw.host.c create mode 100644 digital/io-hub/src/common/debug_draw.host.h (limited to 'digital/io-hub/src/common') diff --git a/digital/io-hub/src/common/debug_draw.host.c b/digital/io-hub/src/common/debug_draw.host.c new file mode 100644 index 00000000..ea743bad --- /dev/null +++ b/digital/io-hub/src/common/debug_draw.host.c @@ -0,0 +1,76 @@ +/* debug_draw.host.c */ +/* io-hub - Modular Input/Output. {{{ + * + * Copyright (C) 2012 Nicolas Schodet + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ +#include "common.h" +#include "debug_draw.host.h" + +#include "modules/host/host.h" +#include "modules/host/mex.h" + +/** Message type. */ +uint8_t debug_draw_mtype; + +/** Message being composed. */ +mex_msg_t *debug_draw_msg; + +void +debug_draw_init (void) +{ + const char *mex_instance = host_get_instance ("io-hub0", 0); + debug_draw_mtype = mex_node_reservef ("%s:debug-draw", mex_instance); +} + +void +debug_draw_start (void) +{ + assert (!debug_draw_msg); + debug_draw_msg = mex_msg_new (debug_draw_mtype); +} + +void +debug_draw_send (void) +{ + mex_node_send (debug_draw_msg); + debug_draw_msg = 0; +} + +void +debug_draw_circle (const vect_t *p, int16_t radius, uint8_t color) +{ + mex_msg_push (debug_draw_msg, "Bhhhb", 'c', p->x, p->y, radius, color); +} + +void +debug_draw_segment (const vect_t *p1, const vect_t *p2, uint8_t color) +{ + mex_msg_push (debug_draw_msg, "Bhhhhb", 's', p1->x, p1->y, p2->x, p2->y, + color); +} + +void +debug_draw_point (const vect_t *p, uint8_t color) +{ + mex_msg_push (debug_draw_msg, "Bhhb", 'p', p->x, p->y, color); +} + diff --git a/digital/io-hub/src/common/debug_draw.host.h b/digital/io-hub/src/common/debug_draw.host.h new file mode 100644 index 00000000..fe46e80a --- /dev/null +++ b/digital/io-hub/src/common/debug_draw.host.h @@ -0,0 +1,58 @@ +#ifndef debug_draw_host_h +#define debug_draw_host_h +/* debug_draw.host.h */ +/* io-hub - Modular Input/Output. {{{ + * + * Copyright (C) 2012 Nicolas Schodet + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ +#include "defs.h" + +#ifdef HOST + +/** Initialise module. */ +void +debug_draw_init (void); + +/** Start a debug draw message, to be filled with debug draw primitives, then + * sent. */ +void +debug_draw_start (void); + +/** Send prepared message. */ +void +debug_draw_send (void); + +/** Append a debug circle. */ +void +debug_draw_circle (const vect_t *p, int16_t radius, uint8_t color); + +/** Append a debug segment. */ +void +debug_draw_segment (const vect_t *p1, const vect_t *p2, uint8_t color); + +/** Append a debug point. */ +void +debug_draw_point (const vect_t *p, uint8_t color); + +#endif + +#endif /* debug_draw_host_h */ -- cgit v1.2.3