4180 fianl project
Dependencies: 4DGL-uLCD-SE EthernetInterface HTTPClient mbed-rtos mbed
main.cpp@0:28f8ba171e86, 2015-04-20 (annotated)
- Committer:
- honelight
- Date:
- Mon Apr 20 23:05:36 2015 +0000
- Revision:
- 0:28f8ba171e86
test program, still doesn't work;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
honelight | 0:28f8ba171e86 | 1 | #include "mbed.h" |
honelight | 0:28f8ba171e86 | 2 | #include "uLCD_4DGL.h" |
honelight | 0:28f8ba171e86 | 3 | #include "board.h" |
honelight | 0:28f8ba171e86 | 4 | #include "rtos.h" |
honelight | 0:28f8ba171e86 | 5 | #include "EthernetInterface.h" |
honelight | 0:28f8ba171e86 | 6 | #include "HTTPClient.h" |
honelight | 0:28f8ba171e86 | 7 | |
honelight | 0:28f8ba171e86 | 8 | uLCD_4DGL lcd(p28,p27,p30); // serial tx, serial rx, reset pin; |
honelight | 0:28f8ba171e86 | 9 | |
honelight | 0:28f8ba171e86 | 10 | DigitalIn in0(p11); |
honelight | 0:28f8ba171e86 | 11 | DigitalIn in1(p12); |
honelight | 0:28f8ba171e86 | 12 | DigitalIn in2(p13); |
honelight | 0:28f8ba171e86 | 13 | DigitalIn in3(p14); |
honelight | 0:28f8ba171e86 | 14 | DigitalIn in4(p15); |
honelight | 0:28f8ba171e86 | 15 | DigitalIn in5(p16); |
honelight | 0:28f8ba171e86 | 16 | DigitalIn in6(p17); |
honelight | 0:28f8ba171e86 | 17 | DigitalIn in7(p18); |
honelight | 0:28f8ba171e86 | 18 | DigitalIn in8(p19); |
honelight | 0:28f8ba171e86 | 19 | |
honelight | 0:28f8ba171e86 | 20 | Mutex stdio_mutex; |
honelight | 0:28f8ba171e86 | 21 | |
honelight | 0:28f8ba171e86 | 22 | |
honelight | 0:28f8ba171e86 | 23 | |
honelight | 0:28f8ba171e86 | 24 | int player1=1; |
honelight | 0:28f8ba171e86 | 25 | int player2=2; |
honelight | 0:28f8ba171e86 | 26 | int turn =1; |
honelight | 0:28f8ba171e86 | 27 | int printout = 0; |
honelight | 0:28f8ba171e86 | 28 | |
honelight | 0:28f8ba171e86 | 29 | |
honelight | 0:28f8ba171e86 | 30 | void printBoard(int ** board) |
honelight | 0:28f8ba171e86 | 31 | { |
honelight | 0:28f8ba171e86 | 32 | lcd.cls(); |
honelight | 0:28f8ba171e86 | 33 | lcd.line(0, 42 , 127, 42 , 0xFF0000); |
honelight | 0:28f8ba171e86 | 34 | lcd.line(0, 84 , 127, 84 , 0xFF0000); |
honelight | 0:28f8ba171e86 | 35 | lcd.line(42, 0 , 42, 127, 0xFF0000); |
honelight | 0:28f8ba171e86 | 36 | lcd.line(84, 0, 84, 127, 0xFF0000); |
honelight | 0:28f8ba171e86 | 37 | for(int i=0; i<3; i++) |
honelight | 0:28f8ba171e86 | 38 | { |
honelight | 0:28f8ba171e86 | 39 | for(int j=0; j<3; j++) |
honelight | 0:28f8ba171e86 | 40 | { |
honelight | 0:28f8ba171e86 | 41 | if(board[i][j] == 1) |
honelight | 0:28f8ba171e86 | 42 | { |
honelight | 0:28f8ba171e86 | 43 | lcd.line( j*42+2 , i*42 + 2 ,(j+1)*42-2 , (i+1)*42-2 , GREEN); |
honelight | 0:28f8ba171e86 | 44 | lcd.line( j*42+2 , (i+1)*42 - 2 ,(j+1)*42-2 , (i)*42+2 , GREEN); |
honelight | 0:28f8ba171e86 | 45 | } |
honelight | 0:28f8ba171e86 | 46 | else if(board[i][j] == 2) |
honelight | 0:28f8ba171e86 | 47 | { |
honelight | 0:28f8ba171e86 | 48 | lcd.circle(42*j+21, 42*i+21, 19, BLUE); |
honelight | 0:28f8ba171e86 | 49 | } |
honelight | 0:28f8ba171e86 | 50 | } |
honelight | 0:28f8ba171e86 | 51 | } |
honelight | 0:28f8ba171e86 | 52 | } |
honelight | 0:28f8ba171e86 | 53 | |
honelight | 0:28f8ba171e86 | 54 | HTTPClient http; |
honelight | 0:28f8ba171e86 | 55 | char str[2048]; |
honelight | 0:28f8ba171e86 | 56 | int main() { |
honelight | 0:28f8ba171e86 | 57 | |
honelight | 0:28f8ba171e86 | 58 | EthernetInterface eth; |
honelight | 0:28f8ba171e86 | 59 | eth.init(); //Use DHCP |
honelight | 0:28f8ba171e86 | 60 | eth.connect(); |
honelight | 0:28f8ba171e86 | 61 | printf("IP Address is %s\n", eth.getIPAddress()); |
honelight | 0:28f8ba171e86 | 62 | printf("%d\n", sizeof(str)); |
honelight | 0:28f8ba171e86 | 63 | int ret = http.get("http://ece4180mbedonlinegaming.azurewebsites.net/odata/TicTacToeGames(1)?$select=BoardState", str, 2048); |
honelight | 0:28f8ba171e86 | 64 | printf("%d\n",ret); |
honelight | 0:28f8ba171e86 | 65 | printf("Result: %s\n", str); |
honelight | 0:28f8ba171e86 | 66 | /* |
honelight | 0:28f8ba171e86 | 67 | in0.mode(PullUp); |
honelight | 0:28f8ba171e86 | 68 | in1.mode(PullUp); |
honelight | 0:28f8ba171e86 | 69 | in2.mode(PullUp); |
honelight | 0:28f8ba171e86 | 70 | in3.mode(PullUp); |
honelight | 0:28f8ba171e86 | 71 | in4.mode(PullUp); |
honelight | 0:28f8ba171e86 | 72 | in5.mode(PullUp); |
honelight | 0:28f8ba171e86 | 73 | in6.mode(PullUp); |
honelight | 0:28f8ba171e86 | 74 | in7.mode(PullUp); |
honelight | 0:28f8ba171e86 | 75 | in8.mode(PullUp); |
honelight | 0:28f8ba171e86 | 76 | |
honelight | 0:28f8ba171e86 | 77 | Board board; |
honelight | 0:28f8ba171e86 | 78 | int ** output = board.get_board(); |
honelight | 0:28f8ba171e86 | 79 | printBoard(output); |
honelight | 0:28f8ba171e86 | 80 | lcd.baudrate(3000000); |
honelight | 0:28f8ba171e86 | 81 | |
honelight | 0:28f8ba171e86 | 82 | lcd.line(0, 42 , 127, 42 , 0xFF0000); |
honelight | 0:28f8ba171e86 | 83 | lcd.line(0, 84 , 127, 84 , 0xFF0000); |
honelight | 0:28f8ba171e86 | 84 | lcd.line(42, 0 , 42, 127, 0xFF0000); |
honelight | 0:28f8ba171e86 | 85 | lcd.line(84, 0, 84, 127, 0xFF0000); |
honelight | 0:28f8ba171e86 | 86 | |
honelight | 0:28f8ba171e86 | 87 | while (true) { |
honelight | 0:28f8ba171e86 | 88 | if(!in0) |
honelight | 0:28f8ba171e86 | 89 | printout = 1; |
honelight | 0:28f8ba171e86 | 90 | else if(!in1) |
honelight | 0:28f8ba171e86 | 91 | printout = 2; |
honelight | 0:28f8ba171e86 | 92 | else if(!in2) |
honelight | 0:28f8ba171e86 | 93 | printout = 3; |
honelight | 0:28f8ba171e86 | 94 | else if(!in3) |
honelight | 0:28f8ba171e86 | 95 | printout = 4; |
honelight | 0:28f8ba171e86 | 96 | else if(!in4) |
honelight | 0:28f8ba171e86 | 97 | printout = 5; |
honelight | 0:28f8ba171e86 | 98 | else if(!in5) |
honelight | 0:28f8ba171e86 | 99 | printout = 6; |
honelight | 0:28f8ba171e86 | 100 | else if(!in6) |
honelight | 0:28f8ba171e86 | 101 | printout = 7; |
honelight | 0:28f8ba171e86 | 102 | else if(!in7) |
honelight | 0:28f8ba171e86 | 103 | printout = 8; |
honelight | 0:28f8ba171e86 | 104 | else if(!in8) |
honelight | 0:28f8ba171e86 | 105 | printout = 9; |
honelight | 0:28f8ba171e86 | 106 | else |
honelight | 0:28f8ba171e86 | 107 | printout = 0; |
honelight | 0:28f8ba171e86 | 108 | |
honelight | 0:28f8ba171e86 | 109 | |
honelight | 0:28f8ba171e86 | 110 | if(printout>0) |
honelight | 0:28f8ba171e86 | 111 | { |
honelight | 0:28f8ba171e86 | 112 | bool valid = board.updateBoard(turn, printout-1); |
honelight | 0:28f8ba171e86 | 113 | |
honelight | 0:28f8ba171e86 | 114 | if(valid) |
honelight | 0:28f8ba171e86 | 115 | { |
honelight | 0:28f8ba171e86 | 116 | output = board.get_board(); |
honelight | 0:28f8ba171e86 | 117 | printBoard(output); |
honelight | 0:28f8ba171e86 | 118 | printout=0; |
honelight | 0:28f8ba171e86 | 119 | int victory = board.check_victory(turn); |
honelight | 0:28f8ba171e86 | 120 | if(victory ==1) |
honelight | 0:28f8ba171e86 | 121 | { |
honelight | 0:28f8ba171e86 | 122 | lcd.cls(); |
honelight | 0:28f8ba171e86 | 123 | lcd.printf("player 1 win!"); |
honelight | 0:28f8ba171e86 | 124 | return 0; |
honelight | 0:28f8ba171e86 | 125 | } |
honelight | 0:28f8ba171e86 | 126 | else if(victory == 2) |
honelight | 0:28f8ba171e86 | 127 | { |
honelight | 0:28f8ba171e86 | 128 | lcd.cls(); |
honelight | 0:28f8ba171e86 | 129 | lcd.printf("player 2 win!"); |
honelight | 0:28f8ba171e86 | 130 | return 0; |
honelight | 0:28f8ba171e86 | 131 | } |
honelight | 0:28f8ba171e86 | 132 | if(turn ==1) |
honelight | 0:28f8ba171e86 | 133 | turn =2; |
honelight | 0:28f8ba171e86 | 134 | else |
honelight | 0:28f8ba171e86 | 135 | turn =1; |
honelight | 0:28f8ba171e86 | 136 | } |
honelight | 0:28f8ba171e86 | 137 | } |
honelight | 0:28f8ba171e86 | 138 | Thread::wait(400); |
honelight | 0:28f8ba171e86 | 139 | } |
honelight | 0:28f8ba171e86 | 140 | */ |
honelight | 0:28f8ba171e86 | 141 | |
honelight | 0:28f8ba171e86 | 142 | } |
honelight | 0:28f8ba171e86 | 143 |