Part One of my Project Course. Implementation of simple I/O and a custom defined protocol over UDP/IP.

Dependencies:   C12832 LM75B mbed EthernetInterface mbed-rtos

slave.h

Committer:
bertgereels
Date:
2018-03-14
Revision:
1:b5c534165dfe
Parent:
0:88d3b9015f7c
Child:
2:6bfe732ba6bc

File content as of revision 1:b5c534165dfe:

#pragma once

#include "mbed.h"
#include "temperature.h"
#include "buzzer_music.h"
#include "lcd.h"
#include "rgb.h"
#include "potentiometer.h"

namespace ProjectOne{
    
    class Slave{
        public:
            Slave(int slave_id, Temperature *temperature, Potentiometer *potentiometer, LCD *lcd, RGB *rgb, BuzzerMusic *buzzerMusic);
            void handleIncomingFrame(void);
          
            
        private:
            enum slaveStates{
                STATE_INIT,
                STATE_WAIT_FOR_FRAME,
                STATE_HANDLE_FRAME,
                STATE_HANDLE_REQUEST,
                STATE_SEND_ACKNOWLEDGEMENT
            };
            
            slaveStates CurrentSlaveState;

            const static char *MASK;
            const static char *GATEWAY;
        
            int slaveId;
            
            Temperature *slaveTemp;
            Potentiometer *slavePot;
            LCD *slaveLcd;
            RGB *slaveRgb;
            BuzzerMusic *slaveBuzzerMusic;
            
            float temperatureValue;
            float potentiometerValue;
            string response;
        
    };
    
};