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@1:b5c534165dfe, 2018-03-14 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |