ai

Committer:
narshu
Date:
Thu Apr 26 19:59:10 2012 +0000
Revision:
0:8ad510cbb76c

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:8ad510cbb76c 1
narshu 0:8ad510cbb76c 2 #include "ai.h"
narshu 0:8ad510cbb76c 3 #include "rtos.h"
narshu 0:8ad510cbb76c 4 #include "globals.h"
narshu 0:8ad510cbb76c 5
narshu 0:8ad510cbb76c 6 AI::AI() :
narshu 0:8ad510cbb76c 7 thr_AI(aithreadwrapper,this,osPriorityNormal,1024) {
narshu 0:8ad510cbb76c 8 flag_terminate = false;
narshu 0:8ad510cbb76c 9 //printf("aistart\r\n");
narshu 0:8ad510cbb76c 10 }
narshu 0:8ad510cbb76c 11
narshu 0:8ad510cbb76c 12 void AI::settarget(float targetX, float targetY, float targetTheta, bool targetfacing){
narshu 0:8ad510cbb76c 13 targetlock.lock();
narshu 0:8ad510cbb76c 14 target.x = targetX;
narshu 0:8ad510cbb76c 15 target.y = targetY;
narshu 0:8ad510cbb76c 16 target.theta = targetTheta;
narshu 0:8ad510cbb76c 17 target.facing = targetfacing;
narshu 0:8ad510cbb76c 18 targetlock.unlock();
narshu 0:8ad510cbb76c 19 }
narshu 0:8ad510cbb76c 20
narshu 0:8ad510cbb76c 21 void AI::settarget(Target targetin){
narshu 0:8ad510cbb76c 22 targetlock.lock();
narshu 0:8ad510cbb76c 23 target = targetin;
narshu 0:8ad510cbb76c 24 targetlock.unlock();
narshu 0:8ad510cbb76c 25 }
narshu 0:8ad510cbb76c 26
narshu 0:8ad510cbb76c 27 AI::Target AI::gettarget(){
narshu 0:8ad510cbb76c 28 targetlock.lock();
narshu 0:8ad510cbb76c 29 Target temptarget = target;
narshu 0:8ad510cbb76c 30 targetlock.unlock();
narshu 0:8ad510cbb76c 31 return temptarget;
narshu 0:8ad510cbb76c 32 }
narshu 0:8ad510cbb76c 33
narshu 0:8ad510cbb76c 34 void AI::ai_thread () {
narshu 0:8ad510cbb76c 35 /*
narshu 0:8ad510cbb76c 36 //printf("aithreadstart\r\n");
narshu 0:8ad510cbb76c 37 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 38 settarget(660, 400, PI/2, true);
narshu 0:8ad510cbb76c 39
narshu 0:8ad510cbb76c 40 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 41 settarget(660, 570, PI, true);
narshu 0:8ad510cbb76c 42
narshu 0:8ad510cbb76c 43 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 44 settarget(400, 870, PI, true);
narshu 0:8ad510cbb76c 45
narshu 0:8ad510cbb76c 46 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 47 settarget(660, 870, PI, false);
narshu 0:8ad510cbb76c 48
narshu 0:8ad510cbb76c 49 flag_terminate = true;
narshu 0:8ad510cbb76c 50 */
narshu 0:8ad510cbb76c 51
narshu 0:8ad510cbb76c 52 // goes to the mid
narshu 0:8ad510cbb76c 53 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 54 settarget(1500, 1000, PI/2, true);
narshu 0:8ad510cbb76c 55
narshu 0:8ad510cbb76c 56 // left roll
narshu 0:8ad510cbb76c 57 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 58 settarget(500, 1700, PI/2, true);
narshu 0:8ad510cbb76c 59
narshu 0:8ad510cbb76c 60 // mid
narshu 0:8ad510cbb76c 61 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 62 settarget(1500, 1000, PI/2, true);
narshu 0:8ad510cbb76c 63
narshu 0:8ad510cbb76c 64 // map
narshu 0:8ad510cbb76c 65 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 66 settarget(1500, 1700, PI/2, true);
narshu 0:8ad510cbb76c 67
narshu 0:8ad510cbb76c 68 // mid
narshu 0:8ad510cbb76c 69 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 70 settarget(1500, 1000, -PI/2, true);
narshu 0:8ad510cbb76c 71
narshu 0:8ad510cbb76c 72 // home
narshu 0:8ad510cbb76c 73 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 74 settarget(500, 500, 0, true);
narshu 0:8ad510cbb76c 75
narshu 0:8ad510cbb76c 76 Thread::signal_wait(0x01);
narshu 0:8ad510cbb76c 77 flag_terminate = true;
narshu 0:8ad510cbb76c 78 //OLED3 = true;
narshu 0:8ad510cbb76c 79
narshu 0:8ad510cbb76c 80 while (true) {
narshu 0:8ad510cbb76c 81 Thread::wait(osWaitForever);
narshu 0:8ad510cbb76c 82 }
narshu 0:8ad510cbb76c 83 }