Versão atual 13-12-2013.

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
rebonatto
Date:
Fri Dec 13 11:45:06 2013 +0000
Revision:
1:238ac24e46dd
Parent:
0:65c41a68b49a
Atual 13-12-2013.

Who changed what in which revision?

UserRevisionLine numberNew 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