mbed project met ethernet communicatie (UDP) Master/slave
Dependencies: EthernetInterface LM75B mbed-rtos mbed
Hey
slave.h@7:2de256f902c8, 2018-03-19 (annotated)
- Committer:
- RobinMechele
- Date:
- Mon Mar 19 00:58:20 2018 +0000
- Revision:
- 7:2de256f902c8
- Parent:
- 3:fbf3c92f10ee
Alle documentatie zit erin
Who changed what in which revision?
User | Revision | Line number | New 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 |