Anderson Cunha
/
monitoramento_ativos
Programa Teste para monitoramento de ativos eletricos
src/classes/Giroscopio.h@5:1b0cd3a1f3c7, 2019-05-14 (annotated)
- Committer:
- AndersonIctus (anderson.ictus@gmail.com)
- Date:
- Tue May 14 22:34:36 2019 -0300
- Revision:
- 5:1b0cd3a1f3c7
- Parent:
- 3:213ab6bbf852
* Incluindo eventos ao Giroscopio
(Talvez um Girocospio Observer seria legal aqui !!)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndersonIctus | 3:213ab6bbf852 | 1 | #include "Logger.h" |
AndersonIctus | 3:213ab6bbf852 | 2 | |
AndersonIctus | 3:213ab6bbf852 | 3 | class Giroscopio { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 4 | public: |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 5 | Giroscopio() { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 6 | instance = NULL; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 7 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 8 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 9 | ~Giroscopio() { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 10 | instance = NULL; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 11 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 12 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 13 | static void setListener(Giroscopio* newListener) { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 14 | instance = newListener; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 15 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 16 | |
AndersonIctus | 3:213ab6bbf852 | 17 | /// Fica ouvindo se existe movimentação, Se existir ele executa a função de CALL BACK |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 18 | static void ouvirMovimentacao() { // IRQ não pode haver LOG !! |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 19 | if(instance != NULL) { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 20 | instance->_movimentacoes.call( &_doMovimentsActions ); //Executar fora do IRQ |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 21 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 22 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 23 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 24 | void setLog(Logger * l) { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 25 | _l = l; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 26 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 27 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 28 | void setCallBackMovimentos( void (*fnCallBack)() ){ |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 29 | _fnCallBack = fnCallBack; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 30 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 31 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 32 | EventQueue* listMovimentacoes() { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 33 | return &_movimentacoes; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 34 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 35 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 36 | private: |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 37 | Logger* _l; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 38 | EventQueue _movimentacoes; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 39 | void (*_fnCallBack)(); |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 40 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 41 | static Giroscopio* instance ; |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 42 | static void _doMovimentsActions() { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 43 | Giroscopio::instance->doMovimentsActions(); |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 44 | } |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 45 | |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 46 | void doMovimentsActions() { |
AndersonIctus | 3:213ab6bbf852 | 47 | // 1 - Faz um TIME-OUT para mostrar que houve alguma movimentação !! |
AndersonIctus | 3:213ab6bbf852 | 48 | _l->log("Verificando a movimentacao ..."); |
AndersonIctus | 3:213ab6bbf852 | 49 | _l->log("Esperando o call back ..."); |
AndersonIctus | 3:213ab6bbf852 | 50 | wait(0.5); |
AndersonIctus | 3:213ab6bbf852 | 51 | |
AndersonIctus | 3:213ab6bbf852 | 52 | // 2 - quando há a movimentação, então chama o call back !! |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 53 | if(_fnCallBack != NULL) { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 54 | _fnCallBack(); |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 55 | _l->log("Call back lancado !!"); |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 56 | } else { |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 57 | _l->log("Nenhum call back configurado !!"); |
AndersonIctus (anderson.ictus@gmail.com) | 5:1b0cd3a1f3c7 | 58 | } |
AndersonIctus | 3:213ab6bbf852 | 59 | } |
AndersonIctus | 3:213ab6bbf852 | 60 | } |
AndersonIctus | 3:213ab6bbf852 | 61 | ; |