Main Program
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/setup_command_active/command.cpp
- Revision:
- 19:342da3a5a474
- Child:
- 21:d69a8f3c76e1
diff -r 97eba56f82e4 -r 342da3a5a474 main_processing/setup_command_active/command.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main_processing/setup_command_active/command.cpp Thu Jan 21 07:11:08 2016 +0000 @@ -0,0 +1,143 @@ +#include "mbed.h" +#include "extern.h" + +void CommandLoop(void){ + uint8_t SwState,x=0,y=0, z; + uint8_t (*Function[STATE_NUM_Y])(uint8_t x) = { + LoopFunction0, + LoopFunction1, + LoopFunction2, + LoopFunction3, + LoopFunction4, + LoopFunction5, + LoopFunction6, + LoopFunction7, + LoopFunction8, + LoopFunction9, + LoopFunctionA, + LoopFunctionB, + LoopFunctionC, + LoopFunctionD, + LoopFunctionE, + LoopFunctionF + }; + data.init_point_flag=0; + while(1){ + SwState = ReadSw(); + if(SwState == NONE){ + if(x!=0){ + z = (*Function[y])(x); + if(z==1){ + x=0; + Lcd.cls(); + Lcd.locate(0, 0); + Lcd.print(lcdstr[y][0]); + Lcd.locate(7, 0); + Lcd.print(">"); + Lcd.locate(9, 0); + if(x!=0) Lcd.print(lcdstr[y][x]); + } + //Z==1...Once + //Z==0...Endless + } + continue; + } + if(SwState == UP){ + y += -1 + STATE_NUM_Y; + y %= STATE_NUM_Y; + x=0; + } + if(SwState == DOWN){ + y++; + y %= STATE_NUM_Y; + x=0; + } + if(SwState == RIGHT){ + if(lcdstr[y][1][0]==0) x=0; + else x++; + if(lcdstr[y][x][0]==0) x=0; + else x %= STATE_NUM_X; + } + if(SwState == LEFT){ + if((x!=0)&&(data.init_point_flag==1)){ + data.init_point_flag=0; + y = 1; + } + x=0; + } + Lcd.cls(); + Lcd.locate(0, 0); + Lcd.print(lcdstr[y][0]); + Lcd.locate(7, 0); + Lcd.print(">"); + Lcd.locate(9, 0); + if(x!=0) Lcd.print(lcdstr[y][x]); + + if(x==0){ + LineSignalHolder=0x0; + } + else{ + LineSignalHolder=0x7; + } + } +} +uint8_t LoopFunction0(uint8_t x){ + char buf[0x10]; + sprintf(buf, "CAR%d", x); + Lcd.locate(0, 1);Lcd.print(buf);return 0; +} +uint8_t LoopFunction1(uint8_t x){ + char buf[0x10]; + sprintf(buf, "CatPot"); + Lcd.locate(0, 1);Lcd.print(buf); + ActiveLoop(); + return 1; +} +uint8_t LoopFunction2(uint8_t x){ + char buf[0x10]; + sprintf(buf, "RR%d", x); + Lcd.locate(0, 1);Lcd.print(buf);return 0; +} +uint8_t LoopFunction3(uint8_t x){ return 0; } +uint8_t LoopFunction4(uint8_t x){ + char buf[0x10]; + uint8_t linedata=0, line[3]; + if(x==1){ + linedata = RawLineSignal; + } + if(x==2){ + linedata = HeldLineSignal; + } + line[2] = (0x4 & linedata)>>2; + line[1] = (0x2 & linedata)>>1; + line[0] = (0x1 & linedata)>>0; + sprintf(buf, "A:%1d B:%1d C:%1d ", line[2], line[1], line[0]); + Lcd.locate(0, 1);Lcd.print(buf);return 0; +} +uint8_t LoopFunction5(uint8_t x){ return 0; } +uint8_t LoopFunction6(uint8_t x){ return 0; } +uint8_t LoopFunction7(uint8_t x){ return 0; } +uint8_t LoopFunction8(uint8_t x){ return 0; } +uint8_t LoopFunction9(uint8_t x){ return 0; } +uint8_t LoopFunctionA(uint8_t x){ return 0; } +uint8_t LoopFunctionB(uint8_t x){ return 0; } +uint8_t LoopFunctionC(uint8_t x){ return 0; } +uint8_t LoopFunctionD(uint8_t x){ + char buf[0x10]; + if(x==1) data.strategy = 0; + if(x==2) data.strategy = 1; + if(x==3) data.strategy = 2; + data.init_point_flag=1; + sprintf(buf, "Make a strategy"); + Lcd.locate(0, 1);Lcd.print(buf);return 0; +} +uint8_t LoopFunctionE(uint8_t x){ + char buf[0x10]; + if(x==1) data.strategy = 3; + if(x==2) data.strategy = 4; + if(x==3) data.strategy = 5; + data.init_point_flag=1; + sprintf(buf, "Make a strategy"); + Lcd.locate(0, 1);Lcd.print(buf);return 0; +} +uint8_t LoopFunctionF(uint8_t x){ return 0; }