Serial communication protocol generic implementation
Dependents: ClassFRDM ClassLPC
DataComm.h@2:ba93026839a9, 2015-03-19 (annotated)
- Committer:
- askksa12543
- Date:
- Thu Mar 19 12:02:52 2015 +0000
- Revision:
- 2:ba93026839a9
- Parent:
- 1:9cfb17f74dcd
initial receive test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
askksa12543 | 0:60c4436f7667 | 1 | //data comm functions |
askksa12543 | 0:60c4436f7667 | 2 | //serial communication protocol |
askksa12543 | 0:60c4436f7667 | 3 | |
askksa12543 | 0:60c4436f7667 | 4 | #ifndef DATACOMM_H |
askksa12543 | 0:60c4436f7667 | 5 | #define DATACOMM_H |
askksa12543 | 0:60c4436f7667 | 6 | |
askksa12543 | 0:60c4436f7667 | 7 | #define PREAMBLE 0x7E |
askksa12543 | 1:9cfb17f74dcd | 8 | #define POSTAMBLE 0x7F |
askksa12543 | 1:9cfb17f74dcd | 9 | #define MAX 100 |
askksa12543 | 0:60c4436f7667 | 10 | |
askksa12543 | 0:60c4436f7667 | 11 | #include "mbed.h" |
askksa12543 | 0:60c4436f7667 | 12 | #include "platform.h" |
askksa12543 | 0:60c4436f7667 | 13 | #include "gpio_api.h" |
askksa12543 | 0:60c4436f7667 | 14 | |
askksa12543 | 0:60c4436f7667 | 15 | class DataComm { |
askksa12543 | 0:60c4436f7667 | 16 | |
askksa12543 | 0:60c4436f7667 | 17 | public: |
askksa12543 | 1:9cfb17f74dcd | 18 | //initialize signal input/output pins |
askksa12543 | 0:60c4436f7667 | 19 | void setClockOut(PinName pin); |
askksa12543 | 0:60c4436f7667 | 20 | void setClockIn(PinName pin); |
askksa12543 | 0:60c4436f7667 | 21 | void setSerialOut(PinName pin); |
askksa12543 | 1:9cfb17f74dcd | 22 | void setSerialIn(PinName pin); |
askksa12543 | 1:9cfb17f74dcd | 23 | //listen for incoming preamble |
askksa12543 | 0:60c4436f7667 | 24 | void listen(); |
askksa12543 | 1:9cfb17f74dcd | 25 | //set clock speed |
askksa12543 | 0:60c4436f7667 | 26 | void setClock(int clock); |
askksa12543 | 1:9cfb17f74dcd | 27 | //send preamble |
askksa12543 | 0:60c4436f7667 | 28 | void initiate_connection(); |
askksa12543 | 1:9cfb17f74dcd | 29 | void send_data(char data[], int size); |
askksa12543 | 0:60c4436f7667 | 30 | char* receive_data(); |
askksa12543 | 1:9cfb17f74dcd | 31 | //send postamble |
askksa12543 | 1:9cfb17f74dcd | 32 | void close_connection(); |
askksa12543 | 0:60c4436f7667 | 33 | |
askksa12543 | 0:60c4436f7667 | 34 | |
askksa12543 | 0:60c4436f7667 | 35 | |
askksa12543 | 0:60c4436f7667 | 36 | protected: |
askksa12543 | 1:9cfb17f74dcd | 37 | //gpio input/output pins |
askksa12543 | 0:60c4436f7667 | 38 | gpio_t clock_out; |
askksa12543 | 0:60c4436f7667 | 39 | gpio_t clock_in; |
askksa12543 | 0:60c4436f7667 | 40 | gpio_t serial_out; |
askksa12543 | 0:60c4436f7667 | 41 | gpio_t serial_in; |
askksa12543 | 1:9cfb17f74dcd | 42 | //clock speed and skew |
askksa12543 | 0:60c4436f7667 | 43 | int clock_time; |
askksa12543 | 0:60c4436f7667 | 44 | int skew_time; |
askksa12543 | 1:9cfb17f74dcd | 45 | //timer for handling clock and skew |
askksa12543 | 0:60c4436f7667 | 46 | Timer t; |
askksa12543 | 0:60c4436f7667 | 47 | }; |
askksa12543 | 0:60c4436f7667 | 48 | |
askksa12543 | 0:60c4436f7667 | 49 | #endif |