BLE Transmitter not working

Fork of Dealer_23Feb by kumar singh

Revision:
19:886d50ecc718
Parent:
18:86f069689502
Child:
20:f812f85cf97e
diff -r 86f069689502 -r 886d50ecc718 Lora.cpp
--- a/Lora.cpp	Sat Feb 18 08:52:04 2017 +0000
+++ b/Lora.cpp	Tue Feb 21 06:27:13 2017 +0000
@@ -31,7 +31,8 @@
  Vehicle_Status_PacketType Vehicle_Status_Lora_Packet;    //Allocate Memory for Movement Lora Packets
  Near_Car_Beacon Near_Car_Beacon_Packet;
  Fixed_Beacon Fixed_Beacon_Packet;
-
+ Misc_Packets Misc_Packet_Data;
+    
  //Lora AT Commands list
  const char* Attention = {"AT\r"};     
  const char* Reset_Device = "ATZ\r";
@@ -84,13 +85,14 @@
         Get_Lora_Response();
     pc2.printf("Network Id response received");
     
-    //LORA_Module_UART.printf("%s",Reset_Device);                    //reset device
-    //wait_ms(3500);
-    
     LORA_Module_UART.printf("AT+TXDR=DR2\r");
     AT_Response_Receive_Status = FAILURE;
     while(AT_Response_Receive_Status)
         Get_Lora_Response();
+    LORA_Module_UART.printf("AT+RXDR=10\r");
+    AT_Response_Receive_Status = FAILURE;
+    while(AT_Response_Receive_Status)
+        Get_Lora_Response();
     LORA_Module_UART.printf("AT+ADR=1\r"); //Enable adaptive data rate
     AT_Response_Receive_Status = FAILURE;
     while(AT_Response_Receive_Status)
@@ -119,104 +121,108 @@
     uint8 i;
     /******* Initialize Lora packet for HeartBeat *****/
     Heart_Beat_Lora_Packet.Header = LORA_PACKET_HEADER;
-    Heart_Beat_Lora_Packet.Protocol_Version = OBD_Protocol_Version;
+    Misc_Packet_Data.Protocol_Version = OBD_Protocol_Version;
     Heart_Beat_Lora_Packet.Packet_Type = HEART_BEAT_PACKET_CMD;
-    Heart_Beat_Lora_Packet.OBD_Battery_Voltage = 350;       //3.50V, dummy data
-    Heart_Beat_Lora_Packet.Car_Battery_Voltage = 1250;      //12.50V, dummy data
-    Heart_Beat_Lora_Packet.OBD_Battery_Temperature = 95;    //95'F, dummy data
-    Heart_Beat_Lora_Packet.Car_Ambient_Temperature = 104;   //104'F, dummy data
+    Misc_Packet_Data.OBD_Battery_Voltage = 350;       //3.50V, dummy data
+    Misc_Packet_Data.Car_Battery_Voltage = 1250;      //12.50V, dummy data
+    Misc_Packet_Data.OBD_Battery_Temperature = 95;    //95'F, dummy data
+    Misc_Packet_Data.Car_Ambient_Temperature = 104;   //104'F, dummy data
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking1_Beacon_ID[i] = (0x01+i);      //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking1_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength = 23;             //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking2_Beacon_ID[i] = (10+i);      //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking2_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength = 45;             //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking3_Beacon_ID[i] = (20+i);      //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking3_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength = 12;             //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     Heart_Beat_Lora_Packet.FCS = 0x00;                                 //FCS of all packets        
     
     /******* Initialize Lora packet for Vehicle Status *****/
     Vehicle_Status_Lora_Packet.Header = LORA_PACKET_HEADER;
-    Vehicle_Status_Lora_Packet.Protocol_Version = OBD_Protocol_Version;
+    Misc_Packet_Data.Protocol_Version = OBD_Protocol_Version;
     Vehicle_Status_Lora_Packet.Packet_Type = STATUS_PACKET_CMD;
     for(i=0;i<17;i++)
-        Vehicle_Status_Lora_Packet.VIN[i] = (30+i);//Vehicle_Identification_Number[i];
+        Misc_Packet_Data.VIN[i] = (30+i);//Vehicle_Identification_Number[i];
     for(i=0;i<3;i++)
-        Vehicle_Status_Lora_Packet.ODO_METER_READING[i] = 0x05;  //Dummyy data, To be read using OBD
+        Misc_Packet_Data.ODO_METER_READING[i] = 0x05;  //Dummyy data, To be read using OBD
     Vehicle_Status_Lora_Packet.Fuel_Level = 1050;//10.5 litre
-    Vehicle_Status_Lora_Packet.OBD_Battery_Voltage = 350;
-    Vehicle_Status_Lora_Packet.Car_Battery_Voltage = 1250;
-    Vehicle_Status_Lora_Packet.OBD_Battery_Temperature = 95;
-    Vehicle_Status_Lora_Packet.Car_Ambient_Temperature = 104;
+    Misc_Packet_Data.OBD_Battery_Voltage = 350;
+    Misc_Packet_Data.Car_Battery_Voltage = 1250;
+    Misc_Packet_Data.OBD_Battery_Temperature = 95;
+    Misc_Packet_Data.Car_Ambient_Temperature = 104;
     for(i=0;i<6;i++)
         Vehicle_Status_Lora_Packet.BLE_Adv_Beacon_ID[i] = BLE_Adv_Module_Beacon_ID[i];         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking1_Beacon_ID[i] = (30+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking1_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength = 0x07;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking2_Beacon_ID[i] = (40+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking2_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength = 0x08;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking3_Beacon_ID[i] = (50+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking3_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength = 0x09;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Near_Car_Beacon_Packet.Near_Car1_Beacon_ID[i] = (60+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor = 0x0000;
     Near_Car_Beacon_Packet.Near_Car1_Beacon_Signal_Strength = 0x09;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Near_Car_Beacon_Packet.Near_Car2_Beacon_ID[i] = (70+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor = 0x0000;
     Near_Car_Beacon_Packet.Near_Car2_Beacon_Signal_Strength = 0x09;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Near_Car_Beacon_Packet.Near_Car3_Beacon_ID[i] = (80+i);         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor = 0x0000;
     Near_Car_Beacon_Packet.Near_Car3_Beacon_Signal_Strength = 0x09;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     Vehicle_Status_Lora_Packet.FCS = 0x00;                       //FCS of all packets     
     
     /******* Initialize Lora packet for CheckIn *****/
     CheckIN_Lora_Packet.Header = LORA_PACKET_HEADER;
-    CheckIN_Lora_Packet.Protocol_Version = OBD_Protocol_Version;
+    Misc_Packet_Data.Protocol_Version = OBD_Protocol_Version;
     CheckIN_Lora_Packet.Packet_Type = CHECKIN_PACKET_CMD;
     for(i=0;i<17;i++)
-        CheckIN_Lora_Packet.VIN[i] = Vehicle_Identification_Number[i];
+        Misc_Packet_Data.VIN[i] = Vehicle_Identification_Number[i];
     for(i=0;i<3;i++)
-        CheckIN_Lora_Packet.ODO_METER_READING[i] = 0x00;  //Dummyy data, To be read using OBD
+        Misc_Packet_Data.ODO_METER_READING[i] = 0x00;  //Dummyy data, To be read using OBD
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking1_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking1_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking2_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking2_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking3_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking3_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     CheckIN_Lora_Packet.FCS = 0x00;                       //FCS of all packets     
        
+    /******* Initialize Lora packet for CheckOUT *****/
+    CheckOUT_Packet.Header = LORA_PACKET_HEADER;
+    Misc_Packet_Data.Protocol_Version = OBD_Protocol_Version;
+    CheckOUT_Packet.Packet_Type = CHECKIN_PACKET_CMD;
+    for(i=0;i<17;i++)
+        Misc_Packet_Data.VIN[i] = Vehicle_Identification_Number[i];
+    for(i=0;i<3;i++)
+        Misc_Packet_Data.ODO_METER_READING[i] = 0x00;  //Dummyy data, To be read using OBD
+    for(i=0;i<6;i++)
+        Fixed_Beacon_Packet.Parking1_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
+    Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
+    for(i=0;i<6;i++)
+        Fixed_Beacon_Packet.Parking2_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
+    Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
+    for(i=0;i<6;i++)
+        Fixed_Beacon_Packet.Parking3_Beacon_ID[i] = 0x00;         //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
+    Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength = 0x00;   //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
+    CheckOUT_Packet.FCS = 0x00;                       //FCS of all packets     
+       
     /******* Initialize Lora packet for Movement *****/
     Motion_Lora_Packet.Header = LORA_PACKET_HEADER;
-    Motion_Lora_Packet.Protocol_Version = OBD_Protocol_Version;
+    Misc_Packet_Data.Protocol_Version = OBD_Protocol_Version;
     Motion_Lora_Packet.Packet_Type = MOTION_PACKET_CMD;
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking1_Beacon_ID[i] = 0x00;          //MAC ID of 1st NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking1_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength = 0x00;    //Signal Strength of 1st NearBy Beacon Device with Highest Signal Strength      
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking2_Beacon_ID[i] = 0x00;          //MAC ID of 2nd NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking2_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength = 0x00;    //Signal Strength of 2nd NearBy Beacon Device with Highest Signal Strength          
     for(i=0;i<6;i++)
         Fixed_Beacon_Packet.Parking3_Beacon_ID[i] = 0x00;          //MAC ID of 3rd NearBy Beacon Device with Highest Signal Strength,dummy data
-    Fixed_Beacon_Packet.Parking3_Beacon_Minor = 0x0000;
     Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength = 0x00;    //Signal Strength of 3rd NearBy Beacon Device with Highest Signal Strength          
     Motion_Lora_Packet.Acceleration_Type = 0x00;          //Type of acceleration, Vehicle Started/Vehicle Stopped/Sudden Vehicle Movement
     Motion_Lora_Packet.FCS = 0x00;                        //FCS of all packets  
@@ -229,28 +235,22 @@
     //write code to read obd data,temperature,beacon data
     uint8 Pos = 0,i;
     Lora_Packet_To_Send[Pos++] = Heart_Beat_Lora_Packet.Header;                  //Header of Lora Packet,0xFE
-    Lora_Packet_To_Send[Pos++] = Heart_Beat_Lora_Packet.Protocol_Version;
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Protocol_Version;
     Lora_Packet_To_Send[Pos++] = Heart_Beat_Lora_Packet.Packet_Type;      //MSB of Motion Packet Type
-    Lora_Packet_To_Send[Pos++] = (Heart_Beat_Lora_Packet.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (Heart_Beat_Lora_Packet.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (Heart_Beat_Lora_Packet.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = (Heart_Beat_Lora_Packet.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = Heart_Beat_Lora_Packet.OBD_Battery_Temperature;     //Get Battery Temperature
-    Lora_Packet_To_Send[Pos++] = Heart_Beat_Lora_Packet.Car_Ambient_Temperature;     //Get Ambient Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.OBD_Battery_Temperature;     //Get Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Car_Ambient_Temperature;     //Get Ambient Temperature
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor >> 8);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor & 0xFF);     //Get Parking1 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor >> 8);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor & 0xFF);     //Get Parking2 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor >> 8);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor & 0xFF);     //Get Parking3 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     Lora_Packet_To_Send[Pos++] = Calculate_Lora_Frame_FCS(Lora_Packet_To_Send,Pos);   //Calculate FCS of all bytes
     Packet_Type_To_Send = HEARTBEAT_TYPE_PACKET;
@@ -263,54 +263,41 @@
     //write code to read OBD data,temperature,beacon data
     uint8 Pos = 0,i;
     Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.Header;                  //Header of Lora Packet,0xFE
-    Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.Protocol_Version;      //MSB of Motion Packet Type
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Protocol_Version;      //MSB of Motion Packet Type
     Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.Packet_Type;      //MSB of Motion Packet Type
     for(i=0;i < 17;i++)
-        Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.VIN[i];           //Get OBD_ID
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.VIN[i];           //Get OBD_ID
     for(i=0;i < 3;i++)
-        Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.ODO_METER_READING[i];           //Get OBD_ID
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.ODO_METER_READING[i];           //Get OBD_ID
     Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.Fuel_Level >> 8);     //Get OBD_Battery Voltage
     Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.Fuel_Level & 0xFF);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = (Vehicle_Status_Lora_Packet.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.OBD_Battery_Temperature;     //Get Battery Temperature
-    Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.Car_Ambient_Temperature;     //Get Ambient Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.OBD_Battery_Temperature;     //Get Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Car_Ambient_Temperature;     //Get Ambient Temperature
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Vehicle_Status_Lora_Packet.BLE_Adv_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor >> 8);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor & 0xFF);     //Get Parking1 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor >> 8);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor & 0xFF);     //Get Parking2 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor >> 8);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor & 0xFF);     //Get Parking3 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor >> 8);     //Get Near Car1 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor & 0xFF);     //Get Near Car1 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor >> 8);     //Get Near Car2 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor & 0xFF);     //Get Near Car2 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor >> 8);     //Get Near Car3 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor & 0xFF);     //Get Near Car3 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     Lora_Packet_To_Send[Pos++] = Calculate_Lora_Frame_FCS(Lora_Packet_To_Send,Pos);   //Calculate FCS of all bytes
-    CheckIN_Packet_Sent_Count++;
     Send_Lora_Packet_To_Gateway(Lora_Packet_To_Send,Pos); 
 }
 
@@ -320,39 +307,34 @@
     //write code to read OBD data,temperature,beacon data
     uint8 Pos = 0,i;
     Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.Header;                  //Header of Lora Packet,0xFE
-    Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.Protocol_Version;      //MSB of Motion Packet Type
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Protocol_Version;      //MSB of Motion Packet Type
     if(OBD_PlugIN_State)
         Lora_Packet_To_Send[Pos++] = CHECK_IN_PACKET;      //Check detected. Set packet type to Checkout type
     else
         Lora_Packet_To_Send[Pos++] = CHECK_OUT_PACKET;      //Checkout detected. Set packet type to Checkout type
     for(i=0;i < 17;i++)
-        Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.VIN[i];           //Get OBD_ID
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.VIN[i];           //Get OBD_ID
     for(i=0;i < 3;i++)
-        Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.ODO_METER_READING[i];           //Get OBD_ID
-    Lora_Packet_To_Send[Pos++] = (CheckIN_Lora_Packet.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (CheckIN_Lora_Packet.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (CheckIN_Lora_Packet.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = (CheckIN_Lora_Packet.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.OBD_Battery_Temperature;     //Get Battery Temperature
-    Lora_Packet_To_Send[Pos++] = CheckIN_Lora_Packet.Car_Ambient_Temperature;     //Get Ambient Temperature
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.ODO_METER_READING[i];           //Get OBD_ID
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.OBD_Battery_Temperature;     //Get Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Car_Ambient_Temperature;     //Get Ambient Temperature
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor >> 8);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor & 0xFF);     //Get Parking1 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor >> 8);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor & 0xFF);     //Get Parking2 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor >> 8);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor & 0xFF);     //Get Parking3 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     Lora_Packet_To_Send[Pos++] = Calculate_Lora_Frame_FCS(Lora_Packet_To_Send,Pos);   //Calculate FCS of all bytes
     CheckIN_Packet_Sent_Count++;
     Send_Lora_Packet_To_Gateway(Lora_Packet_To_Send,Pos); 
+    pc2.printf("CheckIN Packet Sent");
 }
 
 
@@ -362,36 +344,23 @@
     //write code to read OBD data,temperature,beacon data
     uint8 Pos = 0,i;
     Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.Header;                  //Header of Lora Packet,0xFE
-    Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.Protocol_Version;      //MSB of Motion Packet Type
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Protocol_Version;      //MSB of Motion Packet Type
     Lora_Packet_To_Send[Pos++] = CHECK_OUT_PACKET;      //Checkout detected. Set packet type to Checkout type
     for(i=0;i < 17;i++)
-        Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.VIN[i];           //Get OBD_ID
-    for(i=0;i < 3;i++)
-        Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.ODO_METER_READING[i];           //Get OBD_ID
-    Lora_Packet_To_Send[Pos++] = (CheckOUT_Packet.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (CheckOUT_Packet.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
-    Lora_Packet_To_Send[Pos++] = (CheckOUT_Packet.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = (CheckOUT_Packet.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
-    Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.OBD_Battery_Temperature;     //Get Battery Temperature
-    Lora_Packet_To_Send[Pos++] = CheckOUT_Packet.Car_Ambient_Temperature;     //Get Ambient Temperature
-    for(i=0;i<6;i++)
-        Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor >> 8);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor & 0xFF);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
-    for(i=0;i<6;i++)
-        Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor >> 8);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor & 0xFF);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
-    for(i=0;i<6;i++)
-        Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor >> 8);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor & 0xFF);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.VIN[i];           //Get OBD_ID
+    for(i=0;i < 3;i++) 
+        Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.ODO_METER_READING[i];           //Get OBD_ID
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage >> 8);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.OBD_Battery_Voltage & 0xFF);     //Get OBD_Battery Voltage
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage >> 8); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = (Misc_Packet_Data.Car_Battery_Voltage & 0xFF); //Get Vehicle_Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.OBD_Battery_Temperature;     //Get Battery Temperature
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Car_Ambient_Temperature;     //Get Ambient Temperature
     Lora_Packet_To_Send[Pos++] = Calculate_Lora_Frame_FCS(Lora_Packet_To_Send,Pos);   //Calculate FCS of all bytes
     CheckIN_Packet_Sent_Count++;
     Send_Lora_Packet_To_Gateway(Lora_Packet_To_Send,Pos); 
+    pc2.printf("CheckOUT Packet Sent");
+    
 }
 
 //Motion packets sending should be started when vehicle acceleration changes like when it starts moving,stops moving and gets sudden jurk in case of theft.
@@ -401,53 +370,35 @@
     //write code to read accelerometer data,temperature,beacon data
     uint8 Pos = 0,i;
     Lora_Packet_To_Send[Pos++] = Motion_Lora_Packet.Header;                  //Header of Lora Packet,0xFE
-    Lora_Packet_To_Send[Pos++] = (Motion_Lora_Packet.Packet_Type >> 8);      //MSB of Motion Packet Type
+    Lora_Packet_To_Send[Pos++] = Misc_Packet_Data.Protocol_Version;          //Protocol Version
     Lora_Packet_To_Send[Pos++] = (Motion_Lora_Packet.Packet_Type & 0xFF);         //LSB of Motion Packet Type
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor >> 8);     //Get Parking1 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking1_Beacon_Minor & 0xFF);     //Get Parking1 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor >> 8);     //Get Parking2 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking2_Beacon_Minor & 0xFF);     //Get Parking2 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor >> 8);     //Get Parking3 Minor
-    Lora_Packet_To_Send[Pos++] = (Fixed_Beacon_Packet.Parking3_Beacon_Minor & 0xFF);     //Get Parking3 Minor
     Lora_Packet_To_Send[Pos++] = Fixed_Beacon_Packet.Parking3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor >> 8);     //Get Near_Car1 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor & 0xFF);     //Get Near_Car1 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor >> 8);     //Get Near_Car2 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor & 0xFF);     //Get Near_Car2 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor >> 8);     //Get Near_Car3 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor & 0xFF);     //Get Near_Car3 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     Lora_Packet_To_Send[Pos++] = Motion_Lora_Packet.Acceleration_Type;       //get Type of Acceleration
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_ID[i];       //Get Beacon_ID of 1st nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor >> 8);     //Get Near Car1 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car1_Beacon_Minor & 0xFF);     //Get Near Car1 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car1_Beacon_Signal_Strength; //Get Signal Strength of 1st nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_ID[i];       //Get Beacon_ID of 2nd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor >> 8);     //Get Near Car2 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car2_Beacon_Minor & 0xFF);     //Get Near Car2 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car2_Beacon_Signal_Strength; //Get Signal Strength of 2nd nearby Beacon Device
     for(i=0;i<6;i++)
         Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_ID[i];       //Get Beacon_ID of 3rd nearby Beacon Device
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor >> 8);     //Get Near Car3 Minor
-    Lora_Packet_To_Send[Pos++] = (Near_Car_Beacon_Packet.Near_Car3_Beacon_Minor & 0xFF);     //Get Near Car3 Minor
     Lora_Packet_To_Send[Pos++] = Near_Car_Beacon_Packet.Near_Car3_Beacon_Signal_Strength; //Get Signal Strength of 3rd nearby Beacon Device
     Lora_Packet_To_Send[Pos++] = Calculate_Lora_Frame_FCS(Lora_Packet_To_Send,Pos);   //Calculate FCS of all bytes
     Motion_Packet_Sent_Count++;
@@ -511,11 +462,7 @@
 {
     uint8 i=0;
     LORA_Module_UART.printf("%s",Send_Lora_Packet);//write to serial port for sending through lora module
-    for(i=0;i<Length;i++)
-    {
-        LORA_Module_UART.putc(Command_To_Send[i]);//write to serial port for sending through lora module
-        pc2.putc(Command_To_Send[i]);
-    }
+    LORA_Module_UART.printf("%s",Command_To_Send);
     LORA_Module_UART.printf("\r");
 }