BLE Nano Code.Tested with Integrated mDot code

Dependencies:   BLE_API mbed nRF51822

Fork of eco_Labs_ble_Client by Happiest

Revision:
32:bb3b81b06676
Parent:
31:d25111c2fa21
Child:
33:17b8c186eb07
--- a/ble_msg_handler.cpp	Thu Dec 01 14:50:00 2016 +0000
+++ b/ble_msg_handler.cpp	Wed Dec 07 10:05:21 2016 +0000
@@ -70,50 +70,53 @@
  */
 void spi_rx_Data_Callback(uint8_t *rx_data, uint8_t len)
 {    
-    uint8_t tmp_buf[30];     
-    if (rx_data[1] == 0xFF) {  
-        //Dummy packet from mDot to clear buffer.
-    } else if (rx_data[1] == BLE_SOF_CMD) {        
-        switch (rx_data[2]) {
-            case BLE_INIT_CMD:
-                    /* TODO: Get the BLE Device name from rx_data and pass it to
-                     ble_init */
-                    if(init_success ==false)
-                    {
-                        memcpy(tmp_buf, &rx_data[4], rx_data[3]);
-                        //memset(tmp_buf, 'a', 5);                                        
-                        ble_init(tmp_buf,rx_data[3]);
-                        toggle_led();
-                    }
+    uint8_t tmp_buf[30];
+    if(rx_data !=NULL)
+    {         
+        if (rx_data[1] == 0xFF) {  
+            //Dummy packet from mDot to clear buffer.
+        } else if (rx_data[1] == BLE_SOF_CMD) {        
+            switch (rx_data[2]) {
+                case BLE_INIT_CMD:
+                        /* TODO: Get the BLE Device name from rx_data and pass it to
+                         ble_init */
+                        if(init_success ==false)
+                        {
+                            memcpy(tmp_buf, &rx_data[4], rx_data[3]);
+                            //memset(tmp_buf, 'a', 5);                                        
+                            ble_init(tmp_buf,rx_data[3]);
+                            toggle_led();
+                        }
+                        
+                    break;
                     
-                break;
+                case BLE_START_ADV_CMD:
+                        // TODO: As of now Advertising is done from the ble_init
+                    break;
                 
-            case BLE_START_ADV_CMD:
-                    // TODO: As of now Advertising is done from the ble_init
-                break;
-            
-            case BLE_SEND_DATA_CMD:
-                memcpy(tmp_buf, &rx_data[4], rx_data[3]);
-                ble_send_data(tmp_buf,rx_data[3]);
-                break;
-                
-            case BLE_START_OF_FILE:
-                toggle_led();
-                memcpy(tmp_buf, &rx_data[4], rx_data[3]);                
-                ble_send_data(tmp_buf, rx_data[3]);
-                break;
-                
-            case BLE_END_OF_FILE:
-                memcpy(tmp_buf, &rx_data[4], rx_data[3]);
-                ble_send_data(tmp_buf, rx_data[3]);
-                break;
-                
-            default :
-                break;
-                
+                case BLE_SEND_DATA_CMD:
+                    memcpy(tmp_buf, &rx_data[4], rx_data[3]);
+                    ble_send_data(tmp_buf,rx_data[3]);
+                    break;
+                    
+                case BLE_START_OF_FILE:
+    //                toggle_led();
+                    memcpy(tmp_buf, &rx_data[4], rx_data[3]);                
+                    ble_send_data(tmp_buf, rx_data[3]);
+                    break;
+                    
+                case BLE_END_OF_FILE:
+                    memcpy(tmp_buf, &rx_data[4], rx_data[3]);
+                    ble_send_data(tmp_buf, rx_data[3]);
+                    break;
+                    
+                default :
+                    break;
+                    
+            }
+        } else {
+            // Invalid Packet received, ignore as of now
         }
-    } else {
-        // Invalid Packet received, ignore as of now
     }    
 }
 /******************************************************************************/