Jasmine Karlsson
/
train_rail
New project
Train.cpp@24:418711ed8c52, 2018-06-14 (annotated)
- 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?
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; |
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 | } |