New project

Dependencies:   mbed TextLCD

Revision:
27:9f9cd0df9a79
Parent:
25:90f7a34c253a
Child:
28:1430685f4d12
--- a/Train.cpp	Wed Jun 20 10:05:45 2018 +0000
+++ b/Train.cpp	Wed Jun 20 14:38:20 2018 +0000
@@ -1,6 +1,6 @@
 #include "Train.h"
 
-Train::Train(const unsigned int newaddress, const unsigned int newinst, int pos)
+Train::Train(const unsigned int newaddress, const unsigned int newinst, int pos, const unsigned int speed): normSpeed(speed)
 {
     //ctor
     address = newaddress;
@@ -9,6 +9,7 @@
     dirClockwise = false;
     nrPacket = 20;
     isStopped = false;
+    //normSpeed = speed;
 }
 
 Train::~Train()
@@ -16,6 +17,10 @@
     //dtor
 }
 
+const unsigned int Train::normalSpeed(){
+    return normSpeed;    
+}
+
 int Train::getPosition(){
 
     return position;
@@ -62,23 +67,23 @@
 bool Train::checkInterupt(int pos){
     switch(pos){
     case 0:
-        if(position == 13 || position == 1 || position == 0)
+        if(position == 13 || position == 0 || position == 12)
             return true;
         break;
     case 1: 
-        if(position == 0 || position == 15 || position == 1)
+        if(position == 0 || position == 1 || position == 13)
             return true;
         break;
     case 2: 
-        if(position == 14 || position == 15 || position == 2)
+        if(position == 15 || position == 2)
             return true;
         break;
     case 3: 
-        if(position == 9 || position == 14 || position == 3)
+        if(position == 14 || position == 3 || position == 2)
             return true;
         break;
     case 4: 
-        if(position == 6 || position == 14 || position == 4)
+        if(position == 14 || position == 4 || position == 2)
             return true;
         break;
     case 5: 
@@ -94,35 +99,35 @@
             return true;
         break;
     case 8: 
-        if(position == 7 || position == 9 || position == 10 || position == 8)
+        if(position == 7 || position == 9 || position == 8 || position == 6)
             return true;
         break;
     case 9: 
-        if(position == 3 || position == 8 || position == 9)
+        if(position == 3 || position == 9 || position == 14)
             return true;
         break;
     case 10: 
-        if(position == 8 || position == 12 || position == 10)
+        if(position == 8 || position == 10 || position == 7)
             return true;
         break;
     case 11: 
-        if(position == 5 || position == 12 || position == 11)
+        if(position == 5 || position == 11)
             return true;
         break;
     case 12: 
-        if(position == 11 || position == 13 || position == 10 || position == 12)
+        if(position == 11 || position == 10 || position == 12)
             return true;
         break;
     case 13: 
-        if(position == 0 || position == 12 || position == 13)
+        if(position == 12 || position == 13)
             return true;
         break;
     case 14:
-        if(position == 2 || position == 3 || position == 4 || position == 14)
+        if(position == 2 || position == 14 || position == 15)
             return true;
         break;
     case 15:
-        if(position == 1 || position == 2 || position == 15)
+        if(position == 1 || position == 15)
             return true;
         break;
     default: