New project

Dependencies:   mbed TextLCD

Committer:
jasminealice
Date:
Thu Jun 28 15:08:41 2018 +0000
Revision:
31:9d973398554f
Parent:
28:1430685f4d12
Fiiinal!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jasminealice 18:f5824ba95892 1 #include "Train.h"
jasminealice 18:f5824ba95892 2
jasminealice 28:1430685f4d12 3 Train::Train(const unsigned int newaddress, const unsigned int newinst, int pos, const unsigned int speed, const unsigned int speed2): normSpeed(speed), slowSpeed(speed2)
jasminealice 18:f5824ba95892 4 {
jasminealice 18:f5824ba95892 5 //ctor
jasminealice 18:f5824ba95892 6 address = newaddress;
jasminealice 20:32ba0a5f2d02 7 inst = newinst;
jasminealice 21:31647d80614f 8 position = pos;
jasminealice 21:31647d80614f 9 dirClockwise = false;
jasminealice 21:31647d80614f 10 nrPacket = 20;
KwamsC 24:418711ed8c52 11 isStopped = false;
jasminealice 28:1430685f4d12 12
jasminealice 18:f5824ba95892 13 }
jasminealice 18:f5824ba95892 14
jasminealice 18:f5824ba95892 15 Train::~Train()
jasminealice 18:f5824ba95892 16 {
jasminealice 18:f5824ba95892 17 //dtor
jasminealice 18:f5824ba95892 18 }
jasminealice 18:f5824ba95892 19
jasminealice 28:1430685f4d12 20 unsigned int Train::normalSpeed(){
KwamsC 27:9f9cd0df9a79 21 return normSpeed;
KwamsC 27:9f9cd0df9a79 22 }
KwamsC 27:9f9cd0df9a79 23
jasminealice 28:1430685f4d12 24 unsigned int Train::slowlySpeed(){
jasminealice 28:1430685f4d12 25 return slowSpeed;
jasminealice 28:1430685f4d12 26 }
jasminealice 28:1430685f4d12 27
jasminealice 18:f5824ba95892 28 int Train::getPosition(){
jasminealice 18:f5824ba95892 29
jasminealice 18:f5824ba95892 30 return position;
jasminealice 18:f5824ba95892 31 }
jasminealice 20:32ba0a5f2d02 32
jasminealice 23:bb57966cb776 33 void Train::sendCommand(){
jasminealice 23:bb57966cb776 34 //lcd.cls();
jasminealice 23:bb57966cb776 35 //lcd.printf("Send command");
jasminealice 23:bb57966cb776 36 //lcd.printf("%d", inst);
jasminealice 20:32ba0a5f2d02 37 DCC_send_command(address, inst, nrPacket);
jasminealice 20:32ba0a5f2d02 38
jasminealice 20:32ba0a5f2d02 39 }
jasminealice 20:32ba0a5f2d02 40
jasminealice 21:31647d80614f 41 void Train::changeSpeed(unsigned int speed){
jasminealice 28:1430685f4d12 42 isStopped = false;
jasminealice 21:31647d80614f 43 inst = speed;
jasminealice 21:31647d80614f 44 }
jasminealice 21:31647d80614f 45
jasminealice 21:31647d80614f 46 void Train::Stop(){
jasminealice 23:bb57966cb776 47 inst = 0x40;
KwamsC 24:418711ed8c52 48 isStopped = true;
jasminealice 23:bb57966cb776 49 DCC_send_command(address, inst, nrPacket);
jasminealice 21:31647d80614f 50 }
jasminealice 21:31647d80614f 51
jasminealice 21:31647d80614f 52 unsigned int Train::getSpeed(){
jasminealice 21:31647d80614f 53 return inst;
jasminealice 21:31647d80614f 54 }
jasminealice 21:31647d80614f 55
jasminealice 21:31647d80614f 56 void Train::setPosition(int pos){
jasminealice 21:31647d80614f 57 position = pos;
jasminealice 21:31647d80614f 58 }
jasminealice 23:bb57966cb776 59
jasminealice 23:bb57966cb776 60 bool Train::isClockwise(){
jasminealice 23:bb57966cb776 61 return dirClockwise;
jasminealice 23:bb57966cb776 62 }
jasminealice 23:bb57966cb776 63
jasminealice 23:bb57966cb776 64 void Train::changeDirection(){
jasminealice 23:bb57966cb776 65 dirClockwise = !dirClockwise;
jasminealice 23:bb57966cb776 66 }
KwamsC 24:418711ed8c52 67
KwamsC 24:418711ed8c52 68 bool Train::checkStop(){
KwamsC 24:418711ed8c52 69 return isStopped;
KwamsC 24:418711ed8c52 70 }
jasminealice 21:31647d80614f 71
jasminealice 21:31647d80614f 72 bool Train::checkInterupt(int pos){
jasminealice 21:31647d80614f 73 switch(pos){
jasminealice 21:31647d80614f 74 case 0:
KwamsC 27:9f9cd0df9a79 75 if(position == 13 || position == 0 || position == 12)
jasminealice 21:31647d80614f 76 return true;
jasminealice 21:31647d80614f 77 break;
jasminealice 21:31647d80614f 78 case 1:
KwamsC 27:9f9cd0df9a79 79 if(position == 0 || position == 1 || position == 13)
jasminealice 21:31647d80614f 80 return true;
jasminealice 21:31647d80614f 81 break;
jasminealice 21:31647d80614f 82 case 2:
KwamsC 27:9f9cd0df9a79 83 if(position == 15 || position == 2)
jasminealice 21:31647d80614f 84 return true;
jasminealice 21:31647d80614f 85 break;
jasminealice 21:31647d80614f 86 case 3:
KwamsC 27:9f9cd0df9a79 87 if(position == 14 || position == 3 || position == 2)
jasminealice 21:31647d80614f 88 return true;
jasminealice 21:31647d80614f 89 break;
jasminealice 21:31647d80614f 90 case 4:
KwamsC 27:9f9cd0df9a79 91 if(position == 14 || position == 4 || position == 2)
jasminealice 21:31647d80614f 92 return true;
jasminealice 21:31647d80614f 93 break;
jasminealice 21:31647d80614f 94 case 5:
jasminealice 25:90f7a34c253a 95 if(position == 11 || position == 6 || position == 5)
jasminealice 21:31647d80614f 96 return true;
jasminealice 21:31647d80614f 97 break;
jasminealice 21:31647d80614f 98 case 6:
jasminealice 28:1430685f4d12 99 if(position == 7 || position == 4 || position == 5 || position == 6 || position == 8)
jasminealice 21:31647d80614f 100 return true;
jasminealice 21:31647d80614f 101 break;
jasminealice 21:31647d80614f 102 case 7:
jasminealice 31:9d973398554f 103 if(position == 8 || position == 6 || position == 7 || position == 9)
jasminealice 21:31647d80614f 104 return true;
jasminealice 21:31647d80614f 105 break;
jasminealice 21:31647d80614f 106 case 8:
KwamsC 27:9f9cd0df9a79 107 if(position == 7 || position == 9 || position == 8 || position == 6)
jasminealice 21:31647d80614f 108 return true;
jasminealice 21:31647d80614f 109 break;
jasminealice 21:31647d80614f 110 case 9:
KwamsC 27:9f9cd0df9a79 111 if(position == 3 || position == 9 || position == 14)
jasminealice 21:31647d80614f 112 return true;
jasminealice 21:31647d80614f 113 break;
jasminealice 21:31647d80614f 114 case 10:
KwamsC 27:9f9cd0df9a79 115 if(position == 8 || position == 10 || position == 7)
jasminealice 21:31647d80614f 116 return true;
jasminealice 21:31647d80614f 117 break;
jasminealice 21:31647d80614f 118 case 11:
KwamsC 27:9f9cd0df9a79 119 if(position == 5 || position == 11)
jasminealice 21:31647d80614f 120 return true;
jasminealice 21:31647d80614f 121 break;
jasminealice 21:31647d80614f 122 case 12:
KwamsC 27:9f9cd0df9a79 123 if(position == 11 || position == 10 || position == 12)
jasminealice 21:31647d80614f 124 return true;
jasminealice 21:31647d80614f 125 break;
jasminealice 21:31647d80614f 126 case 13:
KwamsC 27:9f9cd0df9a79 127 if(position == 12 || position == 13)
jasminealice 21:31647d80614f 128 return true;
jasminealice 21:31647d80614f 129 break;
KwamsC 24:418711ed8c52 130 case 14:
KwamsC 27:9f9cd0df9a79 131 if(position == 2 || position == 14 || position == 15)
jasminealice 25:90f7a34c253a 132 return true;
KwamsC 24:418711ed8c52 133 break;
KwamsC 24:418711ed8c52 134 case 15:
KwamsC 27:9f9cd0df9a79 135 if(position == 1 || position == 15)
jasminealice 25:90f7a34c253a 136 return true;
KwamsC 24:418711ed8c52 137 break;
jasminealice 21:31647d80614f 138 default:
jasminealice 21:31647d80614f 139 lcd.cls();
jasminealice 21:31647d80614f 140 lcd.printf("Train not right one");
jasminealice 21:31647d80614f 141 break;
jasminealice 21:31647d80614f 142 }
jasminealice 21:31647d80614f 143 return false;
jasminealice 20:32ba0a5f2d02 144 }