Versão sem FFT e aquisição por DMA. 256 amostras.

Dependencies:   EthernetInterface NTPClient mbed-rtos mbed

Committer:
rebonatto
Date:
Tue Jan 05 11:45:44 2016 +0000
Revision:
0:e57bc370d339
Vers?o est?vel sem calculo de FFT. Aquisi??o por DMA. Usa 256 amostras.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rebonatto 0:e57bc370d339 1 /*
rebonatto 0:e57bc370d339 2 Projeto teste de Enviar dados coletados sem calcular a FFT.
rebonatto 0:e57bc370d339 3
rebonatto 0:e57bc370d339 4 */
rebonatto 0:e57bc370d339 5
rebonatto 0:e57bc370d339 6 #define MSGWINDOW "Version 2"
rebonatto 0:e57bc370d339 7
rebonatto 0:e57bc370d339 8 #include <stdio.h>
rebonatto 0:e57bc370d339 9
rebonatto 0:e57bc370d339 10 #include "mbed.h"
rebonatto 0:e57bc370d339 11 #include "rtos.h"
rebonatto 0:e57bc370d339 12 #include "cmsis_os.h"
rebonatto 0:e57bc370d339 13 #include "EthernetInterface.h"
rebonatto 0:e57bc370d339 14 #include "Settings.h"
rebonatto 0:e57bc370d339 15 #include "Capture.h"
rebonatto 0:e57bc370d339 16 #include "Http_post.h"
rebonatto 0:e57bc370d339 17 #include "SignalProcessor.h"
rebonatto 0:e57bc370d339 18 #include "EventDetector.h"
rebonatto 0:e57bc370d339 19 #include "limites.h"
rebonatto 0:e57bc370d339 20
rebonatto 0:e57bc370d339 21 #include "TelnetServer.h"
rebonatto 0:e57bc370d339 22
rebonatto 0:e57bc370d339 23 #include "tftpsrv.h"
rebonatto 0:e57bc370d339 24 #include "ntpc.h"
rebonatto 0:e57bc370d339 25
rebonatto 0:e57bc370d339 26 #include "PmedLog.h"
rebonatto 0:e57bc370d339 27
rebonatto 0:e57bc370d339 28 #include "NTPClient.h"
rebonatto 0:e57bc370d339 29
rebonatto 0:e57bc370d339 30 #include "whatchdog.h"
rebonatto 0:e57bc370d339 31
rebonatto 0:e57bc370d339 32 EthernetInterface eth;
rebonatto 0:e57bc370d339 33 Watchdog wdt;
rebonatto 0:e57bc370d339 34
rebonatto 0:e57bc370d339 35 void InitializeEthernetLink()
rebonatto 0:e57bc370d339 36 {
rebonatto 0:e57bc370d339 37 if(Settings::get_Dhcp())
rebonatto 0:e57bc370d339 38 //EthernetIf::Initialize(); //Use DHCP
rebonatto 0:e57bc370d339 39 eth.init(); //Use DHCP
rebonatto 0:e57bc370d339 40 else
rebonatto 0:e57bc370d339 41 //EthernetIf::Initialize(Settings::get_IpAddress(),Settings::get_Netmask(),Settings::get_Gateway());
rebonatto 0:e57bc370d339 42 eth.init(Settings::get_IpAddress(),Settings::get_Netmask(),Settings::get_Gateway());
rebonatto 0:e57bc370d339 43
rebonatto 0:e57bc370d339 44 //EthernetIf::Connect();
rebonatto 0:e57bc370d339 45 eth.connect();
rebonatto 0:e57bc370d339 46 //printf("IP Address is %s\n", EthernetIf::get_IpAddress());
rebonatto 0:e57bc370d339 47 printf("IP Address is NEW %s\n", eth.getIPAddress());
rebonatto 0:e57bc370d339 48 }
rebonatto 0:e57bc370d339 49
rebonatto 0:e57bc370d339 50 int main() {
rebonatto 0:e57bc370d339 51 //DigitalOut myled3(LED3); //The pushbutton or power on caused a reset
rebonatto 0:e57bc370d339 52 //DigitalOut myled4(LED4); //The watchdog timer caused a reset
rebonatto 0:e57bc370d339 53
rebonatto 0:e57bc370d339 54 if ((LPC_WDT->WDMOD >> 2) & 1){
rebonatto 0:e57bc370d339 55 //myled4 = 1;
rebonatto 0:e57bc370d339 56 PmedLog::WriteEntry(PMEDLOG_INITIALIZINGWDT);
rebonatto 0:e57bc370d339 57 }
rebonatto 0:e57bc370d339 58 else{
rebonatto 0:e57bc370d339 59 //myled3 = 1;
rebonatto 0:e57bc370d339 60 PmedLog::WriteEntry(PMEDLOG_INITIALIZING);
rebonatto 0:e57bc370d339 61 }
rebonatto 0:e57bc370d339 62
rebonatto 0:e57bc370d339 63 printf("\r\n %s \r\n", MSGWINDOW);
rebonatto 0:e57bc370d339 64 FILE *f;
rebonatto 0:e57bc370d339 65
rebonatto 0:e57bc370d339 66 Settings::ReadFile();
rebonatto 0:e57bc370d339 67
rebonatto 0:e57bc370d339 68 InitializeEthernetLink();
rebonatto 0:e57bc370d339 69 printf("Inicializou link Ethernet\n");
rebonatto 0:e57bc370d339 70
rebonatto 0:e57bc370d339 71 //Start HTTP POST service
rebonatto 0:e57bc370d339 72 Thread http_post(HttpPost::HttpPost_Thread);
rebonatto 0:e57bc370d339 73
rebonatto 0:e57bc370d339 74 //Start Telnet Service
rebonatto 0:e57bc370d339 75 //Thread telnetserver(TelnetServer::TelnetServer_Thread);
rebonatto 0:e57bc370d339 76
rebonatto 0:e57bc370d339 77 //Start TFTP Service
rebonatto 0:e57bc370d339 78 //Thread tftpsrv(tftpsrv::tftpsrv_Thread);
rebonatto 0:e57bc370d339 79
rebonatto 0:e57bc370d339 80 //Start NTP Client for refresh time
rebonatto 0:e57bc370d339 81 //Thread ntpc(ntpc::ntpc_Thread);
rebonatto 0:e57bc370d339 82 time_t tempo = time(NULL);
rebonatto 0:e57bc370d339 83 if ((tempo+60) < 1420077600) set_time(1420077600);
rebonatto 0:e57bc370d339 84
rebonatto 0:e57bc370d339 85 // ntpClient.setTime("192.168.103.101");
rebonatto 0:e57bc370d339 86
rebonatto 0:e57bc370d339 87 DisplayRAMBanks();
rebonatto 0:e57bc370d339 88
rebonatto 0:e57bc370d339 89 printf(PMEDLOG_INITIALIZINGWDT);
rebonatto 0:e57bc370d339 90 printf("\n\n");
rebonatto 0:e57bc370d339 91
rebonatto 0:e57bc370d339 92
rebonatto 0:e57bc370d339 93 PmedLog::WriteEntry(PMEDLOG_STARTED);
rebonatto 0:e57bc370d339 94
rebonatto 0:e57bc370d339 95 /* start test WahtchDog */
rebonatto 0:e57bc370d339 96 DigitalOut led1(LED1);
rebonatto 0:e57bc370d339 97 int n = 0;
rebonatto 0:e57bc370d339 98 //int tatual, tnovo;
rebonatto 0:e57bc370d339 99 float rms[NUMBER_OF_CHANNELS], mv2[NUMBER_OF_CHANNELS];
rebonatto 0:e57bc370d339 100 int under[NUMBER_OF_CHANNELS], over[NUMBER_OF_CHANNELS];
rebonatto 0:e57bc370d339 101
rebonatto 0:e57bc370d339 102 wdt.kick(10.0);
rebonatto 0:e57bc370d339 103
rebonatto 0:e57bc370d339 104 Capture::Initialize();
rebonatto 0:e57bc370d339 105
rebonatto 0:e57bc370d339 106 while(1)
rebonatto 0:e57bc370d339 107 {
rebonatto 0:e57bc370d339 108 Capture::Wait();
rebonatto 0:e57bc370d339 109
rebonatto 0:e57bc370d339 110 // Calcula o RMS dos 6 canais
rebonatto 0:e57bc370d339 111 SignalProcessor::CalculateRMSBulk(rms, mv2, under, over);
rebonatto 0:e57bc370d339 112
rebonatto 0:e57bc370d339 113 for(int i=0;i<6;i++){
rebonatto 0:e57bc370d339 114 EventDetector::get_Detector(i).ProcessEvent(rms[i], mv2[i], under[i], over[i]);
rebonatto 0:e57bc370d339 115 }
rebonatto 0:e57bc370d339 116
rebonatto 0:e57bc370d339 117 n++;
rebonatto 0:e57bc370d339 118 if(n==60)
rebonatto 0:e57bc370d339 119 {
rebonatto 0:e57bc370d339 120 printf("%.2f %.0f %.2f %.0f\t%.2f %.0f %.2f %.0f\t%.2f %.0f %.2f %.0f\n",rms[0], mv2[0],rms[1],mv2[1],rms[2],mv2[2],rms[3],mv2[3],rms[4],mv2[4],rms[5],mv2[5]);
rebonatto 0:e57bc370d339 121 led1 = !led1;
rebonatto 0:e57bc370d339 122 n=0;
rebonatto 0:e57bc370d339 123
rebonatto 0:e57bc370d339 124 PmedLog::Mark();
rebonatto 0:e57bc370d339 125 }
rebonatto 0:e57bc370d339 126
rebonatto 0:e57bc370d339 127 // End of main loop so "kick" to reset watchdog timer and avoid a reset
rebonatto 0:e57bc370d339 128 wdt.kick();
rebonatto 0:e57bc370d339 129 }
rebonatto 0:e57bc370d339 130
rebonatto 0:e57bc370d339 131 while(1){//never reaches here
rebonatto 0:e57bc370d339 132 PmedLog::WriteEntry(PMEDLOG_WRONGCODE);
rebonatto 0:e57bc370d339 133 printf("Reset\n");
rebonatto 0:e57bc370d339 134 f = fopen(FILENAMERESET, "a");
rebonatto 0:e57bc370d339 135 if (f == NULL)
rebonatto 0:e57bc370d339 136 f = fopen(FILENAMERESET, "w");
rebonatto 0:e57bc370d339 137 fprintf(f, "Laco Errado\n");
rebonatto 0:e57bc370d339 138 fclose(f);
rebonatto 0:e57bc370d339 139 Thread::yield();
rebonatto 0:e57bc370d339 140 }
rebonatto 0:e57bc370d339 141 }
rebonatto 0:e57bc370d339 142