reef monitor

Dependencies:   mbed-rtos EthernetInterface FatFileSystemCpp MCP23S17 SDFileSystem mbed

Fork of HTTPServerHelloWorld by Donatien Garnier

Files at this revision

API Documentation at this revision

Comitter:
wyunreal
Date:
Sat Jan 03 17:50:52 2015 +0000
Parent:
11:9366140ebe5f
Commit message:
draft of file request handler;

Changed in this revision

HardwareDrivers/WatchDogTimer/WatchDogTimer.cpp Show diff for this revision Revisions of this file
HardwareDrivers/WatchDogTimer/WatchDogTimer.h Show diff for this revision Revisions of this file
Services/Network/RestApiServer/HttpServer.cpp Show diff for this revision Revisions of this file
Services/Network/RestApiServer/HttpServer.h Show diff for this revision Revisions of this file
diff -r 9366140ebe5f -r 72e0c404017a HardwareDrivers/WatchDogTimer/WatchDogTimer.cpp
--- a/HardwareDrivers/WatchDogTimer/WatchDogTimer.cpp	Fri Jan 02 22:44:42 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#include "WatchDogTimer.h"
-
-int WatchDogTimer::systemResetReason() {
-    return ((LPC_WDT->WDMOD >> 2) & 1) ? SYSTEM_RESET_WATCH_DOG : SYSTEM_RESET_NORMAL;
-}
-
-WatchDogTimer::WatchDogTimer(float seconds) {
-    LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
-    uint32_t clk = SystemCoreClock / 16;    // WD has a fixed /4 prescaler, PCLK default is /4 
-    LPC_WDT->WDTC = seconds * (float)clk;   // Load WD Timer Constant with value determined by float s
-    LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset        
-    feed();
-}
-
-void WatchDogTimer::feed() {
-    LPC_WDT->WDFEED = 0xAA;
-    LPC_WDT->WDFEED = 0x55;
-}
\ No newline at end of file
diff -r 9366140ebe5f -r 72e0c404017a HardwareDrivers/WatchDogTimer/WatchDogTimer.h
--- a/HardwareDrivers/WatchDogTimer/WatchDogTimer.h	Fri Jan 02 22:44:42 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#ifndef WATCH_DOG_TIMER_H
-#define WATCH_DOG_TIMER_H
-
-#include "mbed.h"
-
-#define SYSTEM_RESET_NORMAL 1
-#define SYSTEM_RESET_WATCH_DOG 2
-
-class WatchDogTimer {
-public: 
-    WatchDogTimer(float seconds);
-    void feed();
-    static int systemResetReason();
-};
-
-#endif
\ No newline at end of file
diff -r 9366140ebe5f -r 72e0c404017a Services/Network/RestApiServer/HttpServer.cpp
--- a/Services/Network/RestApiServer/HttpServer.cpp	Fri Jan 02 22:44:42 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-#include "HttpServer.h"
-
-HttpServer::HttpServer() {
-    listeningThread = NULL;
-    mainThreadId = osThreadGetId();
-}
-
-HttpServer::~HttpServer() {
-    stop();
-}
-
-void HttpServer::httpServerListeningThread(void const *serverInstance) {
-    bool stopListening = false;
-    osThreadId mainThreadId = ((HttpServer*)serverInstance)->getMainThreadId();
-    while (!stopListening) {
-        
-        
-        handleServerAliveRequests(mainThreadId);
-    }
-}
-
-void HttpServer::handleServerAliveRequests(osThreadId mainThreadId) {
-    osEvent event = Thread::signal_wait(STATUS_CHECK_SIGNAL, STATUS_CHECK_NO_BLOCKING);
-    if ((event.status == osEventSignal) && (event.value.signals & STATUS_CHECK_SIGNAL)) {
-        osSignalSet(mainThreadId, STATUS_CHECK_ACK_SIGNAL);
-    }
-}
-
-bool HttpServer::start() {
-    if (!listeningThread) {
-        slaveThreadStatusCounter = 0;
-        listeningThread = new Thread(&HttpServer::httpServerListeningThread, this);
-    }
-    return listeningThread != NULL && listeningThread->get_state() != Thread::Inactive;
-}
-
-bool HttpServer::stop() {
-    if (listeningThread) {
-        listeningThread->signal_set(CLOSE_SIGNAL);
-        unsigned short int waitingShutdownAttempts = 0;
-        while(waitingShutdownAttempts < WAITING_SHUTDOWN_ATTEMPTS && listeningThread->get_state() != Thread::Inactive) {
-            Thread::wait(SHUTDOWN_TIMEOUT_MILLIS);
-            waitingShutdownAttempts++;
-        }
-        return listeningThread->get_state() == Thread::Inactive;
-    }
-    return true;
-}
-
-bool HttpServer::restart() {
-    if (stop()) {
-        return start();
-    } else {
-        return false;    
-    };
-}
-
-bool HttpServer::isAlive() {
-    if (listeningThread) {
-        listeningThread->signal_set(STATUS_CHECK_SIGNAL);
-        osEvent statusAckEvent = Thread::signal_wait(STATUS_CHECK_ACK_SIGNAL, STATUS_CHECK_TIMEOUT_MILLIS);
-        if((statusAckEvent.status == osEventSignal) && (statusAckEvent.value.signals & STATUS_CHECK_ACK_SIGNAL)) {
-            slaveThreadStatusCounter = 0;
-        } else {
-            slaveThreadStatusCounter++;    
-        }
-        if (slaveThreadStatusCounter >= FAULTY_REPORTS_COUNT) {
-            return false;    
-        }
-    }
-    return true;
-}
\ No newline at end of file
diff -r 9366140ebe5f -r 72e0c404017a Services/Network/RestApiServer/HttpServer.h
--- a/Services/Network/RestApiServer/HttpServer.h	Fri Jan 02 22:44:42 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#ifndef HTTP_SERVER_H
-#define HTTP_SERVER_H
-
-#include "rtos.h"
-
-class HttpServer {
-    private:
-        static const unsigned short int FAULTY_REPORTS_COUNT = 10;
-        static const unsigned short int STATUS_CHECK_TIMEOUT_MILLIS = 50;
-        static const unsigned short int STATUS_CHECK_NO_BLOCKING = 0;
-        static const unsigned short int WAITING_SHUTDOWN_ATTEMPTS = 10;
-        static const unsigned short int SHUTDOWN_TIMEOUT_MILLIS = 50;
-
-        enum HttpServerSignals{
-            // rtos signals are flags, assign values with care
-            STATUS_CHECK_SIGNAL = 1,
-            STATUS_CHECK_ACK_SIGNAL = 2,
-            CLOSE_SIGNAL = 4,
-        };
-    
-        short unsigned int slaveThreadStatusCounter;
-        osThreadId mainThreadId;
-        Thread* listeningThread;
-        
-        osThreadId getMainThreadId() {return mainThreadId;}
-        static void httpServerListeningThread(void const *serverInstance);
-        static void handleServerAliveRequests(osThreadId mainThreadId);
-        
-    public:
-        HttpServer();
-        ~HttpServer();
-        
-        bool start();
-        bool stop();
-        bool restart();
-        
-        bool isAlive();
-};
-
-#endif
\ No newline at end of file