Part One of my Project Course. Implementation of simple I/O and a custom defined protocol over UDP/IP.
Dependencies: C12832 LM75B mbed EthernetInterface mbed-rtos
selection.cpp@1:b5c534165dfe, 2018-03-14 (annotated)
- Committer:
- bertgereels
- Date:
- Wed Mar 14 07:59:21 2018 +0000
- Revision:
- 1:b5c534165dfe
- Child:
- 2:6bfe732ba6bc
Added slave state machine.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bertgereels | 1:b5c534165dfe | 1 | #include "selection.h" |
bertgereels | 1:b5c534165dfe | 2 | #include "mbed.h" |
bertgereels | 1:b5c534165dfe | 3 | |
bertgereels | 1:b5c534165dfe | 4 | #pragma once |
bertgereels | 1:b5c534165dfe | 5 | |
bertgereels | 1:b5c534165dfe | 6 | |
bertgereels | 1:b5c534165dfe | 7 | namespace ProjectOne{ |
bertgereels | 1:b5c534165dfe | 8 | |
bertgereels | 1:b5c534165dfe | 9 | Selection::Selection(PinName firstPin, PinName secondPin, PinName thirdPin, PinName fourthPin, PinName fifthPin) : joy(firstPin,secondPin,thirdPin,fourthPin,fifthPin) |
bertgereels | 1:b5c534165dfe | 10 | { |
bertgereels | 1:b5c534165dfe | 11 | |
bertgereels | 1:b5c534165dfe | 12 | } |
bertgereels | 1:b5c534165dfe | 13 | |
bertgereels | 1:b5c534165dfe | 14 | string Selection::determineMode(void){ |
bertgereels | 1:b5c534165dfe | 15 | printf("Select desired operating mode\r\n"); |
bertgereels | 1:b5c534165dfe | 16 | printf("Up = master, Down = slave\r\n"); |
bertgereels | 1:b5c534165dfe | 17 | string selected_mode = ""; |
bertgereels | 1:b5c534165dfe | 18 | while(joy.read() != 1){ |
bertgereels | 1:b5c534165dfe | 19 | if(joy.read() == 2){ |
bertgereels | 1:b5c534165dfe | 20 | selected_mode = "master"; |
bertgereels | 1:b5c534165dfe | 21 | printf("Current mode is: '%s'\r\n", selected_mode.c_str()); |
bertgereels | 1:b5c534165dfe | 22 | } |
bertgereels | 1:b5c534165dfe | 23 | if(joy.read() == 4){ |
bertgereels | 1:b5c534165dfe | 24 | selected_mode = "slave"; |
bertgereels | 1:b5c534165dfe | 25 | printf("Current mode is: '%s'\r\n", selected_mode.c_str()); |
bertgereels | 1:b5c534165dfe | 26 | } |
bertgereels | 1:b5c534165dfe | 27 | wait(0.5); |
bertgereels | 1:b5c534165dfe | 28 | } |
bertgereels | 1:b5c534165dfe | 29 | if(joy.read() == 1){ |
bertgereels | 1:b5c534165dfe | 30 | return selected_mode; |
bertgereels | 1:b5c534165dfe | 31 | } |
bertgereels | 1:b5c534165dfe | 32 | } |
bertgereels | 1:b5c534165dfe | 33 | |
bertgereels | 1:b5c534165dfe | 34 | int Selection::determineId(void){ |
bertgereels | 1:b5c534165dfe | 35 | wait(1); |
bertgereels | 1:b5c534165dfe | 36 | int selected_id = 100; |
bertgereels | 1:b5c534165dfe | 37 | printf("Select desired id, range: 100-110\r\n"); |
bertgereels | 1:b5c534165dfe | 38 | while(joy.read() != 1){ |
bertgereels | 1:b5c534165dfe | 39 | if(joy.read() == 8){ |
bertgereels | 1:b5c534165dfe | 40 | if(selected_id <= 110 && selected_id > 100){ |
bertgereels | 1:b5c534165dfe | 41 | selected_id--; |
bertgereels | 1:b5c534165dfe | 42 | printf("Current id is: '%d'\r\n", selected_id); |
bertgereels | 1:b5c534165dfe | 43 | } |
bertgereels | 1:b5c534165dfe | 44 | } |
bertgereels | 1:b5c534165dfe | 45 | if(joy.read() == 16){ |
bertgereels | 1:b5c534165dfe | 46 | if(selected_id >= 100 && selected_id < 110){ |
bertgereels | 1:b5c534165dfe | 47 | selected_id++; |
bertgereels | 1:b5c534165dfe | 48 | printf("Current id is: '%d'\r\n", selected_id); |
bertgereels | 1:b5c534165dfe | 49 | } |
bertgereels | 1:b5c534165dfe | 50 | } |
bertgereels | 1:b5c534165dfe | 51 | wait(0.5); |
bertgereels | 1:b5c534165dfe | 52 | } |
bertgereels | 1:b5c534165dfe | 53 | if(joy.read() == 1){ |
bertgereels | 1:b5c534165dfe | 54 | return selected_id; |
bertgereels | 1:b5c534165dfe | 55 | } |
bertgereels | 1:b5c534165dfe | 56 | } |
bertgereels | 1:b5c534165dfe | 57 | |
bertgereels | 1:b5c534165dfe | 58 | } |