Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Mon Oct 24 21:06:45 2016 +0000
Revision:
258:150f5a76162d
Child:
259:341f04be325e
Commit BLE module changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidjhoward 258:150f5a76162d 1 /**
davidjhoward 258:150f5a76162d 2 ******************************************************************************
davidjhoward 258:150f5a76162d 3 * @file ble_uart.cpp
davidjhoward 258:150f5a76162d 4 * @author Happiesstminds Firmware Team
davidjhoward 258:150f5a76162d 5 * @version v1.0
davidjhoward 258:150f5a76162d 6 * @date 4-Oct-2016
davidjhoward 258:150f5a76162d 7 * @brief
davidjhoward 258:150f5a76162d 8 *
davidjhoward 258:150f5a76162d 9 ******************************************************************************
davidjhoward 258:150f5a76162d 10 * @attention
davidjhoward 258:150f5a76162d 11 *
davidjhoward 258:150f5a76162d 12 *
davidjhoward 258:150f5a76162d 13 ******************************************************************************
davidjhoward 258:150f5a76162d 14 */
davidjhoward 258:150f5a76162d 15
davidjhoward 258:150f5a76162d 16 /******************************************************************************/
davidjhoward 258:150f5a76162d 17 /* Include Files*/
davidjhoward 258:150f5a76162d 18 /******************************************************************************/
davidjhoward 258:150f5a76162d 19
davidjhoward 258:150f5a76162d 20 #include "mbed.h"
davidjhoward 258:150f5a76162d 21 #include "ble_msg_handler.h"
davidjhoward 258:150f5a76162d 22 #include "ble_spi.h"
davidjhoward 258:150f5a76162d 23
davidjhoward 258:150f5a76162d 24 /******************************************************************************/
davidjhoward 258:150f5a76162d 25 /* Defines */
davidjhoward 258:150f5a76162d 26 /******************************************************************************/
davidjhoward 258:150f5a76162d 27
davidjhoward 258:150f5a76162d 28
davidjhoward 258:150f5a76162d 29 volatile bool isDeviceConnected;
davidjhoward 258:150f5a76162d 30 bool send_json =false; //remove:added to check mdot and APP communication.
davidjhoward 258:150f5a76162d 31 /*****************************************************************************
davidjhoward 258:150f5a76162d 32 * Function: ProcessBleRxEvents()
davidjhoward 258:150f5a76162d 33 * Description: Process BLE data
davidjhoward 258:150f5a76162d 34 *
davidjhoward 258:150f5a76162d 35 * @param spi_rcv_array
davidjhoward 258:150f5a76162d 36 * @param length
davidjhoward 258:150f5a76162d 37 * @return none
davidjhoward 258:150f5a76162d 38 *****************************************************************************/
davidjhoward 258:150f5a76162d 39 void ProcessBleRxEvents(uint8_t *spi_rcv_array, uint8_t len)
davidjhoward 258:150f5a76162d 40 {
davidjhoward 258:150f5a76162d 41 static bool file_receiving_flag = false;
davidjhoward 258:150f5a76162d 42 static uint16_t file_size = 0;
davidjhoward 258:150f5a76162d 43 static uint8_t file_name[16];
davidjhoward 258:150f5a76162d 44
davidjhoward 258:150f5a76162d 45 if (spi_rcv_array[0] == BLE_SOF_CMD) {
davidjhoward 258:150f5a76162d 46 switch (spi_rcv_array[1])
davidjhoward 258:150f5a76162d 47 {
davidjhoward 258:150f5a76162d 48 case BLE_CONNECTION_EVNT_CMD:
davidjhoward 258:150f5a76162d 49 printf("Mobile device connceted\n\r");
davidjhoward 258:150f5a76162d 50 isDeviceConnected =true;
davidjhoward 258:150f5a76162d 51 break;
davidjhoward 258:150f5a76162d 52
davidjhoward 258:150f5a76162d 53 case BLE_REC_DATA_CMD:
davidjhoward 258:150f5a76162d 54 printf("Data Received : ");
davidjhoward 258:150f5a76162d 55 /*
davidjhoward 258:150f5a76162d 56 TODO
davidjhoward 258:150f5a76162d 57 for testing purpose, if the mobile APP send first data as
davidjhoward 258:150f5a76162d 58 'a', then mDot send a test JSON string as reply.
davidjhoward 258:150f5a76162d 59 */
davidjhoward 258:150f5a76162d 60 for(int i=3;i<(spi_rcv_array[2]-1);i++)
davidjhoward 258:150f5a76162d 61 {
davidjhoward 258:150f5a76162d 62 if(spi_rcv_array[3] == 0x61)
davidjhoward 258:150f5a76162d 63 {
davidjhoward 258:150f5a76162d 64 send_json =true;
davidjhoward 258:150f5a76162d 65 }
davidjhoward 258:150f5a76162d 66 printf("%c",spi_rcv_array[i]);
davidjhoward 258:150f5a76162d 67
davidjhoward 258:150f5a76162d 68 }
davidjhoward 258:150f5a76162d 69 printf("\n\r");
davidjhoward 258:150f5a76162d 70 break;
davidjhoward 258:150f5a76162d 71
davidjhoward 258:150f5a76162d 72 case BLE_DISCONNECTION_EVNT_CMD:
davidjhoward 258:150f5a76162d 73 printf("Mobile disconnected\n\r");
davidjhoward 258:150f5a76162d 74 isDeviceConnected =false;
davidjhoward 258:150f5a76162d 75 break;
davidjhoward 258:150f5a76162d 76
davidjhoward 258:150f5a76162d 77 case BLE_START_OF_FILE:
davidjhoward 258:150f5a76162d 78 file_receiving_flag = true;
davidjhoward 258:150f5a76162d 79 file_size = spi_rcv_array[4] << 8 | spi_rcv_array[5];
davidjhoward 258:150f5a76162d 80 memcpy (file_name, &spi_rcv_array[6], spi_rcv_array[3]);
davidjhoward 258:150f5a76162d 81 printf("File name %s receving from mobile. File Size: %d\n\r", file_name, file_size);
davidjhoward 258:150f5a76162d 82 break;
davidjhoward 258:150f5a76162d 83
davidjhoward 258:150f5a76162d 84 case BLE_END_OF_FILE:
davidjhoward 258:150f5a76162d 85
davidjhoward 258:150f5a76162d 86 /* End of file received */
davidjhoward 258:150f5a76162d 87 // file_available_cb(file_name, file_size);
davidjhoward 258:150f5a76162d 88
davidjhoward 258:150f5a76162d 89 /* Reset the File Parameters */
davidjhoward 258:150f5a76162d 90 file_receiving_flag = false;
davidjhoward 258:150f5a76162d 91 file_size = 0;
davidjhoward 258:150f5a76162d 92 memset(file_name, 0, sizeof(file_name));
davidjhoward 258:150f5a76162d 93 break;
davidjhoward 258:150f5a76162d 94
davidjhoward 258:150f5a76162d 95 default:
davidjhoward 258:150f5a76162d 96 printf("Unknown ID\n\r");
davidjhoward 258:150f5a76162d 97 break;
davidjhoward 258:150f5a76162d 98 }
davidjhoward 258:150f5a76162d 99 } else {
davidjhoward 258:150f5a76162d 100 printf("SOF not found\n\r");
davidjhoward 258:150f5a76162d 101 }
davidjhoward 258:150f5a76162d 102 }
davidjhoward 258:150f5a76162d 103 /*****************************************************************************
davidjhoward 258:150f5a76162d 104 * Function: msg_handler()
davidjhoward 258:150f5a76162d 105 * Description: msg_handler
davidjhoward 258:150f5a76162d 106 *
davidjhoward 258:150f5a76162d 107 * @param spi_rcv_array
davidjhoward 258:150f5a76162d 108 * @param None
davidjhoward 258:150f5a76162d 109 * @return none
davidjhoward 258:150f5a76162d 110 *****************************************************************************/
davidjhoward 258:150f5a76162d 111 void msg_handler(void)
davidjhoward 258:150f5a76162d 112 {
davidjhoward 258:150f5a76162d 113
davidjhoward 258:150f5a76162d 114 uint8_t spi_rcv_array[100];
davidjhoward 258:150f5a76162d 115 uint8_t len;
davidjhoward 258:150f5a76162d 116 // printf("Reading from Master\n\r");
davidjhoward 258:150f5a76162d 117
davidjhoward 258:150f5a76162d 118 len = ReadSpiData(spi_rcv_array);
davidjhoward 258:150f5a76162d 119
davidjhoward 258:150f5a76162d 120 ProcessBleRxEvents(spi_rcv_array, len);
davidjhoward 258:150f5a76162d 121
davidjhoward 258:150f5a76162d 122
davidjhoward 258:150f5a76162d 123 }
davidjhoward 258:150f5a76162d 124
davidjhoward 258:150f5a76162d 125 /******************************************************************************/
davidjhoward 258:150f5a76162d 126 /* END OF FILE */
davidjhoward 258:150f5a76162d 127 /******************************************************************************/