Threading Implemented.Memory Size Problem09_Mar2017

Fork of rtos_queue by mbed official

Committer:
NarendraSingh
Date:
Thu Mar 09 15:00:37 2017 +0000
Revision:
7:22c4d2681cc9
Threading Implemented(Memory Size Problem

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NarendraSingh 7:22c4d2681cc9 1 #include "Beacon.h"
NarendraSingh 7:22c4d2681cc9 2 #include "Lora.h"
NarendraSingh 7:22c4d2681cc9 3
NarendraSingh 7:22c4d2681cc9 4 RawSerial DEBUG_UART2(PA_14, PA_15);//USART1_TX->PA_9,USART1_RX->PA_10
NarendraSingh 7:22c4d2681cc9 5 RawSerial Beacon_Module_UART(PC_4, PC_5);//USART3_TX->PC4,USART3_RX->PC_5
NarendraSingh 7:22c4d2681cc9 6
NarendraSingh 7:22c4d2681cc9 7
NarendraSingh 7:22c4d2681cc9 8 uint8 Beacon_RxBuffer_Crnt_Pos,Beacon_RxBuffer_End_Pos; // must be volatile or the compiler may over-optimise.
NarendraSingh 7:22c4d2681cc9 9 uint8 Beacon_RX_Buffer[50];
NarendraSingh 7:22c4d2681cc9 10 char Beacon_RxIndex=0;
NarendraSingh 7:22c4d2681cc9 11 uint8 BLE_Adv_Module_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 12
NarendraSingh 7:22c4d2681cc9 13 /*Instructions for operation(MS49SF1U)
NarendraSingh 7:22c4d2681cc9 14 1. UART command list(Commands for modifying configuration)
NarendraSingh 7:22c4d2681cc9 15 |-------------------|-----------------------------|---------------|---------------------------------------------------|
NarendraSingh 7:22c4d2681cc9 16 | Item | Command format | Length(data) | Returned value after successful receiving |
NarendraSingh 7:22c4d2681cc9 17 |-------------------|-----------------------------|---------------|---------------------------------------------------|
NarendraSingh 7:22c4d2681cc9 18 UUID 0x4154+0xFFF1+data+0x0d 16character 0xFFF1+received data
NarendraSingh 7:22c4d2681cc9 19 Major 0x4154+0xFFF2+data+0x0d 2character 0xFFF2+received data
NarendraSingh 7:22c4d2681cc9 20 Minor 0x4154+0xFFF3+data+0x0d 2character 0xFFF3+received data
NarendraSingh 7:22c4d2681cc9 21 Measured power 0x4154+0xFFF4+data+0x0d 1character 0xFFF4+received data
NarendraSingh 7:22c4d2681cc9 22 Transmission power 0x4154+0xFFF5+data+0x0d 1character 0xFFF5+received data
NarendraSingh 7:22c4d2681cc9 23 Pairing Password 0x4154+0xFFF6+data+0x0d 8character 0xFFF6+received data
NarendraSingh 7:22c4d2681cc9 24 Broadcasting Interval 0x4154+0xFFF7+data+0x0d 1character 0xFFF7+received data
NarendraSingh 7:22c4d2681cc9 25 Beacon_Serial_ID 0x4154+0xFFF8+data+0x0d 4character 0xFFF8+received data
NarendraSingh 7:22c4d2681cc9 26 iBeacon_name 0x4154+0xFFF9+data+0x0d 12character 0xFFF9+received data
NarendraSingh 7:22c4d2681cc9 27 Authentication 0x4154+0xFFFA+data+0x0d 12character 0xFFFA+received data
NarendraSingh 7:22c4d2681cc9 28 Connection Mode 0x4154+0xFFFE+data+0x0d 1character 0xFFFE+received data
NarendraSingh 7:22c4d2681cc9 29 Soft Reboot 0x4154+0xFFFF+data+0x0d 8character 0xFFFF+received data+0K or ERROR
NarendraSingh 7:22c4d2681cc9 30 open beacon 0x4154+0x6F70656E+0x0d return Beacon is open\n
NarendraSingh 7:22c4d2681cc9 31 close beacon 0x4154+0x636C6F7365+0x0d return Beacon is closed\n
NarendraSingh 7:22c4d2681cc9 32 app enable 0x4154+0x656E61626C65+0x0d return app enabled
NarendraSingh 7:22c4d2681cc9 33 app unable 0x4154+0x756E61626C65+0x0d
NarendraSingh 7:22c4d2681cc9 34 Read MAC ID 0x5244+0x6d6163+0x0d
NarendraSingh 7:22c4d2681cc9 35 -------------------------------------------------------------------------------------------------------------------
NarendraSingh 7:22c4d2681cc9 36 */
NarendraSingh 7:22c4d2681cc9 37
NarendraSingh 7:22c4d2681cc9 38 unsigned char SET_UUID[21] = {0x41,0x54,0xFF,0xF1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 39 unsigned char SET_VIRTUAL_PACKET_UUID[23] = {0x01,0x01,0x41,0x54,0x01,0x01,0x02,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x03,0x0B,0x0C,0x05,0x0E,0x0F,0x0D};//
NarendraSingh 7:22c4d2681cc9 40 //unsigned char SET_VIRTUAL_PACKET_UUID1[23] = {0x41,0x54,0xFF,0xF1,0x02,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x02,0x0B,0x0C,0x05,0x0E,0x0F,0x0D};
NarendraSingh 7:22c4d2681cc9 41 //unsigned char SET_VIRTUAL_PACKET_UUID2[23] = {0x12,0x21,0x41,0x54,0xFF,0xF1,0x0F,0x0E,0x0D,0x0C,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 42 //unsigned char SET_VIRTUAL_PACKET_UUID3[23] = {0x41,0x54,0xFF,0xF1,0x0F,0x0E,0x0D,0x0C,0x0B,0x04,0x05,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 43 unsigned char SET_MAJOR[7] = {0x41,0x54,0xFF,0xF2,0x00,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 44 unsigned char SET_MINOR[7] = {0x41,0x54,0xFF,0xF3,0x00,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 45 unsigned char SET_MEASURED_POWER[6] = {0x41,0x54,0xFF,0xF4,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 46 unsigned char SET_TRANSMISSION_POWER[6] = {0x41,0x54,0xFF,0xF5,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 47 unsigned char SET_PAIRING_PASSWORD[13] = {0x41,0x54,0xFF,0xF6,0x4F,0x42,0x44,0x21,0x30,0x30,0x30,0x31,0x0D};//Set Password here, Now set as OBD!1234
NarendraSingh 7:22c4d2681cc9 48 unsigned char SET_BROADCAST_INTERVAL[6] = {0x41,0x54,0xFF,0xF7,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 49 unsigned char SET_IBEACON_NAME[17] = {0x41,0x54,0xFF,0xF9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 50 unsigned char SOFT_REBOOT[13] = {0x41,0x54,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D};
NarendraSingh 7:22c4d2681cc9 51 unsigned char SET_OPEN_BEACON[7] = {0x41,0x54,0x6F,0x70,0x65,0x6E,0x0D};
NarendraSingh 7:22c4d2681cc9 52 unsigned char SET_CLOSE_BEACON[8] = {0x41,0x54,0x63,0x6C,0x6F,0x73,0x65,0x0D};
NarendraSingh 7:22c4d2681cc9 53 unsigned char READ_BEACON_MAC_ID[6] = {0x52,0x44,0x6D,0x61,0x63,0x0D};
NarendraSingh 7:22c4d2681cc9 54
NarendraSingh 7:22c4d2681cc9 55 unsigned char SOFT_REBOOT1[15] = {0x01,0x0B,0x41,0x54,0xFF,0xFF,0x6D,0x69,0x6E,0x65,0x77,0x31,0x32,0x33,0x0D};
NarendraSingh 7:22c4d2681cc9 56 unsigned char SOFT_REBOOT2[15] = {0x41,0x54,0xFF,0xFF,0x6D,0x69,0x6E,0x65,0x77,0x31,0x32,0x33,0x0D};
NarendraSingh 7:22c4d2681cc9 57
NarendraSingh 7:22c4d2681cc9 58 void Process_Beacon_Command_Received(unsigned char* Command_Received);
NarendraSingh 7:22c4d2681cc9 59 void Change_Beacon_Parameter(unsigned char* Beacon_Parameter_To_Set);
NarendraSingh 7:22c4d2681cc9 60 void Get_Beacon_Response(void);
NarendraSingh 7:22c4d2681cc9 61 void Read_Beacon_Module_MAC_ID(void);
NarendraSingh 7:22c4d2681cc9 62 void Initialize_Beacon_Module(void);
NarendraSingh 7:22c4d2681cc9 63
NarendraSingh 7:22c4d2681cc9 64 void Process_Beacon_Command_Received(unsigned char* Command_Received)
NarendraSingh 7:22c4d2681cc9 65 {
NarendraSingh 7:22c4d2681cc9 66 static unsigned char Temp_Pos,Start_Position,End_Position,Data_Length;
NarendraSingh 7:22c4d2681cc9 67 Start_Position = 0x02;
NarendraSingh 7:22c4d2681cc9 68 Temp_Pos = 0x02;
NarendraSingh 7:22c4d2681cc9 69 if((Command_Received[0] == SET_BEACON_UUID_CMD0) && (Command_Received[1] == SET_BEACON_UUID_CMD1)) //Check if command is receievd for setting UUID
NarendraSingh 7:22c4d2681cc9 70 {
NarendraSingh 7:22c4d2681cc9 71 //DEBUG_UART2.printf("Setting UUID");
NarendraSingh 7:22c4d2681cc9 72 Data_Length = 16;
NarendraSingh 7:22c4d2681cc9 73 End_Position = (Start_Position + Data_Length);
NarendraSingh 7:22c4d2681cc9 74 for(;Start_Position < End_Position;Start_Position++)
NarendraSingh 7:22c4d2681cc9 75 {
NarendraSingh 7:22c4d2681cc9 76 SET_UUID[Start_Position] = Command_Received[Temp_Pos++];
NarendraSingh 7:22c4d2681cc9 77 //DEBUG_UART2.putc(SET_UUID[Start_Position]);
NarendraSingh 7:22c4d2681cc9 78 //DEBUG_UART2.printf("%s",SET_UUID);
NarendraSingh 7:22c4d2681cc9 79
NarendraSingh 7:22c4d2681cc9 80
NarendraSingh 7:22c4d2681cc9 81 }
NarendraSingh 7:22c4d2681cc9 82 DEBUG_UART2.printf("UUID Set");
NarendraSingh 7:22c4d2681cc9 83 //Change_Beacon_Parameter(SET_VIRTUAL_PACKET_UUID1);
NarendraSingh 7:22c4d2681cc9 84 }
NarendraSingh 7:22c4d2681cc9 85 else if((Command_Received[0] == 0x12) && (Command_Received[1] == 0x21)) //Check if command is receievd for setting UUID
NarendraSingh 7:22c4d2681cc9 86 {
NarendraSingh 7:22c4d2681cc9 87 DEBUG_UART2.printf("Setting UUID2");
NarendraSingh 7:22c4d2681cc9 88 Data_Length = 16;
NarendraSingh 7:22c4d2681cc9 89 End_Position = (Start_Position + Data_Length);
NarendraSingh 7:22c4d2681cc9 90 for(;Start_Position < End_Position;Start_Position++)
NarendraSingh 7:22c4d2681cc9 91 {
NarendraSingh 7:22c4d2681cc9 92 SET_UUID[Start_Position] = Command_Received[Temp_Pos++];
NarendraSingh 7:22c4d2681cc9 93 //DEBUG_UART2.putc(SET_UUID[Start_Position]);
NarendraSingh 7:22c4d2681cc9 94 //DEBUG_UART2.printf("%s",SET_UUID);
NarendraSingh 7:22c4d2681cc9 95
NarendraSingh 7:22c4d2681cc9 96
NarendraSingh 7:22c4d2681cc9 97 }
NarendraSingh 7:22c4d2681cc9 98 DEBUG_UART2.printf("UUID2 Set");
NarendraSingh 7:22c4d2681cc9 99 //Change_Beacon_Parameter(SET_VIRTUAL_PACKET_UUID3);
NarendraSingh 7:22c4d2681cc9 100 }
NarendraSingh 7:22c4d2681cc9 101 else if((Command_Received[0] == SET_SET_MAJOR_CMD0) && (Command_Received[1] == SET_SET_MAJOR_CMD1)) //Check if command is received for Setting Major
NarendraSingh 7:22c4d2681cc9 102 {
NarendraSingh 7:22c4d2681cc9 103 SET_MAJOR[Start_Position++] = Command_Received[Temp_Pos++]; //MSB
NarendraSingh 7:22c4d2681cc9 104 SET_MAJOR[Start_Position] = Command_Received[Temp_Pos]; //LSB
NarendraSingh 7:22c4d2681cc9 105 DEBUG_UART2.printf("%s",SET_MAJOR);
NarendraSingh 7:22c4d2681cc9 106 Change_Beacon_Parameter(SET_MAJOR);
NarendraSingh 7:22c4d2681cc9 107 }
NarendraSingh 7:22c4d2681cc9 108 else if((Command_Received[0] == SET_SET_MINOR_CMD0) && (Command_Received[1] == SET_SET_MINOR_CMD1)) //Check if command is received for Setting Minor
NarendraSingh 7:22c4d2681cc9 109 {
NarendraSingh 7:22c4d2681cc9 110 SET_MINOR[Start_Position++] = Command_Received[Temp_Pos++]; //MSB
NarendraSingh 7:22c4d2681cc9 111 SET_MINOR[Start_Position] = Command_Received[Temp_Pos]; //LSB
NarendraSingh 7:22c4d2681cc9 112 DEBUG_UART2.printf("%s",SET_MINOR);
NarendraSingh 7:22c4d2681cc9 113 Change_Beacon_Parameter(SET_MINOR);
NarendraSingh 7:22c4d2681cc9 114 }
NarendraSingh 7:22c4d2681cc9 115 else if((Command_Received[0] == SET_SET_MEASURED_POWER_CMD0) && (Command_Received[1] == SET_SET_MEASURED_POWER_CMD1)) //Check if command is received for Setting Measured power
NarendraSingh 7:22c4d2681cc9 116 {
NarendraSingh 7:22c4d2681cc9 117 SET_MEASURED_POWER[Start_Position] = Command_Received[Temp_Pos];
NarendraSingh 7:22c4d2681cc9 118 DEBUG_UART2.printf("%s",SET_MEASURED_POWER);
NarendraSingh 7:22c4d2681cc9 119 Change_Beacon_Parameter(SET_MEASURED_POWER);
NarendraSingh 7:22c4d2681cc9 120 }
NarendraSingh 7:22c4d2681cc9 121 else if((Command_Received[0] == SET_TRANSMISSION_POWER_CMD0) && (Command_Received[1] == SET_TRANSMISSION_POWER_CMD1)) //Check if command is received for settting Transmission power
NarendraSingh 7:22c4d2681cc9 122 {
NarendraSingh 7:22c4d2681cc9 123 SET_TRANSMISSION_POWER[Start_Position] = Command_Received[Temp_Pos];
NarendraSingh 7:22c4d2681cc9 124 DEBUG_UART2.printf("%s",SET_TRANSMISSION_POWER);
NarendraSingh 7:22c4d2681cc9 125 Change_Beacon_Parameter(SET_TRANSMISSION_POWER);
NarendraSingh 7:22c4d2681cc9 126 }
NarendraSingh 7:22c4d2681cc9 127 else if((Command_Received[0] == SET_PAIRING_PASSWORD_CMD0) && (Command_Received[1] == SET_PAIRING_PASSWORD_CMD1)) //Check if command is received for Changing Pairing Password
NarendraSingh 7:22c4d2681cc9 128 {
NarendraSingh 7:22c4d2681cc9 129 Data_Length = 8;
NarendraSingh 7:22c4d2681cc9 130 End_Position = (Start_Position + Data_Length);
NarendraSingh 7:22c4d2681cc9 131 for(;Start_Position < End_Position;Start_Position++)
NarendraSingh 7:22c4d2681cc9 132 SET_PAIRING_PASSWORD[Start_Position] = Command_Received[Temp_Pos++];
NarendraSingh 7:22c4d2681cc9 133 DEBUG_UART2.printf("%s",SET_PAIRING_PASSWORD);
NarendraSingh 7:22c4d2681cc9 134 //Change_Beacon_Parameter(SET_PAIRING_PASSWORD);
NarendraSingh 7:22c4d2681cc9 135 Data_Length = 8;
NarendraSingh 7:22c4d2681cc9 136 Start_Position = 4;
NarendraSingh 7:22c4d2681cc9 137 End_Position = (Start_Position + Data_Length);
NarendraSingh 7:22c4d2681cc9 138 //for(Start_Position;Start_Position < End_Position;Start_Position++)
NarendraSingh 7:22c4d2681cc9 139 // SET_SOFT_REBOOT[Start_Position] = Command_Received[Temp_Pos++]; //write code to update this password in eeprom
NarendraSingh 7:22c4d2681cc9 140 DEBUG_UART2.printf("%s",SOFT_REBOOT);
NarendraSingh 7:22c4d2681cc9 141 }
NarendraSingh 7:22c4d2681cc9 142 else if((Command_Received[0] == SET_BROADCAST_INTERVAL_CMD0) && (Command_Received[1] == SET_BROADCAST_INTERVAL_CMD1)) //Check if command is received for setting BroadCast Interval
NarendraSingh 7:22c4d2681cc9 143 {
NarendraSingh 7:22c4d2681cc9 144 SET_BROADCAST_INTERVAL[Start_Position] = Command_Received[Temp_Pos];
NarendraSingh 7:22c4d2681cc9 145 DEBUG_UART2.printf("%s",SET_BROADCAST_INTERVAL);
NarendraSingh 7:22c4d2681cc9 146 Change_Beacon_Parameter(SET_BROADCAST_INTERVAL);
NarendraSingh 7:22c4d2681cc9 147 }
NarendraSingh 7:22c4d2681cc9 148 else if((Command_Received[0] == SET_IBEACON_NAME_CMD0) && (Command_Received[1] == SET_IBEACON_NAME_CMD1)) //Check if command is received for setting ibeacon name
NarendraSingh 7:22c4d2681cc9 149 {
NarendraSingh 7:22c4d2681cc9 150 Data_Length = 12;
NarendraSingh 7:22c4d2681cc9 151 End_Position = (Start_Position + Data_Length);
NarendraSingh 7:22c4d2681cc9 152 for(;Start_Position < End_Position;Start_Position++)
NarendraSingh 7:22c4d2681cc9 153 SET_IBEACON_NAME[Start_Position] = Command_Received[Temp_Pos++];
NarendraSingh 7:22c4d2681cc9 154 DEBUG_UART2.printf("%s",SET_IBEACON_NAME);
NarendraSingh 7:22c4d2681cc9 155 Change_Beacon_Parameter(SET_IBEACON_NAME);
NarendraSingh 7:22c4d2681cc9 156 }
NarendraSingh 7:22c4d2681cc9 157 else if((Command_Received[0] == SET_START_BEACON_CMD0) && (Command_Received[1] == SET_START_BEACON_CMD0)) //check if command is receievd for starting Beacon
NarendraSingh 7:22c4d2681cc9 158 {
NarendraSingh 7:22c4d2681cc9 159 DEBUG_UART2.printf("%s",SET_OPEN_BEACON);
NarendraSingh 7:22c4d2681cc9 160 Change_Beacon_Parameter(SET_OPEN_BEACON);
NarendraSingh 7:22c4d2681cc9 161 }
NarendraSingh 7:22c4d2681cc9 162 else if((Command_Received[0] == SET_STOP_BEACON_CMD0) && (Command_Received[1] == SET_STOP_BEACON_CMD1)) //Check if command is received for Stopping beacon and go to sleep mode
NarendraSingh 7:22c4d2681cc9 163 {
NarendraSingh 7:22c4d2681cc9 164 DEBUG_UART2.printf("%s",SET_CLOSE_BEACON);
NarendraSingh 7:22c4d2681cc9 165 Change_Beacon_Parameter(SET_CLOSE_BEACON);
NarendraSingh 7:22c4d2681cc9 166 }
NarendraSingh 7:22c4d2681cc9 167 else if((Command_Received[0] == SET_SOFT_REBOOT_CMD0) && (Command_Received[1] == SET_SOFT_REBOOT_CMD1)) //Check if command is received for Stopping beacon and go to sleep mode
NarendraSingh 7:22c4d2681cc9 168 {
NarendraSingh 7:22c4d2681cc9 169 Beacon_Module_UART.printf("%s",SOFT_REBOOT2); //Soft Reboot Beacon Module
NarendraSingh 7:22c4d2681cc9 170 DEBUG_UART2.printf("Beacon Device Resetted %s",SOFT_REBOOT2);
NarendraSingh 7:22c4d2681cc9 171 }
NarendraSingh 7:22c4d2681cc9 172 }
NarendraSingh 7:22c4d2681cc9 173
NarendraSingh 7:22c4d2681cc9 174 void Change_Beacon_Parameter(unsigned char* Beacon_Parameter_To_Set)
NarendraSingh 7:22c4d2681cc9 175 {
NarendraSingh 7:22c4d2681cc9 176 uint8 i;
NarendraSingh 7:22c4d2681cc9 177 for(i = 0;i<21;i++)
NarendraSingh 7:22c4d2681cc9 178 {
NarendraSingh 7:22c4d2681cc9 179 Beacon_Module_UART.putc(Beacon_Parameter_To_Set[i]);
NarendraSingh 7:22c4d2681cc9 180 DEBUG_UART2.putc(Beacon_Parameter_To_Set[i]);
NarendraSingh 7:22c4d2681cc9 181 }
NarendraSingh 7:22c4d2681cc9 182 //Beacon_Module_UART.printf('%x',0x0d);
NarendraSingh 7:22c4d2681cc9 183 //DEBUG_UART2.putc('%x',0x0d);
NarendraSingh 7:22c4d2681cc9 184 Beacon_Module_UART.printf("%s",Beacon_Parameter_To_Set);
NarendraSingh 7:22c4d2681cc9 185 //Beacon_Module_UART.printf("%s",SOFT_REBOOT); //Every Ibeacon command must be followed by Soft reset command in order to make the changes take place instantly
NarendraSingh 7:22c4d2681cc9 186 //DEBUG_UART2.printf("%s",Beacon_Parameter_To_Set);
NarendraSingh 7:22c4d2681cc9 187 }
NarendraSingh 7:22c4d2681cc9 188
NarendraSingh 7:22c4d2681cc9 189 void Initialize_Beacon_Module(void)
NarendraSingh 7:22c4d2681cc9 190 {
NarendraSingh 7:22c4d2681cc9 191 Beacon_Module_UART.baud(9600); //set Beacon transmitter uart baud rate to default 9600
NarendraSingh 7:22c4d2681cc9 192 //Read_Beacon_Module_MAC_ID();
NarendraSingh 7:22c4d2681cc9 193 }
NarendraSingh 7:22c4d2681cc9 194
NarendraSingh 7:22c4d2681cc9 195 void Read_Beacon_Module_MAC_ID(void)
NarendraSingh 7:22c4d2681cc9 196 {
NarendraSingh 7:22c4d2681cc9 197 uint8 pos;
NarendraSingh 7:22c4d2681cc9 198 Beacon_Module_UART.printf("%s",READ_BEACON_MAC_ID);
NarendraSingh 7:22c4d2681cc9 199 Get_Beacon_Response();
NarendraSingh 7:22c4d2681cc9 200 for(pos=0;pos<6;pos++)
NarendraSingh 7:22c4d2681cc9 201 BLE_Adv_Module_Beacon_ID[pos] = Beacon_RX_Buffer[pos];
NarendraSingh 7:22c4d2681cc9 202 }
NarendraSingh 7:22c4d2681cc9 203
NarendraSingh 7:22c4d2681cc9 204 void Get_Beacon_Response(void)
NarendraSingh 7:22c4d2681cc9 205 {
NarendraSingh 7:22c4d2681cc9 206 char Beacon_inChar=0;
NarendraSingh 7:22c4d2681cc9 207 //Keep reading characters until we get a carriage return
NarendraSingh 7:22c4d2681cc9 208 while(Beacon_inChar != '\n')
NarendraSingh 7:22c4d2681cc9 209 {
NarendraSingh 7:22c4d2681cc9 210 //If a character comes in on the serial port, we need to act on it.
NarendraSingh 7:22c4d2681cc9 211 if(Beacon_Module_UART.readable())
NarendraSingh 7:22c4d2681cc9 212 {
NarendraSingh 7:22c4d2681cc9 213 //Get the new character from the Serial port.
NarendraSingh 7:22c4d2681cc9 214 Beacon_inChar = Beacon_Module_UART.getc();
NarendraSingh 7:22c4d2681cc9 215 //Start by checking if we've received the end of message character ('\r').
NarendraSingh 7:22c4d2681cc9 216 if(Beacon_inChar == '\n')
NarendraSingh 7:22c4d2681cc9 217 {
NarendraSingh 7:22c4d2681cc9 218 //Put the end of string character on our data string
NarendraSingh 7:22c4d2681cc9 219 Beacon_RX_Buffer[Beacon_RxIndex]='\0';
NarendraSingh 7:22c4d2681cc9 220 //Reset the buffer index so that the next character go es back at the beginning of the string.
NarendraSingh 7:22c4d2681cc9 221 Beacon_RxIndex=0;
NarendraSingh 7:22c4d2681cc9 222 }
NarendraSingh 7:22c4d2681cc9 223 //If we didn't get the end of message character, just add the new character to the string.
NarendraSingh 7:22c4d2681cc9 224 else
NarendraSingh 7:22c4d2681cc9 225 {
NarendraSingh 7:22c4d2681cc9 226 //Add the new character to the string, and increment the index variable.
NarendraSingh 7:22c4d2681cc9 227 Beacon_RX_Buffer[Beacon_RxIndex++]=Beacon_inChar;
NarendraSingh 7:22c4d2681cc9 228 }
NarendraSingh 7:22c4d2681cc9 229 }
NarendraSingh 7:22c4d2681cc9 230 }
NarendraSingh 7:22c4d2681cc9 231 }