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
master.h@2:6bfe732ba6bc, 2018-03-19 (annotated)
- Committer:
- bertgereels
- Date:
- Mon Mar 19 11:32:54 2018 +0000
- Revision:
- 2:6bfe732ba6bc
- Parent:
- 1:b5c534165dfe
- Child:
- 3:538e17979246
Project is now fully functional.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bertgereels | 0:88d3b9015f7c | 1 | #pragma once |
bertgereels | 0:88d3b9015f7c | 2 | |
bertgereels | 0:88d3b9015f7c | 3 | #include "mbed.h" |
bertgereels | 0:88d3b9015f7c | 4 | |
bertgereels | 0:88d3b9015f7c | 5 | #define MAX_COMMAND_LENGTH 20 |
bertgereels | 0:88d3b9015f7c | 6 | |
bertgereels | 0:88d3b9015f7c | 7 | namespace ProjectOne{ |
bertgereels | 0:88d3b9015f7c | 8 | |
bertgereels | 0:88d3b9015f7c | 9 | class Master{ |
bertgereels | 0:88d3b9015f7c | 10 | public: |
bertgereels | 2:6bfe732ba6bc | 11 | /* |
bertgereels | 2:6bfe732ba6bc | 12 | * Constructor for Master class. |
bertgereels | 2:6bfe732ba6bc | 13 | * |
bertgereels | 2:6bfe732ba6bc | 14 | @param The id for the master that is selected on boot. |
bertgereels | 2:6bfe732ba6bc | 15 | @return Nothing. |
bertgereels | 2:6bfe732ba6bc | 16 | */ |
bertgereels | 1:b5c534165dfe | 17 | Master(int master_id); |
bertgereels | 2:6bfe732ba6bc | 18 | |
bertgereels | 2:6bfe732ba6bc | 19 | /* |
bertgereels | 2:6bfe732ba6bc | 20 | * Method that sends characters to serial connection on pc. |
bertgereels | 2:6bfe732ba6bc | 21 | * |
bertgereels | 2:6bfe732ba6bc | 22 | @param Characters that need to be displayed. |
bertgereels | 2:6bfe732ba6bc | 23 | @return Nothing. |
bertgereels | 2:6bfe732ba6bc | 24 | */ |
bertgereels | 2:6bfe732ba6bc | 25 | void sendMessageToPc(char *thingsToDisplay); |
bertgereels | 2:6bfe732ba6bc | 26 | |
bertgereels | 2:6bfe732ba6bc | 27 | /* |
bertgereels | 2:6bfe732ba6bc | 28 | * Method that contains the master state-machine. |
bertgereels | 2:6bfe732ba6bc | 29 | * Waits for input from the user entered via a serial connection. |
bertgereels | 2:6bfe732ba6bc | 30 | * When command is entered, prompts user for slave id to send to. |
bertgereels | 2:6bfe732ba6bc | 31 | * Sends UDP packet to slave. |
bertgereels | 2:6bfe732ba6bc | 32 | * Waits for the response/acknowledgement from the slave. |
bertgereels | 2:6bfe732ba6bc | 33 | * Displays acknowledgement. |
bertgereels | 2:6bfe732ba6bc | 34 | * |
bertgereels | 2:6bfe732ba6bc | 35 | @param Char array containing the characters to display. |
bertgereels | 2:6bfe732ba6bc | 36 | @return Nothing. |
bertgereels | 2:6bfe732ba6bc | 37 | */ |
bertgereels | 0:88d3b9015f7c | 38 | void handlePcData(void); |
bertgereels | 0:88d3b9015f7c | 39 | |
bertgereels | 0:88d3b9015f7c | 40 | private: |
bertgereels | 0:88d3b9015f7c | 41 | enum masterStates{ |
bertgereels | 0:88d3b9015f7c | 42 | STATE_INIT, |
bertgereels | 1:b5c534165dfe | 43 | STATE_RECEIVING_FROM_PC, |
bertgereels | 1:b5c534165dfe | 44 | STATE_HANDLE_ID, |
bertgereels | 1:b5c534165dfe | 45 | STATE_SEND_UDP_PACKET, |
bertgereels | 1:b5c534165dfe | 46 | STATE_HANDLE_RESPONSE, |
bertgereels | 1:b5c534165dfe | 47 | STATE_ERROR_STATE |
bertgereels | 0:88d3b9015f7c | 48 | }; |
bertgereels | 0:88d3b9015f7c | 49 | |
bertgereels | 0:88d3b9015f7c | 50 | masterStates CurrentMasterState; |
bertgereels | 1:b5c534165dfe | 51 | |
bertgereels | 2:6bfe732ba6bc | 52 | char inputCommandArray[512]; |
bertgereels | 1:b5c534165dfe | 53 | char client_id[3]; |
bertgereels | 1:b5c534165dfe | 54 | int char_counter_command, char_counter_id; |
bertgereels | 0:88d3b9015f7c | 55 | |
bertgereels | 1:b5c534165dfe | 56 | int masterId; |
bertgereels | 1:b5c534165dfe | 57 | |
bertgereels | 1:b5c534165dfe | 58 | const static char *MASK; |
bertgereels | 1:b5c534165dfe | 59 | const static char *GATEWAY; |
bertgereels | 2:6bfe732ba6bc | 60 | |
bertgereels | 2:6bfe732ba6bc | 61 | Timer timer; |
bertgereels | 0:88d3b9015f7c | 62 | |
bertgereels | 0:88d3b9015f7c | 63 | }; |
bertgereels | 0:88d3b9015f7c | 64 | |
bertgereels | 0:88d3b9015f7c | 65 | }; |