Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
jinu
Date:
Fri Oct 28 18:44:12 2016 +0000
Revision:
284:cc72206ea8e0
Parent:
280:7c1c9274cce6
modified for live data testing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidjhoward 265:0fb72c26ae68 1 /**
davidjhoward 265:0fb72c26ae68 2 ******************************************************************************
davidjhoward 265:0fb72c26ae68 3 * @file ble_uart.cpp
davidjhoward 265:0fb72c26ae68 4 * @author Happiesstminds Firmware Team
davidjhoward 265:0fb72c26ae68 5 * @version v1.0
davidjhoward 265:0fb72c26ae68 6 * @date 4-Oct-2016
davidjhoward 265:0fb72c26ae68 7 * @brief
davidjhoward 265:0fb72c26ae68 8 *
davidjhoward 265:0fb72c26ae68 9 ******************************************************************************
davidjhoward 265:0fb72c26ae68 10 * @attention
davidjhoward 265:0fb72c26ae68 11 *
davidjhoward 265:0fb72c26ae68 12 *
davidjhoward 265:0fb72c26ae68 13 ******************************************************************************
davidjhoward 265:0fb72c26ae68 14 */
davidjhoward 265:0fb72c26ae68 15
davidjhoward 265:0fb72c26ae68 16 /******************************************************************************/
davidjhoward 265:0fb72c26ae68 17 /* Include Files*/
davidjhoward 265:0fb72c26ae68 18 /******************************************************************************/
davidjhoward 265:0fb72c26ae68 19
davidjhoward 265:0fb72c26ae68 20 #include "mbed.h"
davidjhoward 265:0fb72c26ae68 21 #include "ble_msg_handler.h"
davidjhoward 265:0fb72c26ae68 22 #include "ble_spi.h"
davidjhoward 265:0fb72c26ae68 23 #include "ble_main.h"
davidjhoward 265:0fb72c26ae68 24 /******************************************************************************/
davidjhoward 265:0fb72c26ae68 25 /* Defines */
davidjhoward 265:0fb72c26ae68 26 /******************************************************************************/
davidjhoward 279:b60379a9eb1a 27 #define MAX_FILE_SIZE 1000
davidjhoward 265:0fb72c26ae68 28
davidjhoward 265:0fb72c26ae68 29 volatile bool isDeviceConnected;
davidjhoward 265:0fb72c26ae68 30 static ble_data_ready_callback_t data_ready_cb;
davidjhoward 279:b60379a9eb1a 31 uint8_t json_array[MAX_FILE_SIZE];
jinu 284:cc72206ea8e0 32 uint16_t count,file_index,file_size;
davidjhoward 265:0fb72c26ae68 33 /*****************************************************************************
davidjhoward 265:0fb72c26ae68 34 * Function: BLE data receive callback
davidjhoward 265:0fb72c26ae68 35 * Description: Function used to register ble data receive callback
davidjhoward 265:0fb72c26ae68 36 *
davidjhoward 265:0fb72c26ae68 37 * @param ble_data_ready_callback_t
davidjhoward 265:0fb72c26ae68 38 * @return none
davidjhoward 265:0fb72c26ae68 39 *****************************************************************************/
davidjhoward 265:0fb72c26ae68 40 void BleDataRxCbRegister(ble_data_ready_callback_t data_rx_callback)
davidjhoward 265:0fb72c26ae68 41 {
davidjhoward 265:0fb72c26ae68 42 data_ready_cb = data_rx_callback;
davidjhoward 265:0fb72c26ae68 43 }
davidjhoward 265:0fb72c26ae68 44
davidjhoward 265:0fb72c26ae68 45 /*****************************************************************************
davidjhoward 265:0fb72c26ae68 46 * Function: ProcessBleRxEvents()
davidjhoward 265:0fb72c26ae68 47 * Description: Process BLE data
davidjhoward 265:0fb72c26ae68 48 *
davidjhoward 265:0fb72c26ae68 49 * @param spi_rcv_array
davidjhoward 265:0fb72c26ae68 50 * @param length
davidjhoward 265:0fb72c26ae68 51 * @return none
davidjhoward 265:0fb72c26ae68 52 *****************************************************************************/
davidjhoward 265:0fb72c26ae68 53 void ProcessBleRxEvents(uint8_t *spi_rcv_array, uint8_t len)
davidjhoward 265:0fb72c26ae68 54 {
davidjhoward 265:0fb72c26ae68 55 static bool file_receiving_flag = false;
davidjhoward 265:0fb72c26ae68 56
davidjhoward 265:0fb72c26ae68 57 if (spi_rcv_array[0] == BLE_SOF_CMD) {
davidjhoward 265:0fb72c26ae68 58 switch (spi_rcv_array[1])
davidjhoward 265:0fb72c26ae68 59 {
davidjhoward 265:0fb72c26ae68 60 case BLE_CONNECTION_EVNT_CMD:
jmarkel44 275:76285569fb64 61 printf("Mobile device connected...\n\r");
davidjhoward 265:0fb72c26ae68 62 isDeviceConnected =true;
davidjhoward 265:0fb72c26ae68 63 break;
davidjhoward 265:0fb72c26ae68 64
davidjhoward 265:0fb72c26ae68 65 case BLE_REC_DATA_CMD:
davidjhoward 265:0fb72c26ae68 66 /*
davidjhoward 279:b60379a9eb1a 67 when nRF UART send a packet to mDot board, we are incrementing
davidjhoward 279:b60379a9eb1a 68 a counter and till count equals 3, we are appending data to
davidjhoward 279:b60379a9eb1a 69 json Array.when it equals 3,ie 60 bytes(assuming that each time
davidjhoward 279:b60379a9eb1a 70 we are sening 20 bytes), passing this to callback to main
davidjhoward 279:b60379a9eb1a 71 function.
jinu 284:cc72206ea8e0 72 */
jinu 284:cc72206ea8e0 73
jinu 284:cc72206ea8e0 74 // if(file_receiving_flag ==true)
jinu 284:cc72206ea8e0 75 // {
jinu 284:cc72206ea8e0 76 // count++;
davidjhoward 279:b60379a9eb1a 77 /*reassembling packets */
davidjhoward 279:b60379a9eb1a 78 memcpy(&json_array[file_index],&spi_rcv_array[3], (spi_rcv_array[2]-4));
davidjhoward 279:b60379a9eb1a 79
jinu 284:cc72206ea8e0 80 // file_index+= (spi_rcv_array[2]-4); //((spi_rcv_array[2]-4) contains packet length excluding headers
davidjhoward 279:b60379a9eb1a 81
jinu 284:cc72206ea8e0 82 // if(count ==3) //added for testing. Need to change this to if(file_index == file_size)
jinu 284:cc72206ea8e0 83 // {
davidjhoward 279:b60379a9eb1a 84 /*Passing the entire file to callback function*/
jinu 284:cc72206ea8e0 85 // data_ready_cb(json_array, file_index);
jinu 284:cc72206ea8e0 86 data_ready_cb(json_array, (spi_rcv_array[2]-4));
davidjhoward 279:b60379a9eb1a 87 count= 0;
davidjhoward 279:b60379a9eb1a 88 file_index =0;
jinu 284:cc72206ea8e0 89 /* Reset the File Parameters */
jinu 284:cc72206ea8e0 90 file_receiving_flag = false;
jinu 284:cc72206ea8e0 91 // }
jinu 284:cc72206ea8e0 92 // }
davidjhoward 265:0fb72c26ae68 93 break;
davidjhoward 265:0fb72c26ae68 94
davidjhoward 265:0fb72c26ae68 95 case BLE_DISCONNECTION_EVNT_CMD:
jmarkel44 275:76285569fb64 96 printf("Mobile device disconnected...\n\r");
davidjhoward 265:0fb72c26ae68 97 isDeviceConnected =false;
davidjhoward 265:0fb72c26ae68 98 break;
davidjhoward 265:0fb72c26ae68 99
davidjhoward 265:0fb72c26ae68 100 case BLE_START_OF_FILE:
davidjhoward 279:b60379a9eb1a 101
davidjhoward 265:0fb72c26ae68 102 file_receiving_flag = true;
davidjhoward 279:b60379a9eb1a 103
davidjhoward 279:b60379a9eb1a 104 /*extract the json string length from SOF. */
davidjhoward 279:b60379a9eb1a 105
jinu 284:cc72206ea8e0 106 file_size = ((spi_rcv_array[3]<<8)|spi_rcv_array[4]);
davidjhoward 279:b60379a9eb1a 107
davidjhoward 265:0fb72c26ae68 108 break;
davidjhoward 265:0fb72c26ae68 109
davidjhoward 265:0fb72c26ae68 110 case BLE_END_OF_FILE:
davidjhoward 265:0fb72c26ae68 111 /* Reset the File Parameters */
davidjhoward 265:0fb72c26ae68 112 file_receiving_flag = false;
davidjhoward 265:0fb72c26ae68 113 break;
davidjhoward 265:0fb72c26ae68 114
davidjhoward 265:0fb72c26ae68 115 default:
davidjhoward 265:0fb72c26ae68 116 printf("Unknown ID\n\r");
davidjhoward 265:0fb72c26ae68 117 break;
davidjhoward 265:0fb72c26ae68 118 }
davidjhoward 265:0fb72c26ae68 119 } else {
davidjhoward 265:0fb72c26ae68 120 printf("SOF not found\n\r");
davidjhoward 265:0fb72c26ae68 121 }
davidjhoward 265:0fb72c26ae68 122 }
davidjhoward 265:0fb72c26ae68 123
davidjhoward 265:0fb72c26ae68 124 /******************************************************************************/
davidjhoward 265:0fb72c26ae68 125 /* END OF FILE */
jinu 284:cc72206ea8e0 126 /******************************************************************************/