Time: 17:33 Date: 10/12/2017 Description: Task 1,7,8 Currently Functioning

Dependencies:   BME280 BMP280 TextLCD

Working Repository

Committer:
thomasmorris
Date:
Tue Jan 09 12:19:12 2018 +0000
Revision:
50:3d61ca637399
Parent:
47:6d128e500875
Dynamic Dating Working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
thomasmorris 47:6d128e500875 1 #include "FIFO.hpp"
thomasmorris 47:6d128e500875 2
thomasmorris 47:6d128e500875 3 //vae
thomasmorris 47:6d128e500875 4 DATA Data_Active;//Current data sample
thomasmorris 47:6d128e500875 5 DATA Data_Buffer[mailsize];//Data buffer
thomasmorris 47:6d128e500875 6 int Data_Buffer_Write_Pointer;
thomasmorris 47:6d128e500875 7 int Write_To_Data_Buffer(DATA Data_Store, int Write_Pointer);
thomasmorris 47:6d128e500875 8 int Write_Pointer = 0;
thomasmorris 47:6d128e500875 9 Mutex Data_Buffer_Lock;
thomasmorris 47:6d128e500875 10
thomasmorris 47:6d128e500875 11 int Write_Data(DATA Data_Store, int Write_Pointer)//Writes data passed in to the array at address Write Pointer
thomasmorris 47:6d128e500875 12 {
thomasmorris 47:6d128e500875 13 Data_Buffer_Lock.lock();//Appling lock for critial section
thomasmorris 47:6d128e500875 14 Data_Buffer[Write_Pointer] = Data_Store;
thomasmorris 47:6d128e500875 15 if(Write_Pointer < mailsize - 1)//Checks if write pointer will be greater than mail size
thomasmorris 47:6d128e500875 16 {
thomasmorris 47:6d128e500875 17 Write_Pointer = Write_Pointer + 1;//Increment write pointer
thomasmorris 47:6d128e500875 18 }
thomasmorris 47:6d128e500875 19 else
thomasmorris 47:6d128e500875 20 {
thomasmorris 47:6d128e500875 21 Write_Pointer = 0;//Else set it to 0 thus a FIFO system
thomasmorris 47:6d128e500875 22 }
thomasmorris 47:6d128e500875 23 Data_Buffer_Lock.unlock();//Releasing lock for critial section
thomasmorris 47:6d128e500875 24 return Write_Pointer;//New address of Write pointer
thomasmorris 47:6d128e500875 25
thomasmorris 47:6d128e500875 26 }
thomasmorris 47:6d128e500875 27 DATA Read_Data(int Read_Pointer)
thomasmorris 47:6d128e500875 28 {
thomasmorris 47:6d128e500875 29 Data_Buffer_Lock.lock();//Appling lock for critial section
thomasmorris 47:6d128e500875 30 DATA Temp_Data = Data_Buffer[Read_Pointer];
thomasmorris 47:6d128e500875 31 Data_Buffer_Lock.unlock();//Releasing lock for critial section
thomasmorris 47:6d128e500875 32
thomasmorris 47:6d128e500875 33 return Temp_Data;
thomasmorris 47:6d128e500875 34 }
thomasmorris 47:6d128e500875 35 void Delete_Data(int Delete_Pointer)
thomasmorris 47:6d128e500875 36 {
thomasmorris 47:6d128e500875 37 Data_Buffer_Lock.lock();//Appling lock for critial section
thomasmorris 47:6d128e500875 38 Data_Buffer[Delete_Pointer].set_all_zero();
thomasmorris 47:6d128e500875 39 Data_Buffer_Lock.unlock();//Releasing lock for critial section
thomasmorris 47:6d128e500875 40 }