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

Committer:
bertgereels
Date:
Wed Mar 14 07:59:21 2018 +0000
Revision:
1:b5c534165dfe
Parent:
0:88d3b9015f7c
Child:
2:6bfe732ba6bc
Added slave state machine.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bertgereels 0:88d3b9015f7c 1 #pragma once
bertgereels 0:88d3b9015f7c 2
bertgereels 0:88d3b9015f7c 3 #include "mbed.h"
bertgereels 1:b5c534165dfe 4 #include "temperature.h"
bertgereels 1:b5c534165dfe 5 #include "buzzer_music.h"
bertgereels 1:b5c534165dfe 6 #include "lcd.h"
bertgereels 1:b5c534165dfe 7 #include "rgb.h"
bertgereels 1:b5c534165dfe 8 #include "potentiometer.h"
bertgereels 0:88d3b9015f7c 9
bertgereels 0:88d3b9015f7c 10 namespace ProjectOne{
bertgereels 0:88d3b9015f7c 11
bertgereels 0:88d3b9015f7c 12 class Slave{
bertgereels 0:88d3b9015f7c 13 public:
bertgereels 1:b5c534165dfe 14 Slave(int slave_id, Temperature *temperature, Potentiometer *potentiometer, LCD *lcd, RGB *rgb, BuzzerMusic *buzzerMusic);
bertgereels 0:88d3b9015f7c 15 void handleIncomingFrame(void);
bertgereels 1:b5c534165dfe 16
bertgereels 0:88d3b9015f7c 17
bertgereels 0:88d3b9015f7c 18 private:
bertgereels 0:88d3b9015f7c 19 enum slaveStates{
bertgereels 1:b5c534165dfe 20 STATE_INIT,
bertgereels 0:88d3b9015f7c 21 STATE_WAIT_FOR_FRAME,
bertgereels 0:88d3b9015f7c 22 STATE_HANDLE_FRAME,
bertgereels 1:b5c534165dfe 23 STATE_HANDLE_REQUEST,
bertgereels 1:b5c534165dfe 24 STATE_SEND_ACKNOWLEDGEMENT
bertgereels 0:88d3b9015f7c 25 };
bertgereels 0:88d3b9015f7c 26
bertgereels 0:88d3b9015f7c 27 slaveStates CurrentSlaveState;
bertgereels 1:b5c534165dfe 28
bertgereels 1:b5c534165dfe 29 const static char *MASK;
bertgereels 1:b5c534165dfe 30 const static char *GATEWAY;
bertgereels 1:b5c534165dfe 31
bertgereels 1:b5c534165dfe 32 int slaveId;
bertgereels 1:b5c534165dfe 33
bertgereels 1:b5c534165dfe 34 Temperature *slaveTemp;
bertgereels 1:b5c534165dfe 35 Potentiometer *slavePot;
bertgereels 1:b5c534165dfe 36 LCD *slaveLcd;
bertgereels 1:b5c534165dfe 37 RGB *slaveRgb;
bertgereels 1:b5c534165dfe 38 BuzzerMusic *slaveBuzzerMusic;
bertgereels 1:b5c534165dfe 39
bertgereels 1:b5c534165dfe 40 float temperatureValue;
bertgereels 1:b5c534165dfe 41 float potentiometerValue;
bertgereels 1:b5c534165dfe 42 string response;
bertgereels 0:88d3b9015f7c 43
bertgereels 0:88d3b9015f7c 44 };
bertgereels 0:88d3b9015f7c 45
bertgereels 0:88d3b9015f7c 46 };