New project

Dependencies:   mbed TextLCD

Committer:
jasminealice
Date:
Tue Jun 12 15:02:44 2018 +0000
Revision:
21:31647d80614f
Parent:
20:32ba0a5f2d02
Child:
23:bb57966cb776
Comments for logic

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;
jasminealice 18:f5824ba95892 11 }
jasminealice 18:f5824ba95892 12
jasminealice 18:f5824ba95892 13 Train::~Train()
jasminealice 18:f5824ba95892 14 {
jasminealice 18:f5824ba95892 15 //dtor
jasminealice 18:f5824ba95892 16 }
jasminealice 18:f5824ba95892 17
jasminealice 18:f5824ba95892 18 int Train::getPosition(){
jasminealice 18:f5824ba95892 19
jasminealice 18:f5824ba95892 20 return position;
jasminealice 18:f5824ba95892 21 }
jasminealice 20:32ba0a5f2d02 22
jasminealice 21:31647d80614f 23 void Train::goForward(){
jasminealice 20:32ba0a5f2d02 24
jasminealice 20:32ba0a5f2d02 25 DCC_send_command(address, inst, nrPacket);
jasminealice 20:32ba0a5f2d02 26
jasminealice 20:32ba0a5f2d02 27 }
jasminealice 20:32ba0a5f2d02 28
jasminealice 21:31647d80614f 29 void Train::changeSpeed(unsigned int speed){
jasminealice 21:31647d80614f 30 inst = speed;
jasminealice 21:31647d80614f 31 }
jasminealice 21:31647d80614f 32
jasminealice 21:31647d80614f 33 void Train::Stop(){
jasminealice 21:31647d80614f 34 unsigned int stop = 0x40;
jasminealice 20:32ba0a5f2d02 35 DCC_send_command(address, stop, nrPacket);
jasminealice 21:31647d80614f 36 }
jasminealice 21:31647d80614f 37
jasminealice 21:31647d80614f 38 unsigned int Train::getSpeed(){
jasminealice 21:31647d80614f 39 return inst;
jasminealice 21:31647d80614f 40 }
jasminealice 21:31647d80614f 41
jasminealice 21:31647d80614f 42 void Train::setPosition(int pos){
jasminealice 21:31647d80614f 43 position = pos;
jasminealice 21:31647d80614f 44 }
jasminealice 21:31647d80614f 45
jasminealice 21:31647d80614f 46 bool Train::checkInterupt(int pos){
jasminealice 21:31647d80614f 47 switch(pos){
jasminealice 21:31647d80614f 48 case 0:
jasminealice 21:31647d80614f 49 if(position == 13 || position == 1)
jasminealice 21:31647d80614f 50 return true;
jasminealice 21:31647d80614f 51 break;
jasminealice 21:31647d80614f 52 case 1:
jasminealice 21:31647d80614f 53 if(position == 0 || position == 2)
jasminealice 21:31647d80614f 54 return true;
jasminealice 21:31647d80614f 55 break;
jasminealice 21:31647d80614f 56 case 2:
jasminealice 21:31647d80614f 57 if(position == 1 || position == 3 || position == 4)
jasminealice 21:31647d80614f 58 return true;
jasminealice 21:31647d80614f 59 break;
jasminealice 21:31647d80614f 60 case 3:
jasminealice 21:31647d80614f 61 if(position == 9 || position == 2)
jasminealice 21:31647d80614f 62 return true;
jasminealice 21:31647d80614f 63 break;
jasminealice 21:31647d80614f 64 case 4:
jasminealice 21:31647d80614f 65 if(position == 6 || position == 2)
jasminealice 21:31647d80614f 66 return true;
jasminealice 21:31647d80614f 67 break;
jasminealice 21:31647d80614f 68 case 5:
jasminealice 21:31647d80614f 69 if(position == 11 || position == 6)
jasminealice 21:31647d80614f 70 return true;
jasminealice 21:31647d80614f 71 break;
jasminealice 21:31647d80614f 72 case 6:
jasminealice 21:31647d80614f 73 if(position == 7 || position == 4 || position == 5)
jasminealice 21:31647d80614f 74 return true;
jasminealice 21:31647d80614f 75 break;
jasminealice 21:31647d80614f 76 case 7:
jasminealice 21:31647d80614f 77 if(position == 8 || position == 6)
jasminealice 21:31647d80614f 78 return true;
jasminealice 21:31647d80614f 79 break;
jasminealice 21:31647d80614f 80 case 8:
jasminealice 21:31647d80614f 81 if(position == 7 || position == 9 || position == 10)
jasminealice 21:31647d80614f 82 return true;
jasminealice 21:31647d80614f 83 break;
jasminealice 21:31647d80614f 84 case 9:
jasminealice 21:31647d80614f 85 if(position == 3 || position == 8)
jasminealice 21:31647d80614f 86 return true;
jasminealice 21:31647d80614f 87 break;
jasminealice 21:31647d80614f 88 case 10:
jasminealice 21:31647d80614f 89 if(position == 8 || position == 12)
jasminealice 21:31647d80614f 90 return true;
jasminealice 21:31647d80614f 91 break;
jasminealice 21:31647d80614f 92 case 11:
jasminealice 21:31647d80614f 93 if(position == 5 || position == 12)
jasminealice 21:31647d80614f 94 return true;
jasminealice 21:31647d80614f 95 break;
jasminealice 21:31647d80614f 96 case 12:
jasminealice 21:31647d80614f 97 if(position == 11 || position == 13 || position == 10)
jasminealice 21:31647d80614f 98 return true;
jasminealice 21:31647d80614f 99 break;
jasminealice 21:31647d80614f 100 case 13:
jasminealice 21:31647d80614f 101 if(position == 0 || position == 12)
jasminealice 21:31647d80614f 102 return true;
jasminealice 21:31647d80614f 103 break;
jasminealice 21:31647d80614f 104 default:
jasminealice 21:31647d80614f 105 lcd.cls();
jasminealice 21:31647d80614f 106 lcd.printf("Train not right one");
jasminealice 21:31647d80614f 107 break;
jasminealice 21:31647d80614f 108 }
jasminealice 21:31647d80614f 109 return false;
jasminealice 20:32ba0a5f2d02 110 }