Jasmine Karlsson
/
train_rail
New project
Train.cpp@21:31647d80614f, 2018-06-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |