mbed project met ethernet communicatie (UDP) Master/slave

Dependencies:   EthernetInterface LM75B mbed-rtos mbed

Hey

Committer:
RobinMechele
Date:
Fri Mar 23 11:06:09 2018 +0000
Revision:
8:556a5738c2fa
Parent:
slave.h@7:2de256f902c8
Added final touch on the console output layout + removed 1 line of trash in slave.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RobinMechele 1:db9b9bec0133 1 #ifndef slave_h
RobinMechele 1:db9b9bec0133 2 #define slave_h
RobinMechele 1:db9b9bec0133 3 #include "EthernetInterface.h"
RobinMechele 1:db9b9bec0133 4 #include "mbed.h"
RobinMechele 3:fbf3c92f10ee 5 #include "temperature.h"
RobinMechele 3:fbf3c92f10ee 6 #include "potentiometer.h"
RobinMechele 3:fbf3c92f10ee 7 #include "lcdcontrol.h"
RobinMechele 3:fbf3c92f10ee 8 #include "led.h"
RobinMechele 3:fbf3c92f10ee 9 #include "buzzer.h"
RobinMechele 3:fbf3c92f10ee 10
RobinMechele 1:db9b9bec0133 11 class Slave
RobinMechele 1:db9b9bec0133 12 {
RobinMechele 1:db9b9bec0133 13 public:
RobinMechele 7:2de256f902c8 14 Slave(); //Constructor
RobinMechele 7:2de256f902c8 15
RobinMechele 7:2de256f902c8 16 /**
RobinMechele 7:2de256f902c8 17 * @param ip char array (const)
RobinMechele 7:2de256f902c8 18 * @param id int
RobinMechele 7:2de256f902c8 19 *
RobinMechele 7:2de256f902c8 20 * Deze methode is de Slave Run. Eenmaal in deze methode kan je er niet meer uit.
RobinMechele 7:2de256f902c8 21 * Je geeft het ip address mee, alsook het ID.
RobinMechele 7:2de256f902c8 22 * Deze methode zal eerst constant luisteren op het commando van de master mbed.
RobinMechele 7:2de256f902c8 23 * Wanneer deze methode iets binnenkrijgt, dan zal hij dit bericht verwerken aan de hand van andere methoden.
RobinMechele 7:2de256f902c8 24 * Als de slave het bericht heeft verwerkt, dan zal hij het juiste ACK bericht terugsturen naar de master.
RobinMechele 7:2de256f902c8 25 */
RobinMechele 3:fbf3c92f10ee 26 void slaveRun(const char*, int);
RobinMechele 7:2de256f902c8 27
RobinMechele 7:2de256f902c8 28 /**
RobinMechele 7:2de256f902c8 29 * @param fullbuffer char array
RobinMechele 7:2de256f902c8 30 *
RobinMechele 7:2de256f902c8 31 * Deze methode zal het volledig gekregen bericht opsplitsen in verschillende delen, om zo naar de juiste reactie te gaan.
RobinMechele 7:2de256f902c8 32 * In deze methode wordt er gecontroleerd ofdat er een GET of PUT wordt gevraagd.
RobinMechele 7:2de256f902c8 33 * Als er een GET of PUT wordt herkent, dan wordt de rest van het bericht doorgestuurd naar de juiste methode.
RobinMechele 7:2de256f902c8 34 * (getRequest, putRequest)
RobinMechele 7:2de256f902c8 35 */
RobinMechele 1:db9b9bec0133 36 void actionSlave(const char*);
RobinMechele 7:2de256f902c8 37
RobinMechele 7:2de256f902c8 38 /**
RobinMechele 7:2de256f902c8 39 * @param action char array
RobinMechele 7:2de256f902c8 40 *
RobinMechele 7:2de256f902c8 41 * Deze methode zal de andere helft van het GET request behandelen.
RobinMechele 7:2de256f902c8 42 * Kan "/potentiometer" en "/temperature" correct behandelen (hoofdlettergevoelig).
RobinMechele 7:2de256f902c8 43 */
RobinMechele 1:db9b9bec0133 44 void getRequest(char*);
RobinMechele 7:2de256f902c8 45
RobinMechele 7:2de256f902c8 46 /**
RobinMechele 7:2de256f902c8 47 * @param action char array
RobinMechele 7:2de256f902c8 48 *
RobinMechele 7:2de256f902c8 49 * Deze methode zal de andere helft van het PUT request behandelen.
RobinMechele 7:2de256f902c8 50 * Kan "/LED", "/LCD" en "/buzzer" correct behandelen. (hoofdlettergevoelig)
RobinMechele 7:2de256f902c8 51 * Als er een fout argument meegegeven wordt met bovenstaande putrequests, dan wordt de
RobinMechele 7:2de256f902c8 52 * foutboodschap teruggestuurd naar de slave.
RobinMechele 7:2de256f902c8 53 */
RobinMechele 1:db9b9bec0133 54 void putRequest(char*);
RobinMechele 7:2de256f902c8 55
RobinMechele 7:2de256f902c8 56 /**
RobinMechele 7:2de256f902c8 57 * @param append char array
RobinMechele 7:2de256f902c8 58 *
RobinMechele 7:2de256f902c8 59 * Met deze methode kan je een character array toevoegen aan het antwoord van de slave.
RobinMechele 7:2de256f902c8 60 * De werking kan je vergelijken met een "string.append()".
RobinMechele 7:2de256f902c8 61 */
RobinMechele 1:db9b9bec0133 62 void answerAppend(char*);
RobinMechele 7:2de256f902c8 63
RobinMechele 7:2de256f902c8 64 /**
RobinMechele 7:2de256f902c8 65 * Deze methode zal het antwoord van de slave resetten, zodat hij een nieuw
RobinMechele 7:2de256f902c8 66 * antwoord kan vormen bij het volgende bericht.
RobinMechele 7:2de256f902c8 67 * Er worden geen parameters meegegeven bij deze methode.
RobinMechele 7:2de256f902c8 68 */
RobinMechele 1:db9b9bec0133 69 void answerReset();
RobinMechele 1:db9b9bec0133 70 private:
RobinMechele 1:db9b9bec0133 71 char answer [512];
RobinMechele 3:fbf3c92f10ee 72 char id[4];
RobinMechele 1:db9b9bec0133 73 const char* IP;
RobinMechele 3:fbf3c92f10ee 74 Temperature temperature;
RobinMechele 3:fbf3c92f10ee 75 Potentiometer potentiometer;
RobinMechele 3:fbf3c92f10ee 76 LcdControl screen;
RobinMechele 3:fbf3c92f10ee 77 Led led;
RobinMechele 3:fbf3c92f10ee 78 Buzzer buzzer;
RobinMechele 1:db9b9bec0133 79 };
RobinMechele 1:db9b9bec0133 80
RobinMechele 1:db9b9bec0133 81 #endif