Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface LM75B mbed-rtos mbed
Revision 8:556a5738c2fa, committed 2018-03-23
- Comitter:
- RobinMechele
- Date:
- Fri Mar 23 11:06:09 2018 +0000
- Parent:
- 7:2de256f902c8
- Commit message:
- Added final touch on the console output layout + removed 1 line of trash in slave.cpp
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/buzzer.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,21 @@ +#ifndef buzzer_h +#define buzzer_h +#include "mbed.h" + +class Buzzer +{ +public: + Buzzer(); //Constructor + + /** + * @param start int + * @param eind int + * + * Met deze methode kan je de buzzer aansturen. + * Het geluid dat de buzzer zal afspelen, kan worden gekozen door de beginwaarde en eindwaarde van de 3 arrays mee te geven. + * Je kan waarden meegeven tussen 1-17. + */ + void playBuzzer(int,int); +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/lcdcontrol.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,50 @@ +#ifndef lcdcontrol_h +#define lcdcontrol_h +#include "mbed.h" +#include "C12832A1Z.h" + +class LcdControl +{ +public: + LcdControl(); //Constructor + + /** + * Deze methode zal voor de tekst layout zorgen als men de mode van de mbed moet kiezen. + * Geen parameters nodig. + */ + void printMode(); + + /** + * @param mode int + * + * Deze methode zal voor de tekst zorgen dat de gebruiker kan zien in welke mode hij zich bevindt. + * Wordt uitsluitend gebruikt in de setup klasse. + */ + void printMasterSlave(int); + + /** + * @param ID int + * + * Deze methode zal de ID uitprinten op het lcd scherm. + * Deze wordt opnieuw aangeroepen als men met de joystick up/down doet. + * Deze methode wordt uitsluitend gebruikt in de setup klasse. + */ + void printID(int); + + /** + * Deze methode zal het lcd scherm resetten (dus clearen) en zijn cursor op de beginpositie + * plaatsen. + * Deze methode heeft geen parameters nodig. + */ + void lcdReset(); + + /** + * @param text char array + * + * Deze methode zal de tekst uitprinten dat je meegeeft met de methode. (parameter) + * Wordt gebruikt in de slave. + */ + void lcdSlave(char*); +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/led.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,20 @@ +#ifndef led_h +#define led_h +#include "mbed.h" + +class Led +{ +public: + Led(); //Constructor + + /** + * @param color char array + * + * Deze methode zal het kleur van je led instellen. + * Je geeft een character array mee, en de methode zal dan een 0 of een 1 terugsturen. + * (0 = succes, 1 = fail) Dit kan je dan doorgeven aan de slave om het juiste antwoord terug te sturen naar de master. + */ + int setColor(char*); +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/master.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,28 @@ +#ifndef master_h +#define master_h +#include "mbed.h" +#include "EthernetInterface.h" + +class Master +{ +public: + Master();//Constructor + + /** + * @param Ip char array (const) + * + * MAXIMUM buffer = 512; POORT = 4000; + * Deze methode is de master_run, dit wil zeggen dat hij nooit meer uit deze methode zal gaan (while lus). + * Je geeft het IP address mee aan deze methode. + * Eerst zal hij wachten op het commando dat je wilt versturen. Daarna wordt er gevraagd naar het ID dat je wilt versturen. + * Nadien zal hij wachten totdat hij een antwoord terugkrijgt van de slave (ACK). + * Het antwoord van de slave wordt dan uitgeprint op het consolescherm. + */ + void masterRun(const char*); +private: + char buffer[512]; + char receiveID[14]; + const char* IP; +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/potentiometer.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,17 @@ +#ifndef potentiometer_h +#define potentiometer_h +#include "mbed.h" + +class Potentiometer +{ +public: + Potentiometer(); //Constructor + + /** + * Deze methode zal de potentiometer waarde terug geven als een float. + * Geen parameters nodig. + */ + float getPotentiometer(); +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/setup.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,44 @@ +#ifndef setup_h +#define setup_h +#include "mbed.h" +#include "lcdcontrol.h" + +class Setup +{ +public: + Setup(); //Constructor + + /** + * Deze methode zal de mode instellen voor de mbed + * Je kan alleen uit deze methode als je de joystick indrukt. + * Geen parameters nodig. + * Zal een int waarde returnen, die zal vertellen in welke mode je zit. + * (0 = slave, 1= master) + */ + int chooseMode(); + + /** + * Deze methode zal je ID kunnen selecteren van de mbed. + * Je kan alleen uit deze methode als je de joystick indrukt. + * Met up/down kan je je ID kiezen tussen 100 en 110. + * Geen parameters nodig. + * Zal de gekozen ID als een int waarde returnen. + */ + int chooseID(); + + /** + * @param ID int + * + * Deze methode zal van je ID, bestaande uit 3 cijfers, vastplakken aan de standaard IP address. + * ("192.168.0." + ID) + * Deze methode zal dan een character array returnen met het volledig IP address van de mbed. + */ + char* convertToIP(int); +private: + int mode; + char *ip; + char tempID[4]; + char partOfIP[15]; +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/slave.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,81 @@ +#ifndef slave_h +#define slave_h +#include "EthernetInterface.h" +#include "mbed.h" +#include "temperature.h" +#include "potentiometer.h" +#include "lcdcontrol.h" +#include "led.h" +#include "buzzer.h" + +class Slave +{ +public: + Slave(); //Constructor + + /** + * @param ip char array (const) + * @param id int + * + * Deze methode is de Slave Run. Eenmaal in deze methode kan je er niet meer uit. + * Je geeft het ip address mee, alsook het ID. + * Deze methode zal eerst constant luisteren op het commando van de master mbed. + * Wanneer deze methode iets binnenkrijgt, dan zal hij dit bericht verwerken aan de hand van andere methoden. + * Als de slave het bericht heeft verwerkt, dan zal hij het juiste ACK bericht terugsturen naar de master. + */ + void slaveRun(const char*, int); + + /** + * @param fullbuffer char array + * + * Deze methode zal het volledig gekregen bericht opsplitsen in verschillende delen, om zo naar de juiste reactie te gaan. + * In deze methode wordt er gecontroleerd ofdat er een GET of PUT wordt gevraagd. + * Als er een GET of PUT wordt herkent, dan wordt de rest van het bericht doorgestuurd naar de juiste methode. + * (getRequest, putRequest) + */ + void actionSlave(const char*); + + /** + * @param action char array + * + * Deze methode zal de andere helft van het GET request behandelen. + * Kan "/potentiometer" en "/temperature" correct behandelen (hoofdlettergevoelig). + */ + void getRequest(char*); + + /** + * @param action char array + * + * Deze methode zal de andere helft van het PUT request behandelen. + * Kan "/LED", "/LCD" en "/buzzer" correct behandelen. (hoofdlettergevoelig) + * Als er een fout argument meegegeven wordt met bovenstaande putrequests, dan wordt de + * foutboodschap teruggestuurd naar de slave. + */ + void putRequest(char*); + + /** + * @param append char array + * + * Met deze methode kan je een character array toevoegen aan het antwoord van de slave. + * De werking kan je vergelijken met een "string.append()". + */ + void answerAppend(char*); + + /** + * Deze methode zal het antwoord van de slave resetten, zodat hij een nieuw + * antwoord kan vormen bij het volgende bericht. + * Er worden geen parameters meegegeven bij deze methode. + */ + void answerReset(); +private: + char answer [512]; + char id[4]; + const char* IP; + Temperature temperature; + Potentiometer potentiometer; + LcdControl screen; + Led led; + Buzzer buzzer; +}; + +#endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/H_files/temperature.h Fri Mar 23 11:06:09 2018 +0000 @@ -0,0 +1,18 @@ +#ifndef temperature_h +#define temperature_h +#include "mbed.h" +#include "LM75B.h" + +class Temperature +{ +public: + Temperature(); //Constructor + + /** + * Deze methode zal de temperatuur waarde terug geven als een float. + * Geen parameters nodig. + */ + float getTemperature(); +}; + +#endif \ No newline at end of file
--- a/Setup.cpp Mon Mar 19 00:58:20 2018 +0000 +++ b/Setup.cpp Fri Mar 23 11:06:09 2018 +0000 @@ -67,6 +67,8 @@ } } } + lcd.lcdReset(); + lcd.printMasterSlave(mode); return mode; }
--- a/Slave.cpp Mon Mar 19 00:58:20 2018 +0000 +++ b/Slave.cpp Fri Mar 23 11:06:09 2018 +0000 @@ -24,14 +24,18 @@ while(1){ char buffer[MAX_BUFFER_SIZE] = {0}; - printf("\nWaiting for UDP packet...\n\r"); + printf("##########################\n\r"); + printf("# Waiting for master.... #\n\r"); + printf("# IP:%s #\n\r", ip); + printf("##########################\n\r\n"); int n = slave.receiveFrom(master, buffer, sizeof(buffer)); buffer[n] = '\0'; - printf("Received packet from: %s\n\r", master.get_address()); + printf("Received message from master with address: %s\n\r", master.get_address()); printf("Received: '%s'\r\n", buffer); actionSlave(buffer); + printf("Sending ACK: %s \n\r\n", answer); slave.sendTo(master, answer, MAX_BUFFER_SIZE); answerReset(); @@ -122,7 +126,6 @@ { answerAppend("ACK 4.0 "); answerAppend(id); - answerAppend(" Doet da eki nie, danke"); } } else
--- a/buzzer.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#ifndef buzzer_h -#define buzzer_h -#include "mbed.h" - -class Buzzer -{ -public: - Buzzer(); //Constructor - - /** - * @param start int - * @param eind int - * - * Met deze methode kan je de buzzer aansturen. - * Het geluid dat de buzzer zal afspelen, kan worden gekozen door de beginwaarde en eindwaarde van de 3 arrays mee te geven. - * Je kan waarden meegeven tussen 1-17. - */ - void playBuzzer(int,int); -}; - -#endif \ No newline at end of file
--- a/lcdcontrol.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -#ifndef lcdcontrol_h -#define lcdcontrol_h -#include "mbed.h" -#include "C12832A1Z.h" - -class LcdControl -{ -public: - LcdControl(); //Constructor - - /** - * Deze methode zal voor de tekst layout zorgen als men de mode van de mbed moet kiezen. - * Geen parameters nodig. - */ - void printMode(); - - /** - * @param mode int - * - * Deze methode zal voor de tekst zorgen dat de gebruiker kan zien in welke mode hij zich bevindt. - * Wordt uitsluitend gebruikt in de setup klasse. - */ - void printMasterSlave(int); - - /** - * @param ID int - * - * Deze methode zal de ID uitprinten op het lcd scherm. - * Deze wordt opnieuw aangeroepen als men met de joystick up/down doet. - * Deze methode wordt uitsluitend gebruikt in de setup klasse. - */ - void printID(int); - - /** - * Deze methode zal het lcd scherm resetten (dus clearen) en zijn cursor op de beginpositie - * plaatsen. - * Deze methode heeft geen parameters nodig. - */ - void lcdReset(); - - /** - * @param text char array - * - * Deze methode zal de tekst uitprinten dat je meegeeft met de methode. (parameter) - * Wordt gebruikt in de slave. - */ - void lcdSlave(char*); -}; - -#endif \ No newline at end of file
--- a/led.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -#ifndef led_h -#define led_h -#include "mbed.h" - -class Led -{ -public: - Led(); //Constructor - - /** - * @param color char array - * - * Deze methode zal het kleur van je led instellen. - * Je geeft een character array mee, en de methode zal dan een 0 of een 1 terugsturen. - * (0 = succes, 1 = fail) Dit kan je dan doorgeven aan de slave om het juiste antwoord terug te sturen naar de master. - */ - int setColor(char*); -}; - -#endif \ No newline at end of file
--- a/main.cpp Mon Mar 19 00:58:20 2018 +0000 +++ b/main.cpp Fri Mar 23 11:06:09 2018 +0000 @@ -11,8 +11,12 @@ Slave slave; int main() { + printf("Use the joystick (up/down) to choose the mbed ID\n\r"); + printf("Push the joystick to confirm the ID\n\r"); ID = setup.chooseID(); + printf("Your mbed has the id %d \n\r", ID); IP = setup.convertToIP(ID); + printf("Follow the instructions on the lcd screen of the mbed to choose it's mode\n\r\n"); if(setup.chooseMode() == 0) { slave.slaveRun(IP, ID);
--- a/master.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -#ifndef master_h -#define master_h -#include "mbed.h" -#include "EthernetInterface.h" - -class Master -{ -public: - Master();//Constructor - - /** - * @param Ip char array (const) - * - * MAXIMUM buffer = 512; POORT = 4000; - * Deze methode is de master_run, dit wil zeggen dat hij nooit meer uit deze methode zal gaan (while lus). - * Je geeft het IP address mee aan deze methode. - * Eerst zal hij wachten op het commando dat je wilt versturen. Daarna wordt er gevraagd naar het ID dat je wilt versturen. - * Nadien zal hij wachten totdat hij een antwoord terugkrijgt van de slave (ACK). - * Het antwoord van de slave wordt dan uitgeprint op het consolescherm. - */ - void masterRun(const char*); -private: - char buffer[512]; - char receiveID[14]; - const char* IP; -}; - -#endif \ No newline at end of file
--- a/mbed.bld Mon Mar 19 00:58:20 2018 +0000 +++ b/mbed.bld Fri Mar 23 11:06:09 2018 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/mbed_official/code/mbed/builds/aa5281ff4a02 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/994bdf8177cb \ No newline at end of file
--- a/potentiometer.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#ifndef potentiometer_h -#define potentiometer_h -#include "mbed.h" - -class Potentiometer -{ -public: - Potentiometer(); //Constructor - - /** - * Deze methode zal de potentiometer waarde terug geven als een float. - * Geen parameters nodig. - */ - float getPotentiometer(); -}; - -#endif \ No newline at end of file
--- a/setup.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -#ifndef setup_h -#define setup_h -#include "mbed.h" -#include "lcdcontrol.h" - -class Setup -{ -public: - Setup(); //Constructor - - /** - * Deze methode zal de mode instellen voor de mbed - * Je kan alleen uit deze methode als je de joystick indrukt. - * Geen parameters nodig. - * Zal een int waarde returnen, die zal vertellen in welke mode je zit. - * (0 = slave, 1= master) - */ - int chooseMode(); - - /** - * Deze methode zal je ID kunnen selecteren van de mbed. - * Je kan alleen uit deze methode als je de joystick indrukt. - * Met up/down kan je je ID kiezen tussen 100 en 110. - * Geen parameters nodig. - * Zal de gekozen ID als een int waarde returnen. - */ - int chooseID(); - - /** - * @param ID int - * - * Deze methode zal van je ID, bestaande uit 3 cijfers, vastplakken aan de standaard IP address. - * ("192.168.0." + ID) - * Deze methode zal dan een character array returnen met het volledig IP address van de mbed. - */ - char* convertToIP(int); -private: - int mode; - char *ip; - char tempID[4]; - char partOfIP[15]; -}; - -#endif \ No newline at end of file
--- a/slave.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -#ifndef slave_h -#define slave_h -#include "EthernetInterface.h" -#include "mbed.h" -#include "temperature.h" -#include "potentiometer.h" -#include "lcdcontrol.h" -#include "led.h" -#include "buzzer.h" - -class Slave -{ -public: - Slave(); //Constructor - - /** - * @param ip char array (const) - * @param id int - * - * Deze methode is de Slave Run. Eenmaal in deze methode kan je er niet meer uit. - * Je geeft het ip address mee, alsook het ID. - * Deze methode zal eerst constant luisteren op het commando van de master mbed. - * Wanneer deze methode iets binnenkrijgt, dan zal hij dit bericht verwerken aan de hand van andere methoden. - * Als de slave het bericht heeft verwerkt, dan zal hij het juiste ACK bericht terugsturen naar de master. - */ - void slaveRun(const char*, int); - - /** - * @param fullbuffer char array - * - * Deze methode zal het volledig gekregen bericht opsplitsen in verschillende delen, om zo naar de juiste reactie te gaan. - * In deze methode wordt er gecontroleerd ofdat er een GET of PUT wordt gevraagd. - * Als er een GET of PUT wordt herkent, dan wordt de rest van het bericht doorgestuurd naar de juiste methode. - * (getRequest, putRequest) - */ - void actionSlave(const char*); - - /** - * @param action char array - * - * Deze methode zal de andere helft van het GET request behandelen. - * Kan "/potentiometer" en "/temperature" correct behandelen (hoofdlettergevoelig). - */ - void getRequest(char*); - - /** - * @param action char array - * - * Deze methode zal de andere helft van het PUT request behandelen. - * Kan "/LED", "/LCD" en "/buzzer" correct behandelen. (hoofdlettergevoelig) - * Als er een fout argument meegegeven wordt met bovenstaande putrequests, dan wordt de - * foutboodschap teruggestuurd naar de slave. - */ - void putRequest(char*); - - /** - * @param append char array - * - * Met deze methode kan je een character array toevoegen aan het antwoord van de slave. - * De werking kan je vergelijken met een "string.append()". - */ - void answerAppend(char*); - - /** - * Deze methode zal het antwoord van de slave resetten, zodat hij een nieuw - * antwoord kan vormen bij het volgende bericht. - * Er worden geen parameters meegegeven bij deze methode. - */ - void answerReset(); -private: - char answer [512]; - char id[4]; - const char* IP; - Temperature temperature; - Potentiometer potentiometer; - LcdControl screen; - Led led; - Buzzer buzzer; -}; - -#endif \ No newline at end of file
--- a/temperature.h Mon Mar 19 00:58:20 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -#ifndef temperature_h -#define temperature_h -#include "mbed.h" -#include "LM75B.h" - -class Temperature -{ -public: - Temperature(); //Constructor - - /** - * Deze methode zal de temperatuur waarde terug geven als een float. - * Geen parameters nodig. - */ - float getTemperature(); -}; - -#endif \ No newline at end of file