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 "mbed.h"
NarendraSingh 7:22c4d2681cc9 2 #include "Common_Defs.h"
NarendraSingh 7:22c4d2681cc9 3
NarendraSingh 7:22c4d2681cc9 4 // mDOT AT COMMANDS DEFINITIONS
NarendraSingh 7:22c4d2681cc9 5 #define ENABLED 1
NarendraSingh 7:22c4d2681cc9 6 #define Disabled 0
NarendraSingh 7:22c4d2681cc9 7 #define NWK_PARA_HEX 0
NarendraSingh 7:22c4d2681cc9 8 #define NWK_PARA_STRING 1
NarendraSingh 7:22c4d2681cc9 9 #define LORA_UART_RX_Size 2000//Buffer for receiving Lora responses
NarendraSingh 7:22c4d2681cc9 10
NarendraSingh 7:22c4d2681cc9 11 #define LORA_PACKET_HEADER 0xFE //Lora Header,SOF,Every packet sent starts with 0xFE
NarendraSingh 7:22c4d2681cc9 12
NarendraSingh 7:22c4d2681cc9 13 #define HEART_BEAT_PACKET_CMD 0x01 //MSB,HeartBeat Identification Packet
NarendraSingh 7:22c4d2681cc9 14 #define CHECKIN_PACKET_CMD 0x02 //MSB,CheckIn Identification Packet
NarendraSingh 7:22c4d2681cc9 15 #define CHECKOUT_PACKET_CMD 0x03 //MSB,CheckIn Identification Packet
NarendraSingh 7:22c4d2681cc9 16 #define MOTION_PACKET_CMD 0x04 //MSB,Motion Identification Packet
NarendraSingh 7:22c4d2681cc9 17 #define STATUS_PACKET_CMD 0x05 //MSB,Status Packet
NarendraSingh 7:22c4d2681cc9 18 #define NEW_DEV_PACKET_CMD 0x06 //MSB,New Device Identification Packet
NarendraSingh 7:22c4d2681cc9 19
NarendraSingh 7:22c4d2681cc9 20
NarendraSingh 7:22c4d2681cc9 21 //Lora Frequency SubBand
NarendraSingh 7:22c4d2681cc9 22 #define FREQUENCY_SUB_BAND_CHANNEL0 0
NarendraSingh 7:22c4d2681cc9 23 #define FREQUENCY_SUB_BAND_CHANNEL1 1
NarendraSingh 7:22c4d2681cc9 24 #define FREQUENCY_SUB_BAND_CHANNEL2 2
NarendraSingh 7:22c4d2681cc9 25 #define FREQUENCY_SUB_BAND_CHANNEL3 3
NarendraSingh 7:22c4d2681cc9 26 #define FREQUENCY_SUB_BAND_CHANNEL4 4
NarendraSingh 7:22c4d2681cc9 27 #define FREQUENCY_SUB_BAND_CHANNEL5 5
NarendraSingh 7:22c4d2681cc9 28 #define FREQUENCY_SUB_BAND_CHANNEL6 6
NarendraSingh 7:22c4d2681cc9 29 #define FREQUENCY_SUB_BAND_CHANNEL7 7
NarendraSingh 7:22c4d2681cc9 30 #define FREQUENCY_SUB_BAND_CHANNEL8 8
NarendraSingh 7:22c4d2681cc9 31
NarendraSingh 7:22c4d2681cc9 32 #define HEX_PARAMETER 0
NarendraSingh 7:22c4d2681cc9 33 #define STRING_PARAMETER 1
NarendraSingh 7:22c4d2681cc9 34
NarendraSingh 7:22c4d2681cc9 35 //Network Join Status
NarendraSingh 7:22c4d2681cc9 36 #define NETWORK_STATUS_JOINED 1
NarendraSingh 7:22c4d2681cc9 37 #define NETWORK_STATUS_NOT_JOINED 0
NarendraSingh 7:22c4d2681cc9 38
NarendraSingh 7:22c4d2681cc9 39 //Netwrork Join Retries Definitions
NarendraSingh 7:22c4d2681cc9 40 #define NETWORK_JOIN_RETRIES_Disable 0
NarendraSingh 7:22c4d2681cc9 41 #define NETWORK_JOIN_RETRIES_1 1
NarendraSingh 7:22c4d2681cc9 42 #define NETWORK_JOIN_RETRIES_2 2
NarendraSingh 7:22c4d2681cc9 43 #define NETWORK_JOIN_RETRIES_3 3
NarendraSingh 7:22c4d2681cc9 44 #define NETWORK_JOIN_RETRIES_4 4
NarendraSingh 7:22c4d2681cc9 45
NarendraSingh 7:22c4d2681cc9 46 #define HEARTBEAT_TYPE_PACKET 0x01
NarendraSingh 7:22c4d2681cc9 47 #define MOTION_TYPE_PACKET 0x02
NarendraSingh 7:22c4d2681cc9 48 #define CHECKIN_TYPE_PACKET 0x03
NarendraSingh 7:22c4d2681cc9 49 #define STATUS_TYPE_PACKET 0x04
NarendraSingh 7:22c4d2681cc9 50
NarendraSingh 7:22c4d2681cc9 51
NarendraSingh 7:22c4d2681cc9 52 extern uint8 Packet_Type_To_Send; //By Default Heart Beat PAckets should be sent
NarendraSingh 7:22c4d2681cc9 53
NarendraSingh 7:22c4d2681cc9 54
NarendraSingh 7:22c4d2681cc9 55 struct Fixed_Beacon
NarendraSingh 7:22c4d2681cc9 56 {
NarendraSingh 7:22c4d2681cc9 57 uint8 Parking1_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 58 uint8 Parking1_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 59 uint8 Parking2_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 60 uint8 Parking2_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 61 uint8 Parking3_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 62 uint8 Parking3_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 63 };
NarendraSingh 7:22c4d2681cc9 64
NarendraSingh 7:22c4d2681cc9 65 struct Near_Car_Beacon
NarendraSingh 7:22c4d2681cc9 66 {
NarendraSingh 7:22c4d2681cc9 67 uint8 Near_Car1_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 68 uint8 Near_Car1_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 69 uint8 Near_Car2_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 70 uint8 Near_Car2_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 71 uint8 Near_Car3_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 72 uint8 Near_Car3_Beacon_Signal_Strength;
NarendraSingh 7:22c4d2681cc9 73 };
NarendraSingh 7:22c4d2681cc9 74
NarendraSingh 7:22c4d2681cc9 75 struct Misc_Packets
NarendraSingh 7:22c4d2681cc9 76 {
NarendraSingh 7:22c4d2681cc9 77 uint8 Header;
NarendraSingh 7:22c4d2681cc9 78 uint8 Protocol_Version;
NarendraSingh 7:22c4d2681cc9 79 uint16 OBD_Battery_Voltage;
NarendraSingh 7:22c4d2681cc9 80 uint16 Car_Battery_Voltage;
NarendraSingh 7:22c4d2681cc9 81 uint8 OBD_Battery_Temperature;
NarendraSingh 7:22c4d2681cc9 82 uint8 Car_Ambient_Temperature;
NarendraSingh 7:22c4d2681cc9 83 uint8 VIN[17]; //Vehicle Identification Number
NarendraSingh 7:22c4d2681cc9 84 uint8 ODO_METER_READING[3];
NarendraSingh 7:22c4d2681cc9 85 };
NarendraSingh 7:22c4d2681cc9 86
NarendraSingh 7:22c4d2681cc9 87 struct Heart_Beat_PacketType
NarendraSingh 7:22c4d2681cc9 88 {
NarendraSingh 7:22c4d2681cc9 89 Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 90 uint8 Packet_Type;
NarendraSingh 7:22c4d2681cc9 91 Fixed_Beacon Fixed_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 92 uint8 Sequence_No;
NarendraSingh 7:22c4d2681cc9 93 uint8 FCS;
NarendraSingh 7:22c4d2681cc9 94 };
NarendraSingh 7:22c4d2681cc9 95
NarendraSingh 7:22c4d2681cc9 96 struct Vehicle_Status_PacketType
NarendraSingh 7:22c4d2681cc9 97 {
NarendraSingh 7:22c4d2681cc9 98 Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 99 uint8 Packet_Type;
NarendraSingh 7:22c4d2681cc9 100 uint16 Fuel_Level;
NarendraSingh 7:22c4d2681cc9 101 uint8 BLE_Adv_Beacon_ID[6];
NarendraSingh 7:22c4d2681cc9 102 Fixed_Beacon Fixed_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 103 Near_Car_Beacon Near_Car_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 104 uint8 Sequence_No;
NarendraSingh 7:22c4d2681cc9 105 uint8 FCS;
NarendraSingh 7:22c4d2681cc9 106 };
NarendraSingh 7:22c4d2681cc9 107
NarendraSingh 7:22c4d2681cc9 108 struct CheckIN_PacketType
NarendraSingh 7:22c4d2681cc9 109 {
NarendraSingh 7:22c4d2681cc9 110 Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 111 uint8 Packet_Type;
NarendraSingh 7:22c4d2681cc9 112 uint8 DTC[5]; //Diagnostic trouble code
NarendraSingh 7:22c4d2681cc9 113 Fixed_Beacon Fixed_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 114 uint8 Sequence_No;
NarendraSingh 7:22c4d2681cc9 115 uint8 FCS;
NarendraSingh 7:22c4d2681cc9 116 };
NarendraSingh 7:22c4d2681cc9 117
NarendraSingh 7:22c4d2681cc9 118 struct CheckOUT_PacketType
NarendraSingh 7:22c4d2681cc9 119 {
NarendraSingh 7:22c4d2681cc9 120 Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 121 uint8 Packet_Type;
NarendraSingh 7:22c4d2681cc9 122 uint8 Sequence_No;
NarendraSingh 7:22c4d2681cc9 123 uint8 FCS;
NarendraSingh 7:22c4d2681cc9 124 };
NarendraSingh 7:22c4d2681cc9 125
NarendraSingh 7:22c4d2681cc9 126 struct Motion_PacketType
NarendraSingh 7:22c4d2681cc9 127 {
NarendraSingh 7:22c4d2681cc9 128 Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 129 uint8 Packet_Type;
NarendraSingh 7:22c4d2681cc9 130 Fixed_Beacon Fixed_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 131 Near_Car_Beacon Near_Car_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 132 uint8 Acceleration_Type;
NarendraSingh 7:22c4d2681cc9 133 uint8 Sequence_No;
NarendraSingh 7:22c4d2681cc9 134 uint8 FCS;
NarendraSingh 7:22c4d2681cc9 135 };
NarendraSingh 7:22c4d2681cc9 136
NarendraSingh 7:22c4d2681cc9 137
NarendraSingh 7:22c4d2681cc9 138 extern uint8 Send_Lora_Packet_Flag;
NarendraSingh 7:22c4d2681cc9 139 extern int Lora_RxBuffer_Crnt_Pos,Lora_RxBuffer_End_Pos; // must be volatile or the compiler may over-optimise.
NarendraSingh 7:22c4d2681cc9 140 extern int receivedDataCount;
NarendraSingh 7:22c4d2681cc9 141 extern char LORA_UART_RX_Buffer[LORA_UART_RX_Size];
NarendraSingh 7:22c4d2681cc9 142 extern int LORA_UART_RX_Crnt_Pos;
NarendraSingh 7:22c4d2681cc9 143 extern uint8 Lora_Command_Rcvd[100];
NarendraSingh 7:22c4d2681cc9 144 extern uint8 Lora_Cmd_Length;
NarendraSingh 7:22c4d2681cc9 145 extern uint8 AT_Response_Receive_Status;
NarendraSingh 7:22c4d2681cc9 146 extern uint8 Vehicle_Identification_Number[17]; //Unique Vehicle_Identification_Number, Read using OBD
NarendraSingh 7:22c4d2681cc9 147 extern uint8 Motion_Packet_Sent_Count;
NarendraSingh 7:22c4d2681cc9 148 extern uint8 CheckIN_Packet_Sent_Count;
NarendraSingh 7:22c4d2681cc9 149 extern uint8 Lora_Packet_To_Send[100];
NarendraSingh 7:22c4d2681cc9 150
NarendraSingh 7:22c4d2681cc9 151 extern uint8 OBD_Protocol_Version;
NarendraSingh 7:22c4d2681cc9 152 extern Heart_Beat_PacketType Heart_Beat_Lora_Packet; //Allocate Memory for HeartBeat Lora Packets
NarendraSingh 7:22c4d2681cc9 153 extern CheckIN_PacketType CheckIN_Lora_Packet; //Allocate Memory for CheckIN Lora Packets
NarendraSingh 7:22c4d2681cc9 154 extern Motion_PacketType Motion_Lora_Packet; //Allocate Memory for Movement Lora Packets
NarendraSingh 7:22c4d2681cc9 155 extern Vehicle_Status_PacketType Vehicle_Status_Lora_Packet; //Allocate Memory for Movement Lora Packets
NarendraSingh 7:22c4d2681cc9 156 extern Near_Car_Beacon Near_Car_Packet;
NarendraSingh 7:22c4d2681cc9 157 extern Fixed_Beacon Fixed_Beacon_Packet;
NarendraSingh 7:22c4d2681cc9 158 extern CheckOUT_PacketType CheckOUT_Packet;
NarendraSingh 7:22c4d2681cc9 159 extern Misc_Packets Misc_Packet_Data;
NarendraSingh 7:22c4d2681cc9 160
NarendraSingh 7:22c4d2681cc9 161 void Send_Lora_Packet_To_Gateway(uint8* Command_To_Send,uint8 Length);
NarendraSingh 7:22c4d2681cc9 162 extern void Flip_Lora_Packet_Sending();
NarendraSingh 7:22c4d2681cc9 163 extern void Lora_Periodic_Packet_Sending_thread(void const *arg);
NarendraSingh 7:22c4d2681cc9 164 void Initialize_lora_Packets();
NarendraSingh 7:22c4d2681cc9 165 static void Process_Received_Response(uint8 Response_Length);
NarendraSingh 7:22c4d2681cc9 166 void Read_Lora_END_Node_ID(uint8* Buffer,uint8 Start_Position,uint8 Response_Length);
NarendraSingh 7:22c4d2681cc9 167 //extern void Lora_Rcvd_Cmd_Processing_thread(void const *args);
NarendraSingh 7:22c4d2681cc9 168 void Get_Acceleration_Type(void);
NarendraSingh 7:22c4d2681cc9 169 void Send_Motion_Packet(void);
NarendraSingh 7:22c4d2681cc9 170 void Send_CheckIN_Packet(void);
NarendraSingh 7:22c4d2681cc9 171 void Send_CheckOUT_Packet(void);
NarendraSingh 7:22c4d2681cc9 172 void Send_HeartBeat_Packet(void);
NarendraSingh 7:22c4d2681cc9 173 void Send_Vehicle_Status_Packet(void);
NarendraSingh 7:22c4d2681cc9 174 extern uint8 Calculate_Lora_Frame_FCS(uint8* Packet_Data,uint8 Packet_Length);
NarendraSingh 7:22c4d2681cc9 175 extern void Set_Up_Lora_Network_Configuration(void);
NarendraSingh 7:22c4d2681cc9 176 extern void Get_Lora_Response(void);