Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed
Fork of ICE by
BLE/src/ble_msg_handler.cpp@249:68ed571e0002, 2016-10-21 (annotated)
- Committer:
- davidjhoward
- Date:
- Fri Oct 21 13:48:57 2016 +0000
- Revision:
- 249:68ed571e0002
- Child:
- 259:341f04be325e
Add BLE module from Happiest Minds
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
davidjhoward | 249:68ed571e0002 | 1 | /** |
davidjhoward | 249:68ed571e0002 | 2 | ****************************************************************************** |
davidjhoward | 249:68ed571e0002 | 3 | * @file ble_uart.cpp |
davidjhoward | 249:68ed571e0002 | 4 | * @author Happiesstminds Firmware Team |
davidjhoward | 249:68ed571e0002 | 5 | * @version v1.0 |
davidjhoward | 249:68ed571e0002 | 6 | * @date 4-Oct-2016 |
davidjhoward | 249:68ed571e0002 | 7 | * @brief |
davidjhoward | 249:68ed571e0002 | 8 | * |
davidjhoward | 249:68ed571e0002 | 9 | ****************************************************************************** |
davidjhoward | 249:68ed571e0002 | 10 | * @attention |
davidjhoward | 249:68ed571e0002 | 11 | * |
davidjhoward | 249:68ed571e0002 | 12 | * |
davidjhoward | 249:68ed571e0002 | 13 | ****************************************************************************** |
davidjhoward | 249:68ed571e0002 | 14 | */ |
davidjhoward | 249:68ed571e0002 | 15 | |
davidjhoward | 249:68ed571e0002 | 16 | /******************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 17 | /* Include Files*/ |
davidjhoward | 249:68ed571e0002 | 18 | /******************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 19 | |
davidjhoward | 249:68ed571e0002 | 20 | #include "mbed.h" |
davidjhoward | 249:68ed571e0002 | 21 | #include "ble_msg_handler.h" |
davidjhoward | 249:68ed571e0002 | 22 | #include "ble_spi.h" |
davidjhoward | 249:68ed571e0002 | 23 | |
davidjhoward | 249:68ed571e0002 | 24 | /******************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 25 | /* Defines */ |
davidjhoward | 249:68ed571e0002 | 26 | /******************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 27 | |
davidjhoward | 249:68ed571e0002 | 28 | |
davidjhoward | 249:68ed571e0002 | 29 | volatile bool isDeviceConnected_flag; |
davidjhoward | 249:68ed571e0002 | 30 | |
davidjhoward | 249:68ed571e0002 | 31 | /***************************************************************************** |
davidjhoward | 249:68ed571e0002 | 32 | * Function: process_rx_data() |
davidjhoward | 249:68ed571e0002 | 33 | * Description: Process BLE data |
davidjhoward | 249:68ed571e0002 | 34 | * |
davidjhoward | 249:68ed571e0002 | 35 | * @param spi_rcv_array |
davidjhoward | 249:68ed571e0002 | 36 | * @param length |
davidjhoward | 249:68ed571e0002 | 37 | * @return none |
davidjhoward | 249:68ed571e0002 | 38 | *****************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 39 | void process_rx_data(uint8_t *spi_rcv_array, uint8_t len) |
davidjhoward | 249:68ed571e0002 | 40 | { |
davidjhoward | 249:68ed571e0002 | 41 | static bool file_receiving_flag = false; |
davidjhoward | 249:68ed571e0002 | 42 | static uint16_t file_size = 0; |
davidjhoward | 249:68ed571e0002 | 43 | static uint8_t file_name[16]; |
davidjhoward | 249:68ed571e0002 | 44 | |
davidjhoward | 249:68ed571e0002 | 45 | if (spi_rcv_array[1] == BLE_SOF_CMD) { |
davidjhoward | 249:68ed571e0002 | 46 | switch (spi_rcv_array[2]) |
davidjhoward | 249:68ed571e0002 | 47 | { |
davidjhoward | 249:68ed571e0002 | 48 | case BLE_CONNECTION_EVNT_CMD: |
davidjhoward | 249:68ed571e0002 | 49 | printf("Mobile device connceted\n\r"); |
davidjhoward | 249:68ed571e0002 | 50 | isDeviceConnected_flag =true; |
davidjhoward | 249:68ed571e0002 | 51 | break; |
davidjhoward | 249:68ed571e0002 | 52 | |
davidjhoward | 249:68ed571e0002 | 53 | case BLE_REC_DATA_CMD: |
davidjhoward | 249:68ed571e0002 | 54 | printf("Data Received : \n\r"); |
davidjhoward | 249:68ed571e0002 | 55 | break; |
davidjhoward | 249:68ed571e0002 | 56 | |
davidjhoward | 249:68ed571e0002 | 57 | case BLE_DISCONNECTION_EVNT_CMD: |
davidjhoward | 249:68ed571e0002 | 58 | printf("Mobile disconnected\n\r"); |
davidjhoward | 249:68ed571e0002 | 59 | isDeviceConnected_flag =false; |
davidjhoward | 249:68ed571e0002 | 60 | break; |
davidjhoward | 249:68ed571e0002 | 61 | |
davidjhoward | 249:68ed571e0002 | 62 | case BLE_START_OF_FILE: |
davidjhoward | 249:68ed571e0002 | 63 | file_receiving_flag = true; |
davidjhoward | 249:68ed571e0002 | 64 | file_size = spi_rcv_array[4] << 8 | spi_rcv_array[5]; |
davidjhoward | 249:68ed571e0002 | 65 | memcpy (file_name, &spi_rcv_array[6], spi_rcv_array[3]); |
davidjhoward | 249:68ed571e0002 | 66 | printf("File name %s receving from mobile. File Size: %d\n\r", file_name, file_size); |
davidjhoward | 249:68ed571e0002 | 67 | break; |
davidjhoward | 249:68ed571e0002 | 68 | |
davidjhoward | 249:68ed571e0002 | 69 | case BLE_END_OF_FILE: |
davidjhoward | 249:68ed571e0002 | 70 | |
davidjhoward | 249:68ed571e0002 | 71 | /* End of file received */ |
davidjhoward | 249:68ed571e0002 | 72 | // file_available_cb(file_name, file_size); |
davidjhoward | 249:68ed571e0002 | 73 | |
davidjhoward | 249:68ed571e0002 | 74 | /* Reset the File Parameters */ |
davidjhoward | 249:68ed571e0002 | 75 | file_receiving_flag = false; |
davidjhoward | 249:68ed571e0002 | 76 | file_size = 0; |
davidjhoward | 249:68ed571e0002 | 77 | memset(file_name, 0, sizeof(file_name)); |
davidjhoward | 249:68ed571e0002 | 78 | break; |
davidjhoward | 249:68ed571e0002 | 79 | |
davidjhoward | 249:68ed571e0002 | 80 | default: |
davidjhoward | 249:68ed571e0002 | 81 | printf("Unknown ID\n\r"); |
davidjhoward | 249:68ed571e0002 | 82 | break; |
davidjhoward | 249:68ed571e0002 | 83 | } |
davidjhoward | 249:68ed571e0002 | 84 | } else { |
davidjhoward | 249:68ed571e0002 | 85 | printf("SOF not found\n\r"); |
davidjhoward | 249:68ed571e0002 | 86 | } |
davidjhoward | 249:68ed571e0002 | 87 | } |
davidjhoward | 249:68ed571e0002 | 88 | /***************************************************************************** |
davidjhoward | 249:68ed571e0002 | 89 | * Function: msg_handler() |
davidjhoward | 249:68ed571e0002 | 90 | * Description: msg_handler |
davidjhoward | 249:68ed571e0002 | 91 | * |
davidjhoward | 249:68ed571e0002 | 92 | * @param spi_rcv_array |
davidjhoward | 249:68ed571e0002 | 93 | * @param None |
davidjhoward | 249:68ed571e0002 | 94 | * @return none |
davidjhoward | 249:68ed571e0002 | 95 | *****************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 96 | void msg_handler(void) |
davidjhoward | 249:68ed571e0002 | 97 | { |
davidjhoward | 249:68ed571e0002 | 98 | |
davidjhoward | 249:68ed571e0002 | 99 | uint8_t spi_rcv_array[100]; |
davidjhoward | 249:68ed571e0002 | 100 | uint8_t len; |
davidjhoward | 249:68ed571e0002 | 101 | // printf("Reading from Master\n\r"); |
davidjhoward | 249:68ed571e0002 | 102 | |
davidjhoward | 249:68ed571e0002 | 103 | len = ReadSpiData(spi_rcv_array); |
davidjhoward | 249:68ed571e0002 | 104 | |
davidjhoward | 249:68ed571e0002 | 105 | process_rx_data(spi_rcv_array, len); |
davidjhoward | 249:68ed571e0002 | 106 | |
davidjhoward | 249:68ed571e0002 | 107 | |
davidjhoward | 249:68ed571e0002 | 108 | } |
davidjhoward | 249:68ed571e0002 | 109 | |
davidjhoward | 249:68ed571e0002 | 110 | /******************************************************************************/ |
davidjhoward | 249:68ed571e0002 | 111 | /* END OF FILE */ |
davidjhoward | 249:68ed571e0002 | 112 | /******************************************************************************/ |