commit!

Committer:
narshu
Date:
Fri Jun 15 20:40:17 2012 +0000
Revision:
0:42026f893a2d

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:42026f893a2d 1 #include "ai.h"
narshu 0:42026f893a2d 2 #include "rtos.h"
narshu 0:42026f893a2d 3 #include "globals.h"
narshu 0:42026f893a2d 4
narshu 0:42026f893a2d 5
narshu 0:42026f893a2d 6
narshu 0:42026f893a2d 7 AI::AI() :
narshu 0:42026f893a2d 8 thr_AI(aithreadwrapper,this,osPriorityNormal,1024) {
narshu 0:42026f893a2d 9 flag_terminate = false;
narshu 0:42026f893a2d 10 flag_motorStop = true;
narshu 0:42026f893a2d 11 flag_manOverride = false;
narshu 0:42026f893a2d 12 //printf("aistart\r\n");
narshu 0:42026f893a2d 13 }
narshu 0:42026f893a2d 14
narshu 0:42026f893a2d 15
narshu 0:42026f893a2d 16 void AI::settarget(float targetX, float targetY, float targetTheta, bool targetfacing, bool colour, int maxSpeed) {
narshu 0:42026f893a2d 17 targetlock.lock();
narshu 0:42026f893a2d 18 MOVE_SPEED = maxSpeed;
narshu 0:42026f893a2d 19 target.x = targetX;
narshu 0:42026f893a2d 20 target.y = targetY;
narshu 0:42026f893a2d 21 target.theta = targetTheta;
narshu 0:42026f893a2d 22 target.facing = targetfacing;
narshu 0:42026f893a2d 23 target.reached = false;
narshu 0:42026f893a2d 24 if (!colour) {
narshu 0:42026f893a2d 25 target.x = 3000 - target.x;
narshu 0:42026f893a2d 26 target.theta = PI - target.theta;
narshu 0:42026f893a2d 27
narshu 0:42026f893a2d 28 target.theta -= (floor(target.theta/(2*PI)))*2*PI;
narshu 0:42026f893a2d 29 if (target.theta < -PI) {
narshu 0:42026f893a2d 30 target.theta += 2*PI;
narshu 0:42026f893a2d 31 }
narshu 0:42026f893a2d 32 if (target.theta > PI) {
narshu 0:42026f893a2d 33 target.theta -= 2*PI;
narshu 0:42026f893a2d 34 }
narshu 0:42026f893a2d 35
narshu 0:42026f893a2d 36
narshu 0:42026f893a2d 37 }
narshu 0:42026f893a2d 38 targetlock.unlock();
narshu 0:42026f893a2d 39 }
narshu 0:42026f893a2d 40
narshu 0:42026f893a2d 41 void AI::settarget(Target targetin) {
narshu 0:42026f893a2d 42 targetlock.lock();
narshu 0:42026f893a2d 43 target = targetin;
narshu 0:42026f893a2d 44 targetlock.unlock();
narshu 0:42026f893a2d 45 }
narshu 0:42026f893a2d 46
narshu 0:42026f893a2d 47 AI::Target AI::gettarget() {
narshu 0:42026f893a2d 48 targetlock.lock();
narshu 0:42026f893a2d 49 Target temptarget = target;
narshu 0:42026f893a2d 50 targetlock.unlock();
narshu 0:42026f893a2d 51 return temptarget;
narshu 0:42026f893a2d 52 }