Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Revision:
3:8ea4db957749
Parent:
2:da28f21b72a1
Child:
5:5e77a1db4d45
diff -r da28f21b72a1 -r 8ea4db957749 src/ConfigurationHandler/ConfigurationHandler.cpp
--- a/src/ConfigurationHandler/ConfigurationHandler.cpp	Thu Sep 01 20:32:42 2016 +0000
+++ b/src/ConfigurationHandler/ConfigurationHandler.cpp	Tue Sep 06 17:51:37 2016 +0000
@@ -4,331 +4,15 @@
  * Desciption:          source for the ICE Configuration Handler
  *
  *****************************************************************************/
-#include <stdio.h>
+#include "ConfigurationHandler.h"
 #include "global.h"
-#include "rtos.h"
-#include "ConfigurationHandler.h"
-#include <map>
-#include <string>
-
-using namespace std;
-
-extern osThreadId mainThreadId;
-
-// local functions
-static void     loadPersistentControls( void );
-static void     createHandler ( const Message_t * );
-static void     modifyHandler ( const Message_t * );
-static void     destroyHandler( const Message_t * );
-static void     displayThreadTable( void );
 
-// control spawners
-static void     spawnNewTimerControl( const char *, Tcb_t *);
-static void     spawnNewPIDControl( const char *, Tcb_t * );
-static void     spawnNewSetpointControl( const char *, Tcb_t * );
-static void     spawnNewCompositeControl( const char *, Tcb_t *);
-static void     spawnNewManualControl( const char *, Tcb_t * );
-
-// control thread table
-typedef map<string,  Tcb_t> StringTcbMap;
-static StringTcbMap threadTable;
-
-/*****************************************************************************
- * Function:             ConfigurationHandler
- * Description:          entry point for the configuration handler
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
 void ConfigurationHandler(void const *args)
 {
-    printf("\r%s is started...\n", __func__);
-
-    loadPersistentControls();
-
+    //loadPersistentControls()
     osSignalSet(mainThreadId, sig_continue);
-
-    while (true) {
-        // wait for a message from a data handler
-        osEvent evt = MailBox.get();
-        if (evt.status == osEventMail) {
-            Message_t *msg = (Message_t*)evt.value.p;
-            switch (msg->action) {
-                case ACTION_CREATE:
-                    createHandler(msg);
-                    break;
-                case ACTION_MODIFY:
-                    modifyHandler(msg);
-                    break;
-                case ACTION_DESTROY:
-                    destroyHandler(msg);
-                    break;
-                default:
-                    printf("\r\n%s: ERROR\n", __FUNCTION__);
-                    break;
-            }
-
-            // free the allocated memory for the message
-            MailBox.free(msg);
-        }
-    }
-}
-
-/*****************************************************************************
- * Function:             ConfigurationHandler_DisplayThreads
- * Description:          Display list of active threads
- *
- * @param                none
- * @return               none
- *****************************************************************************/
-void ConfigurationHandler_DisplayThreads(void)
-{
-    displayThreadTable();
-}
-/*****************************************************************************
- * Function:             loadPersistentControls
- * Description:          Create a new control thread
- *
- * @param                (IN) msg (parsed message data from the cloud)
- * @return               none
- *****************************************************************************/
-static void loadPersistentControls(void)
-{
-    printf("\r%s no-op\n", __func__);
-}
-
-/*****************************************************************************
- * Function:             createHandler
- * Description:          Create a new control thread
- *
- * @param                (IN) msg (parsed message data from the cloud)
- * @return               none
- *****************************************************************************/
-static void createHandler(const Message_t *msg)
-{
-    printf("\r\n%s: invoked with %s [%u]\n",
-           __func__, msg->controlFile, msg->control);
     
-    Tcb_t   tcb;
-    
-    switch (msg->control) {
-        case CONTROL_TIMER: {
-            spawnNewTimerControl(msg->controlFile, &tcb);
-            threadTable[msg->controlFile] = tcb;
-            break;
-        }
-        case CONTROL_PID: {
-            spawnNewPIDControl(msg->controlFile, &tcb);
-            threadTable[msg->controlFile] = tcb;
-            break;
-        }
-        case CONTROL_SETPOINT: {
-            spawnNewSetpointControl(msg->controlFile, &tcb);
-            threadTable[msg->controlFile] = tcb;
-            break;
-        }
-        case CONTROL_COMPOSITE: {
-            spawnNewCompositeControl(msg->controlFile, &tcb);
-            threadTable[msg->controlFile] = tcb;
-            break;
-        }
-        case CONTROL_MANUAL: {
-            spawnNewManualControl(msg->controlFile, &tcb);
-            threadTable[msg->controlFile] = tcb;
-            break;
-        }
-        default:
-            printf("\r%s: unknown control type (%u)\n", __func__, msg->control);
-            break;
+    while ( true ) {
+        // do stuff
     }
 }
-
-/*****************************************************************************
- * Function:             modifyHandler
- * Description:          modify an existing control thread
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void modifyHandler(const Message_t *msg)
-{
-    // STUBBED
-    printf("\r\n%s: invoked with %s\n", __FUNCTION__, msg->controlFile);
-}
-
-/*****************************************************************************
- * Function:             destroyHandler
- * Description:          detroy an existing control thread
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void destroyHandler(const Message_t *msg)
-{
-    printf("\r%s: invoked with %s\n", __FUNCTION__, msg->controlFile);
-
-    StringTcbMap::iterator pos;
-
-    // find the control thread, terminate it, then delete the entry
-    // from the thread table.
-    pos = threadTable.find(msg->controlFile);
-    if ( pos != threadTable.end() ) {
-        Tcb_t t = (Tcb_t)pos->second;
-        t.thread->terminate();
-        delete t.thread;
-        free(t.args); 
-        // remove the entry from the map
-        threadTable.erase(pos);
-    }
-}
-
-/*****************************************************************************
- * Function:             spawnNewTimerControl
- * Description:          spawn a new timer control 
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void spawnNewTimerControl( const char *controlFile, Tcb_t *tcb)
-{
-    Args_t *args = (Args_t*)malloc(sizeof(Args_t));
-    
-    strncpy(args->controlFile, controlFile, sizeof(args->controlFile));
-    args->reserved = 0;
-    
-    Thread *t = new Thread(TimerControl, (void *)args);
-    
-    tcb->thread = t;
-    tcb->args   = args;
-    return;
-}
-
-/*****************************************************************************
- * Function:             spawnNewPIDControl
- * Description:          spawn a new PID control 
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void spawnNewPIDControl( const char *controlFile, Tcb_t *tcb )
-{
-    Args_t *args = (Args_t *)malloc(sizeof(Args_t));
-    
-    strncpy(args->controlFile, controlFile, sizeof(args->controlFile));
-    args->reserved = 0;
-    
-    Thread *t = new Thread(PIDControl, (void *)args);
-    
-    tcb->thread = t;
-    tcb->args   = args; 
-    return;
-}
-
-/*****************************************************************************
- * Function:             spawnNewSetpointControl
- * Description:          spawn a new setpoint control 
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void spawnNewSetpointControl( const char *controlFile, Tcb_t *tcb )
-{
-    Args_t *args = (Args_t *)malloc(sizeof(Args_t));
-    
-    strncpy(args->controlFile, controlFile, sizeof(args->controlFile));
-    args->reserved = 0;
-    
-    Thread *t = new Thread(SetpointControl, (void *)args);
-    
-    tcb->thread = t;
-    tcb->args   = args;
-    return;
-}
-
-/*****************************************************************************
- * Function:             spawnNewCompositeControl
- * Description:          spawn a new composite control 
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void spawnNewCompositeControl(const char *controlFile, Tcb_t *tcb )
-{
-    Args_t *args = (Args_t *)malloc(sizeof(Args_t));
-    
-    strncpy(args->controlFile, controlFile, sizeof(args->controlFile));
-    args->reserved = 0;
-
-    Thread *t = new Thread(CompositeControl, (void *)args);
-    
-    tcb->thread = t;
-    tcb->args   = args;
-    
-    return;
-}
-
-/*****************************************************************************
- * Function:             spawnNewManualControl
- * Description:          spawn a new manual control 
- *
- * @param                (IN) args (user-defined arguments)
- * @return               none
- *****************************************************************************/
-static void spawnNewManualControl(const char *controlFile, Tcb_t *tcb)
-{
-    Args_t *args = (Args_t *)malloc(sizeof(Args_t));
-    
-    strncpy(args->controlFile, controlFile, sizeof(args->controlFile));
-    args->reserved = 0;
-
-    Thread *t = new Thread(ManualControl, (void *)args);
-    
-    tcb->thread = t;
-    tcb->args   = args;
-    
-    return;
-}
-
-/*****************************************************************************
- * Function:             displayThreadTable
- * Description:          display the elements in the thread table
- *
- * @param                (IN) controlFile: file which to control fome
- * @return               osThreadId
- *****************************************************************************/
-static void displayThreadTable(void)
-{
-    StringTcbMap::iterator pos;
-
-    // this must exactly match the OS thread states in Thread.h
-    const char *stateMapper[] = {   "Inactive",
-                                    "Ready",
-                                    "Running",
-                                    "WaitingDelay",
-                                    "WaitingInterval",
-                                    "WaitingOr",
-                                    "WaitingAnd",
-                                    "WaitingSemaphore",
-                                    "WaitingMailbox",
-                                    "WaitingMutex",
-                                    "Deleted"
-                                };
-
-    if ( threadTable.size() == 0 ) {
-        printf("\r\nThere are currently no active control threads\r\n");
-        return;
-    }
-
-    printf("\rControl Thread Table\n");
-    for ( pos = threadTable.begin(); pos != threadTable.end(); ++pos ) {
-        Tcb_t t = (Tcb_t)pos->second;
-        printf("\r[%32s]->\tpri=%u\tstate=%s\tstack_size=%u\tfree=%u\tused=%u\tmax=%u\r\n",
-               pos->first.c_str(),
-               t.thread->get_priority(),
-               stateMapper[t.thread->get_state()],
-               t.thread->stack_size(),
-               t.thread->free_stack(),
-               t.thread->used_stack(),
-               t.thread->max_stack());
-    }
-}
\ No newline at end of file