Robin Mechele / Mbed 2 deprecated Project_mbed

Dependencies:   EthernetInterface LM75B mbed-rtos mbed

Files at this revision

API Documentation at this revision

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

H_files/buzzer.h Show annotated file Show diff for this revision Revisions of this file
H_files/lcdcontrol.h Show annotated file Show diff for this revision Revisions of this file
H_files/led.h Show annotated file Show diff for this revision Revisions of this file
H_files/master.h Show annotated file Show diff for this revision Revisions of this file
H_files/potentiometer.h Show annotated file Show diff for this revision Revisions of this file
H_files/setup.h Show annotated file Show diff for this revision Revisions of this file
H_files/slave.h Show annotated file Show diff for this revision Revisions of this file
H_files/temperature.h Show annotated file Show diff for this revision Revisions of this file
Setup.cpp Show annotated file Show diff for this revision Revisions of this file
Slave.cpp Show annotated file Show diff for this revision Revisions of this file
buzzer.h Show diff for this revision Revisions of this file
lcdcontrol.h Show diff for this revision Revisions of this file
led.h Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
master.h Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
potentiometer.h Show diff for this revision Revisions of this file
setup.h Show diff for this revision Revisions of this file
slave.h Show diff for this revision Revisions of this file
temperature.h Show diff for this revision Revisions of this file
--- /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