New project

Dependencies:   mbed TextLCD

Committer:
KwamsC
Date:
Thu Jun 14 14:47:16 2018 +0000
Revision:
24:418711ed8c52
Parent:
23:bb57966cb776
Child:
25:90f7a34c253a
all cases implemented

Who changed what in which revision?

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