Versão atual 13-12-2013.
Dependencies: EthernetInterface mbed-rtos mbed
Headers/EventDetector.h@0:65c41a68b49a, 2013-12-13 (annotated)
- Committer:
- rebonatto
- Date:
- Fri Dec 13 11:42:59 2013 +0000
- Revision:
- 0:65c41a68b49a
Versao atual 13-12-2013.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rebonatto | 0:65c41a68b49a | 1 | /* |
rebonatto | 0:65c41a68b49a | 2 | * EventDetector.h |
rebonatto | 0:65c41a68b49a | 3 | * |
rebonatto | 0:65c41a68b49a | 4 | * Created on: |
rebonatto | 0:65c41a68b49a | 5 | * Author: |
rebonatto | 0:65c41a68b49a | 6 | */ |
rebonatto | 0:65c41a68b49a | 7 | |
rebonatto | 0:65c41a68b49a | 8 | #ifndef EVENTDETECTOR_H |
rebonatto | 0:65c41a68b49a | 9 | #define EVENTDETECTOR_H |
rebonatto | 0:65c41a68b49a | 10 | |
rebonatto | 0:65c41a68b49a | 11 | #include <stdlib.h> |
rebonatto | 0:65c41a68b49a | 12 | |
rebonatto | 0:65c41a68b49a | 13 | #include "rtos.h" |
rebonatto | 0:65c41a68b49a | 14 | |
rebonatto | 0:65c41a68b49a | 15 | #include "Settings.h" |
rebonatto | 0:65c41a68b49a | 16 | #include "Capture.h" |
rebonatto | 0:65c41a68b49a | 17 | #include "SignalProcessor.h" |
rebonatto | 0:65c41a68b49a | 18 | |
rebonatto | 0:65c41a68b49a | 19 | class CaptureEvent |
rebonatto | 0:65c41a68b49a | 20 | { |
rebonatto | 0:65c41a68b49a | 21 | char m_RFID[9]; |
rebonatto | 0:65c41a68b49a | 22 | int m_Type; |
rebonatto | 0:65c41a68b49a | 23 | int m_OutletNumber; |
rebonatto | 0:65c41a68b49a | 24 | float m_MeanValue; |
rebonatto | 0:65c41a68b49a | 25 | float m_RMSValue; |
rebonatto | 0:65c41a68b49a | 26 | float m_Gain; |
rebonatto | 0:65c41a68b49a | 27 | int m_Offset; |
rebonatto | 0:65c41a68b49a | 28 | float m_Sin[NUMBER_OF_HARMONICS]; |
rebonatto | 0:65c41a68b49a | 29 | float m_Cos[NUMBER_OF_HARMONICS]; |
rebonatto | 0:65c41a68b49a | 30 | |
rebonatto | 0:65c41a68b49a | 31 | public: |
rebonatto | 0:65c41a68b49a | 32 | |
rebonatto | 0:65c41a68b49a | 33 | CaptureEvent(); |
rebonatto | 0:65c41a68b49a | 34 | |
rebonatto | 0:65c41a68b49a | 35 | void Setup(char* rfid,int type,int outlet,float mv,float rms,float gain, int offset,float* sin, float* cos); |
rebonatto | 0:65c41a68b49a | 36 | |
rebonatto | 0:65c41a68b49a | 37 | char* get_RFID() { return m_RFID; } |
rebonatto | 0:65c41a68b49a | 38 | int get_Type() { return m_Type; } |
rebonatto | 0:65c41a68b49a | 39 | int get_OutletNumber() { return m_OutletNumber; } |
rebonatto | 0:65c41a68b49a | 40 | float get_MeanValue() { return m_MeanValue; } |
rebonatto | 0:65c41a68b49a | 41 | float get_RMSValue() { return m_RMSValue; } |
rebonatto | 0:65c41a68b49a | 42 | float get_Gain() { return m_Gain; } |
rebonatto | 0:65c41a68b49a | 43 | int get_Offset() { return m_Offset; } |
rebonatto | 0:65c41a68b49a | 44 | float get_SineValue(int idx) { return m_Sin[idx]; } |
rebonatto | 0:65c41a68b49a | 45 | float get_CossineValue(int idx) { return m_Cos[idx]; } |
rebonatto | 0:65c41a68b49a | 46 | }; |
rebonatto | 0:65c41a68b49a | 47 | |
rebonatto | 0:65c41a68b49a | 48 | typedef Mail<CaptureEvent,LENGTH_MAIL_BOX> CaptureMailbox; |
rebonatto | 0:65c41a68b49a | 49 | |
rebonatto | 0:65c41a68b49a | 50 | class EventDetector |
rebonatto | 0:65c41a68b49a | 51 | { |
rebonatto | 0:65c41a68b49a | 52 | protected: |
rebonatto | 0:65c41a68b49a | 53 | |
rebonatto | 0:65c41a68b49a | 54 | static CaptureMailbox m_EventMailbox; |
rebonatto | 0:65c41a68b49a | 55 | static const int m_EventLimit; |
rebonatto | 0:65c41a68b49a | 56 | |
rebonatto | 0:65c41a68b49a | 57 | static EventDetector m_Detector[NUMBER_OF_CHANNELS]; |
rebonatto | 0:65c41a68b49a | 58 | |
rebonatto | 0:65c41a68b49a | 59 | bool m_OutletTriggered; |
rebonatto | 0:65c41a68b49a | 60 | int m_EventCounter; |
rebonatto | 0:65c41a68b49a | 61 | int m_Channel; |
rebonatto | 0:65c41a68b49a | 62 | |
rebonatto | 0:65c41a68b49a | 63 | void OnTrigger(float rmsvalue); |
rebonatto | 0:65c41a68b49a | 64 | |
rebonatto | 0:65c41a68b49a | 65 | void SendMessage(int ext,float rmsvalue); |
rebonatto | 0:65c41a68b49a | 66 | |
rebonatto | 0:65c41a68b49a | 67 | int TimeDelay(int t); |
rebonatto | 0:65c41a68b49a | 68 | |
rebonatto | 0:65c41a68b49a | 69 | public: |
rebonatto | 0:65c41a68b49a | 70 | |
rebonatto | 0:65c41a68b49a | 71 | EventDetector(int ch); |
rebonatto | 0:65c41a68b49a | 72 | |
rebonatto | 0:65c41a68b49a | 73 | void ExternalTrigger(); |
rebonatto | 0:65c41a68b49a | 74 | |
rebonatto | 0:65c41a68b49a | 75 | void ProcessEvent(float rmsvalue, int t); |
rebonatto | 0:65c41a68b49a | 76 | |
rebonatto | 0:65c41a68b49a | 77 | void ShowValues(CaptureEvent* e); |
rebonatto | 0:65c41a68b49a | 78 | |
rebonatto | 0:65c41a68b49a | 79 | static CaptureMailbox& GetMailbox() { return m_EventMailbox; } |
rebonatto | 0:65c41a68b49a | 80 | static EventDetector& get_Detector(int ch) { return m_Detector[ch]; } |
rebonatto | 0:65c41a68b49a | 81 | |
rebonatto | 0:65c41a68b49a | 82 | }; |
rebonatto | 0:65c41a68b49a | 83 | |
rebonatto | 0:65c41a68b49a | 84 | #endif |