Versão do protegemed que calcula o tempo em ms da fuga, calcula o numero de onverflow (valores muito baixo) e underflow (valores muito altos). Além disso, calcula um valor médio a partir dos valores capturados e não apenas pela fft.
Dependencies: EthernetInterface mbed-rtos mbed
Headers/EventDetector.h@2:86c3cb25577b, 2014-07-21 (annotated)
- Committer:
- rebonatto
- Date:
- Mon Jul 21 00:58:34 2014 +0000
- Revision:
- 2:86c3cb25577b
- Parent:
- 0:c64e1194230b
Problemas com objeto para aquisi??o da rfid (serial)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rebonatto | 0:c64e1194230b | 1 | /* |
rebonatto | 0:c64e1194230b | 2 | * EventDetector.h |
rebonatto | 0:c64e1194230b | 3 | * |
rebonatto | 0:c64e1194230b | 4 | * Created on: |
rebonatto | 0:c64e1194230b | 5 | * Author: |
rebonatto | 0:c64e1194230b | 6 | */ |
rebonatto | 0:c64e1194230b | 7 | |
rebonatto | 0:c64e1194230b | 8 | #ifndef EVENTDETECTOR_H |
rebonatto | 0:c64e1194230b | 9 | #define EVENTDETECTOR_H |
rebonatto | 0:c64e1194230b | 10 | |
rebonatto | 0:c64e1194230b | 11 | #include <stdlib.h> |
rebonatto | 0:c64e1194230b | 12 | |
rebonatto | 0:c64e1194230b | 13 | #include "rtos.h" |
rebonatto | 0:c64e1194230b | 14 | |
rebonatto | 0:c64e1194230b | 15 | #include "Settings.h" |
rebonatto | 0:c64e1194230b | 16 | #include "Capture.h" |
rebonatto | 0:c64e1194230b | 17 | #include "SignalProcessor.h" |
rebonatto | 0:c64e1194230b | 18 | |
rebonatto | 0:c64e1194230b | 19 | class CaptureEvent |
rebonatto | 0:c64e1194230b | 20 | { |
rebonatto | 0:c64e1194230b | 21 | char m_RFID[9]; |
rebonatto | 0:c64e1194230b | 22 | int m_Type; |
rebonatto | 0:c64e1194230b | 23 | int m_OutletNumber; |
rebonatto | 0:c64e1194230b | 24 | float m_MeanValue; |
rebonatto | 0:c64e1194230b | 25 | float m_MV2; |
rebonatto | 0:c64e1194230b | 26 | float m_RMSValue; |
rebonatto | 0:c64e1194230b | 27 | int m_Under; |
rebonatto | 0:c64e1194230b | 28 | int m_Over; |
rebonatto | 0:c64e1194230b | 29 | float m_Gain; |
rebonatto | 0:c64e1194230b | 30 | int m_Offset; |
rebonatto | 0:c64e1194230b | 31 | int m_Duration; |
rebonatto | 0:c64e1194230b | 32 | float m_Sin[NUMBER_OF_HARMONICS]; |
rebonatto | 0:c64e1194230b | 33 | float m_Cos[NUMBER_OF_HARMONICS]; |
rebonatto | 0:c64e1194230b | 34 | |
rebonatto | 0:c64e1194230b | 35 | public: |
rebonatto | 0:c64e1194230b | 36 | |
rebonatto | 0:c64e1194230b | 37 | CaptureEvent(); |
rebonatto | 0:c64e1194230b | 38 | |
rebonatto | 0:c64e1194230b | 39 | //void Setup(char* rfid,int type,int outlet,float mv,float rms,float gain, int offset,float* sin, float* cos); |
rebonatto | 0:c64e1194230b | 40 | void Setup(char* rfid, int type, int outlet, float mv, float mv2, float rms, int under, int over, float gain, int offset, int duration, float* sin, float* cos); |
rebonatto | 0:c64e1194230b | 41 | |
rebonatto | 0:c64e1194230b | 42 | char* get_RFID() { return m_RFID; } |
rebonatto | 0:c64e1194230b | 43 | int get_Type() { return m_Type; } |
rebonatto | 0:c64e1194230b | 44 | int get_OutletNumber() { return m_OutletNumber; } |
rebonatto | 0:c64e1194230b | 45 | float get_MeanValue() { return m_MeanValue; } |
rebonatto | 0:c64e1194230b | 46 | float get_MV2() { return m_MV2; } |
rebonatto | 0:c64e1194230b | 47 | float get_RMSValue() { return m_RMSValue; } |
rebonatto | 0:c64e1194230b | 48 | int get_Under() { return m_Under; } |
rebonatto | 0:c64e1194230b | 49 | int get_Over() { return m_Over; } |
rebonatto | 0:c64e1194230b | 50 | float get_Gain() { return m_Gain; } |
rebonatto | 0:c64e1194230b | 51 | int get_Offset() { return m_Offset; } |
rebonatto | 0:c64e1194230b | 52 | int get_Duration() { return m_Duration; } |
rebonatto | 0:c64e1194230b | 53 | float get_SineValue(int idx) { return m_Sin[idx]; } |
rebonatto | 0:c64e1194230b | 54 | float get_CossineValue(int idx) { return m_Cos[idx]; } |
rebonatto | 0:c64e1194230b | 55 | }; |
rebonatto | 0:c64e1194230b | 56 | |
rebonatto | 0:c64e1194230b | 57 | typedef Mail<CaptureEvent,LENGTH_MAIL_BOX> CaptureMailbox; |
rebonatto | 0:c64e1194230b | 58 | |
rebonatto | 0:c64e1194230b | 59 | class EventDetector |
rebonatto | 0:c64e1194230b | 60 | { |
rebonatto | 0:c64e1194230b | 61 | protected: |
rebonatto | 0:c64e1194230b | 62 | |
rebonatto | 0:c64e1194230b | 63 | static CaptureMailbox m_EventMailbox; |
rebonatto | 0:c64e1194230b | 64 | static const int m_EventLimit; |
rebonatto | 0:c64e1194230b | 65 | |
rebonatto | 0:c64e1194230b | 66 | static EventDetector m_Detector[NUMBER_OF_CHANNELS]; |
rebonatto | 0:c64e1194230b | 67 | |
rebonatto | 0:c64e1194230b | 68 | bool m_OutletTriggered; |
rebonatto | 0:c64e1194230b | 69 | int m_EventCounter; |
rebonatto | 0:c64e1194230b | 70 | int m_Channel; |
rebonatto | 0:c64e1194230b | 71 | Timer m_tempo; |
rebonatto | 0:c64e1194230b | 72 | |
rebonatto | 0:c64e1194230b | 73 | //void OnTrigger(float rmsvalue); |
rebonatto | 0:c64e1194230b | 74 | void OnTrigger(float rmsvalue, float mv2, int under, int over, int duration); |
rebonatto | 0:c64e1194230b | 75 | |
rebonatto | 0:c64e1194230b | 76 | //void SendMessage(int ext,float rmsvalue); |
rebonatto | 0:c64e1194230b | 77 | void SendMessage(int ext,float rmsvalue, float mv2, int under, int over, int duration); |
rebonatto | 0:c64e1194230b | 78 | |
rebonatto | 0:c64e1194230b | 79 | int TimeDelay(int t); |
rebonatto | 0:c64e1194230b | 80 | |
rebonatto | 0:c64e1194230b | 81 | public: |
rebonatto | 0:c64e1194230b | 82 | |
rebonatto | 0:c64e1194230b | 83 | EventDetector(int ch); |
rebonatto | 0:c64e1194230b | 84 | |
rebonatto | 0:c64e1194230b | 85 | void ExternalTrigger(); |
rebonatto | 0:c64e1194230b | 86 | |
rebonatto | 0:c64e1194230b | 87 | //void ProcessEvent(float rmsvalue, int t); |
rebonatto | 0:c64e1194230b | 88 | void ProcessEvent(float rmsvalue, float mv2, int under, int over); |
rebonatto | 0:c64e1194230b | 89 | |
rebonatto | 0:c64e1194230b | 90 | void ShowValues(CaptureEvent* e); |
rebonatto | 0:c64e1194230b | 91 | |
rebonatto | 0:c64e1194230b | 92 | static CaptureMailbox& GetMailbox() { return m_EventMailbox; } |
rebonatto | 0:c64e1194230b | 93 | static EventDetector& get_Detector(int ch) { return m_Detector[ch]; } |
rebonatto | 0:c64e1194230b | 94 | |
rebonatto | 0:c64e1194230b | 95 | }; |
rebonatto | 0:c64e1194230b | 96 | |
rebonatto | 0:c64e1194230b | 97 | #endif |