Alexandre Lemay / Mbed 2 deprecated APP4_FunTimes

Dependencies:   mbed mbed-rtos

Committer:
ThierryLeonard
Date:
Tue Oct 24 07:04:28 2017 +0000
Revision:
7:332766fb3114
Parent:
6:ac7c0ccf9b5d
Child:
8:7c56fb1ed8c0
G.G

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ThierryLeonard 6:ac7c0ccf9b5d 1 #ifndef RECEIVER_H
ThierryLeonard 6:ac7c0ccf9b5d 2 #define RECEIVER_H
ThierryLeonard 4:a3c4a43f94f8 3
ThierryLeonard 4:a3c4a43f94f8 4 #include "mbed.h"
ThierryLeonard 4:a3c4a43f94f8 5 #include "rtos.h"
ThierryLeonard 6:ac7c0ccf9b5d 6
ThierryLeonard 4:a3c4a43f94f8 7 #include <vector>
ThierryLeonard 4:a3c4a43f94f8 8
ThierryLeonard 4:a3c4a43f94f8 9
ThierryLeonard 6:ac7c0ccf9b5d 10 #include "defines.h"
ThierryLeonard 7:332766fb3114 11 namespace BitData
ThierryLeonard 6:ac7c0ccf9b5d 12 {
ThierryLeonard 7:332766fb3114 13 enum
ThierryLeonard 7:332766fb3114 14 {
ThierryLeonard 7:332766fb3114 15 zero,
ThierryLeonard 7:332766fb3114 16 one,
ThierryLeonard 7:332766fb3114 17 timeout
ThierryLeonard 7:332766fb3114 18 };
ThierryLeonard 6:ac7c0ccf9b5d 19 };
ThierryLeonard 4:a3c4a43f94f8 20
ThierryLeonard 6:ac7c0ccf9b5d 21 class Receiver
ThierryLeonard 6:ac7c0ccf9b5d 22 {
ThierryLeonard 6:ac7c0ccf9b5d 23 public:
ThierryLeonard 6:ac7c0ccf9b5d 24
ThierryLeonard 6:ac7c0ccf9b5d 25 Receiver();
ThierryLeonard 6:ac7c0ccf9b5d 26 void resetTimer(){time.reset();}
ThierryLeonard 7:332766fb3114 27 char getNext();
ThierryLeonard 6:ac7c0ccf9b5d 28
ThierryLeonard 6:ac7c0ccf9b5d 29
ThierryLeonard 6:ac7c0ccf9b5d 30
ThierryLeonard 6:ac7c0ccf9b5d 31 private:
ThierryLeonard 7:332766fb3114 32 void pushData( char bitData );
ThierryLeonard 7:332766fb3114 33 void edgeFunction(char mode);
ThierryLeonard 6:ac7c0ccf9b5d 34 void rise();
ThierryLeonard 6:ac7c0ccf9b5d 35 void fall();
ThierryLeonard 4:a3c4a43f94f8 36
ThierryLeonard 6:ac7c0ccf9b5d 37 private:
ThierryLeonard 7:332766fb3114 38 static const int size = 8 * 90 *3;
ThierryLeonard 6:ac7c0ccf9b5d 39
ThierryLeonard 6:ac7c0ccf9b5d 40 Timer time;
ThierryLeonard 6:ac7c0ccf9b5d 41 Semaphore dataReady;
ThierryLeonard 7:332766fb3114 42 char data[size];
ThierryLeonard 7:332766fb3114 43
ThierryLeonard 7:332766fb3114 44
ThierryLeonard 7:332766fb3114 45 int lastTime;
ThierryLeonard 7:332766fb3114 46 bool timedOut;
ThierryLeonard 7:332766fb3114 47
ThierryLeonard 6:ac7c0ccf9b5d 48 int currentData;
ThierryLeonard 6:ac7c0ccf9b5d 49 int endData;
ThierryLeonard 6:ac7c0ccf9b5d 50 };
ThierryLeonard 6:ac7c0ccf9b5d 51
ThierryLeonard 6:ac7c0ccf9b5d 52 class ManchesterReceiver
ThierryLeonard 4:a3c4a43f94f8 53 {
ThierryLeonard 4:a3c4a43f94f8 54 public:
ThierryLeonard 6:ac7c0ccf9b5d 55 void getMessages();
ThierryLeonard 4:a3c4a43f94f8 56
ThierryLeonard 7:332766fb3114 57 private:
ThierryLeonard 7:332766fb3114 58 bool getByte(unsigned char &val);
ThierryLeonard 4:a3c4a43f94f8 59
ThierryLeonard 7:332766fb3114 60 bool getMessage( vector<unsigned char> &message, int &crc);
ThierryLeonard 4:a3c4a43f94f8 61
ThierryLeonard 6:ac7c0ccf9b5d 62 private:
ThierryLeonard 6:ac7c0ccf9b5d 63 Receiver r;
ThierryLeonard 4:a3c4a43f94f8 64
ThierryLeonard 6:ac7c0ccf9b5d 65 bool possiblePreamble;
ThierryLeonard 4:a3c4a43f94f8 66 };
ThierryLeonard 4:a3c4a43f94f8 67
ThierryLeonard 4:a3c4a43f94f8 68
ThierryLeonard 4:a3c4a43f94f8 69
ThierryLeonard 4:a3c4a43f94f8 70
ThierryLeonard 6:ac7c0ccf9b5d 71 #endif