Ethernet+BLE prototype

Dependencies:   mbed EthernetInterface mbed-rtos

Revision:
4:78e96198c879
Parent:
3:d9445b9e7163
Child:
5:9fffeb949e5a
--- a/main.cpp	Thu Mar 27 10:17:11 2014 +0000
+++ b/main.cpp	Fri Mar 28 01:10:32 2014 +0000
@@ -2,71 +2,88 @@
 #include "config.h"
 #include "log.h"
 #include "HttpSend.h"
-#include "rtos.h"
+#include "cmsis_os.h"
 
-Serial pc(USBTX, USBRX);
 Serial bleModule(p9,p10);
 
-osThreadId m_jm1_receice_thread;
+osThreadId m_jm1_receive_thread;
+
+
 HttpSend m_httpsend;
 
-void jm1_receice_thread (void const *argument) {
-    INFO_LOG ("jm1_receice_thread start\n");
+void jm1_receive_thread (void const *argument) {
+    INFO_LOG ("jm1_receive_thread start\n");
     while (true) {
-        message_t *message = m_httpsend.getMessageBuffer();
-        memset(message->data,0,SENDBUFFER_SIZE);
         if(bleModule.readable()){
+            message_t *message = m_httpsend.getMessageBuffer();
+            memset(message->data,0,SENDBUFFER_SIZE);
+//            INFO_LOG("(message=0x%08X)\n",message);
             if(NULL!=bleModule.gets(message->data, SENDBUFFER_SIZE)){
-               message->size = strlen(message->data);
-                pc.printf("(size=%d):%s",message->size,message->data);
+                message->size = strlen(message->data);
                 if(message->size!=0){
+//                    INFO_LOG("(size=%d):%s",message->size,message->data);
                     m_httpsend.send(message);
                 }
             }
         }
     }
-    // unreachable INFO_LOG ("jm1_receice_thread end\n");
+    // unreachable INFO_LOG ("jm1_receive_thread end\n");
 }
 
 
 void callback() {
-//    pc.printf ("callback\n");
-    message_t *message = m_httpsend.getMessageBuffer();
-    memset(message->data,0,SENDBUFFER_SIZE);
+    INFO_LOG ("callback\n");
     if(bleModule.readable()){
+        message_t *message = m_httpsend.getMessageBuffer();
+        memset(message->data,0,SENDBUFFER_SIZE);
+//        INFO_LOG("(message=0x%08X)\n",message);
         if(NULL!=bleModule.gets(message->data, SENDBUFFER_SIZE)){
-           message->size = strlen(message->data);
-//            pc.printf("(size=%d):%s",message->size,message->data);
+            message->size = strlen(message->data);
             if(message->size!=0){
+//                INFO_LOG("(size=%d):%s",message->size,message->data);
                 m_httpsend.send(message);
             }
         }
     }
-//    pc.printf ("callback\n");
 }
 
-osThreadDef(jm1_receice_thread,  osPriorityNormal, DEFAULT_STACK_SIZE);
+
+//osThreadDef(jm1_receive_thread,  osPriorityRealtime, DEFAULT_STACK_SIZE);
+osThreadDef(jm1_receive_thread,  osPriorityNormal, DEFAULT_STACK_SIZE);
 
 int main() {
-    pc.printf ("BLE GW main start !!!\n");
+    INFO_LOG ("BLE GW main start !!!\n");
 
     /*************************/
     // Initialize
     /*************************/
+    // EthernetInterface
+    EthernetInterface eth;
+    eth.init();
+
     // HttpSend
-    m_httpsend.init();
+    m_httpsend.init(&eth);
+
     // Serial
     bleModule.baud(115200);
     
-//    bleModule.attach(&callback);
-
-    m_jm1_receice_thread = osThreadCreate(osThread(jm1_receice_thread), NULL);
+    if(true){
+        m_jm1_receive_thread = osThreadCreate(osThread(jm1_receive_thread), NULL);
+    //    Thread::wait(3000);
+        INFO_LOG ("init end\n");
+        while(true) {
+            osDelay(osWaitForever);
+            INFO_LOG ("WaitForever stop \n");
+            wait(0.5);
+        }
+    }else{
+        DigitalOut led1(LED1);
 
-    while(true) {
-//        osDelay(osWaitForever);
-//        INFO_LOG ("WaitForever stop \n");
-//        wait(0.5);
+        bleModule.attach(&callback);
+        while(true) {
+            led1 = !led1;
+            wait(0.5);
+        }
     }
-
     // unreachable INFO_LOG ("BLE GW main stop !!!\n"); 
 }