X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Ftests%2Fhostsim%2Frobotsim.c;h=7ed49f48a8cb7d5507dd03878885b5c9fd4c51bf;hp=6f4dbbfa405615c789439614e20a73b9d31e5a36;hb=145b19e73ce5751b365bc53769189addeecee81b;hpb=1f8274e9bca0d2433f101f267b86bc70dc2ae8c4 diff --git a/projects/microb2010/tests/hostsim/robotsim.c b/projects/microb2010/tests/hostsim/robotsim.c index 6f4dbbf..7ed49f4 100644 --- a/projects/microb2010/tests/hostsim/robotsim.c +++ b/projects/microb2010/tests/hostsim/robotsim.c @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include #include #include @@ -46,8 +49,10 @@ static int32_t l_pwm, r_pwm; static int32_t l_enc, r_enc; +static int fd; + /* */ -#define FILTER 98 +#define FILTER 97 #define FILTER2 (100-FILTER) /* must be called periodically */ @@ -62,6 +67,18 @@ void robotsim_update(void) r_enc += (r_speed / 1000); } +void robotsim_dump(void) +{ + char buf[BUFSIZ]; + int len; + + len =snprintf(buf, sizeof(buf), "%d %d %d\n", + position_get_x_s16(&mainboard.pos), + position_get_y_s16(&mainboard.pos), + position_get_a_deg_s16(&mainboard.pos)); + write(fd, buf, len); +} + void robotsim_pwm(void *arg, int32_t val) { // printf("%p, %d\n", arg, val); @@ -79,3 +96,12 @@ int32_t robotsim_encoder_get(void *arg) return r_enc; return 0; } + +int robotsim_init(void) +{ + mkfifo("/tmp/.robot", 0600); + fd = open("/tmp/.robot", O_WRONLY, 0); + if (fd < 0) + return -1; + return 0; +}