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

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?

UserRevisionLine numberNew 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 };