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