EZR
Dependencies: CRC16 FreescaleIAP FreescaleWatchdog GGSProtocol LM75B PIMA Parameters PersistentCircularQueue SerialNumberV2COM mbed-dev-watchdog_2016_03_04
Fork of smartRamalKW by
cmd/mmTensao.cpp
- Committer:
- tpadovani
- Date:
- 2015-07-24
- Revision:
- 11:8c93e0de58cd
- Parent:
- 10:7a1d1abb5172
File content as of revision 11:8c93e0de58cd:
#include "appCommands.h" #include "sensor.h" #include "memoriaMassa.h" #define MM_TENSAO_FALHA 1 #define MM_TENSAO_FIM 2 extern MemoriaMassa mm; char* respMM[2]; void cmdMMTensao(int lineOrLoad, int block){ int channel; if(lineOrLoad == APP_PARAMETERS.LOAD_CHANNEL){ channel = 0; } else{ channel = 1; } if(block == 0){ free(respMM[channel]); respMM[channel] = mm.getMM(channel); } if(respMM[channel] == NULL){ exec.enviaResposta(RESP_MM_TENSAO, MM_TENSAO_FALHA); } else{ int mmSize = APP_PARAMETERS.MM_SIZE; if(mmSize < 0 || mmSize > 127){ mmSize = 100; // Use default } int blocks = ceil(mmSize / 25.0); if(blocks < 0 || blocks > 6){ blocks = 4; // Use default of 100 entries } if(block >= blocks){ exec.enviaResposta(RESP_MM_TENSAO, MM_TENSAO_FIM); free(respMM[channel]); } else{ int size = 8*25; if(block == blocks-1){ size = 8*(APP_PARAMETERS.MM_SIZE % 25); if(size == 0){ size = 8*25; } } exec.enviaResposta(RESP_MM_TENSAO, respMM[channel]+block*8*25, size); } } }