Versão sem FFT e aquisição por DMA. 256 amostras.
Dependencies: EthernetInterface NTPClient mbed-rtos mbed
main.cpp@0:e57bc370d339, 2016-01-05 (annotated)
- 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?
User | Revision | Line number | New 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 |