Ethernet+BLE prototype

Dependencies:   mbed EthernetInterface mbed-rtos

Committer:
teruo
Date:
Thu Mar 27 10:17:11 2014 +0000
Revision:
3:d9445b9e7163
Parent:
1:50463ff10d56
Child:
4:78e96198c879
ddd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
teruo 0:da21a9dd2303 1 #include "mbed.h"
teruo 0:da21a9dd2303 2 #include "config.h"
teruo 0:da21a9dd2303 3 #include "log.h"
teruo 3:d9445b9e7163 4 #include "HttpSend.h"
teruo 3:d9445b9e7163 5 #include "rtos.h"
teruo 3:d9445b9e7163 6
teruo 3:d9445b9e7163 7 Serial pc(USBTX, USBRX);
teruo 3:d9445b9e7163 8 Serial bleModule(p9,p10);
teruo 3:d9445b9e7163 9
teruo 3:d9445b9e7163 10 osThreadId m_jm1_receice_thread;
teruo 3:d9445b9e7163 11 HttpSend m_httpsend;
teruo 3:d9445b9e7163 12
teruo 3:d9445b9e7163 13 void jm1_receice_thread (void const *argument) {
teruo 3:d9445b9e7163 14 INFO_LOG ("jm1_receice_thread start\n");
teruo 3:d9445b9e7163 15 while (true) {
teruo 3:d9445b9e7163 16 message_t *message = m_httpsend.getMessageBuffer();
teruo 3:d9445b9e7163 17 memset(message->data,0,SENDBUFFER_SIZE);
teruo 3:d9445b9e7163 18 if(bleModule.readable()){
teruo 3:d9445b9e7163 19 if(NULL!=bleModule.gets(message->data, SENDBUFFER_SIZE)){
teruo 3:d9445b9e7163 20 message->size = strlen(message->data);
teruo 3:d9445b9e7163 21 pc.printf("(size=%d):%s",message->size,message->data);
teruo 3:d9445b9e7163 22 if(message->size!=0){
teruo 3:d9445b9e7163 23 m_httpsend.send(message);
teruo 3:d9445b9e7163 24 }
teruo 3:d9445b9e7163 25 }
teruo 3:d9445b9e7163 26 }
teruo 3:d9445b9e7163 27 }
teruo 3:d9445b9e7163 28 // unreachable INFO_LOG ("jm1_receice_thread end\n");
teruo 3:d9445b9e7163 29 }
teruo 3:d9445b9e7163 30
teruo 3:d9445b9e7163 31
teruo 3:d9445b9e7163 32 void callback() {
teruo 3:d9445b9e7163 33 // pc.printf ("callback\n");
teruo 3:d9445b9e7163 34 message_t *message = m_httpsend.getMessageBuffer();
teruo 3:d9445b9e7163 35 memset(message->data,0,SENDBUFFER_SIZE);
teruo 3:d9445b9e7163 36 if(bleModule.readable()){
teruo 3:d9445b9e7163 37 if(NULL!=bleModule.gets(message->data, SENDBUFFER_SIZE)){
teruo 3:d9445b9e7163 38 message->size = strlen(message->data);
teruo 3:d9445b9e7163 39 // pc.printf("(size=%d):%s",message->size,message->data);
teruo 3:d9445b9e7163 40 if(message->size!=0){
teruo 3:d9445b9e7163 41 m_httpsend.send(message);
teruo 3:d9445b9e7163 42 }
teruo 3:d9445b9e7163 43 }
teruo 3:d9445b9e7163 44 }
teruo 3:d9445b9e7163 45 // pc.printf ("callback\n");
teruo 3:d9445b9e7163 46 }
teruo 3:d9445b9e7163 47
teruo 3:d9445b9e7163 48 osThreadDef(jm1_receice_thread, osPriorityNormal, DEFAULT_STACK_SIZE);
teruo 0:da21a9dd2303 49
teruo 0:da21a9dd2303 50 int main() {
teruo 3:d9445b9e7163 51 pc.printf ("BLE GW main start !!!\n");
teruo 0:da21a9dd2303 52
teruo 3:d9445b9e7163 53 /*************************/
teruo 0:da21a9dd2303 54 // Initialize
teruo 3:d9445b9e7163 55 /*************************/
teruo 3:d9445b9e7163 56 // HttpSend
teruo 3:d9445b9e7163 57 m_httpsend.init();
teruo 3:d9445b9e7163 58 // Serial
teruo 3:d9445b9e7163 59 bleModule.baud(115200);
teruo 0:da21a9dd2303 60
teruo 3:d9445b9e7163 61 // bleModule.attach(&callback);
teruo 3:d9445b9e7163 62
teruo 3:d9445b9e7163 63 m_jm1_receice_thread = osThreadCreate(osThread(jm1_receice_thread), NULL);
teruo 3:d9445b9e7163 64
teruo 3:d9445b9e7163 65 while(true) {
teruo 3:d9445b9e7163 66 // osDelay(osWaitForever);
teruo 3:d9445b9e7163 67 // INFO_LOG ("WaitForever stop \n");
teruo 3:d9445b9e7163 68 // wait(0.5);
teruo 0:da21a9dd2303 69 }
teruo 0:da21a9dd2303 70
teruo 3:d9445b9e7163 71 // unreachable INFO_LOG ("BLE GW main stop !!!\n");
teruo 0:da21a9dd2303 72 }