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

Dependencies:   BME280 BMP280 TextLCD

Working Repository

Revision:
47:6d128e500875
diff -r bd9e7e40b3f9 -r 6d128e500875 FIFO.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FIFO.cpp	Mon Jan 08 21:53:40 2018 +0000
@@ -0,0 +1,40 @@
+#include "FIFO.hpp"
+
+//vae
+DATA Data_Active;//Current data sample
+DATA Data_Buffer[mailsize];//Data buffer
+int Data_Buffer_Write_Pointer;
+int Write_To_Data_Buffer(DATA Data_Store, int Write_Pointer);
+int Write_Pointer = 0;
+Mutex Data_Buffer_Lock;
+
+int Write_Data(DATA Data_Store, int Write_Pointer)//Writes data passed in to the array at address Write Pointer
+{
+    Data_Buffer_Lock.lock();//Appling lock for critial section
+    Data_Buffer[Write_Pointer] = Data_Store;
+    if(Write_Pointer < mailsize - 1)//Checks if write pointer will be greater than mail size
+    {
+        Write_Pointer = Write_Pointer + 1;//Increment write pointer
+    }
+    else
+    {
+        Write_Pointer = 0;//Else set it to 0 thus a FIFO system   
+    }
+    Data_Buffer_Lock.unlock();//Releasing lock for critial section
+    return Write_Pointer;//New address of Write pointer
+    
+}
+DATA Read_Data(int Read_Pointer)
+{
+    Data_Buffer_Lock.lock();//Appling lock for critial section
+    DATA Temp_Data = Data_Buffer[Read_Pointer];
+    Data_Buffer_Lock.unlock();//Releasing lock for critial section
+    
+    return Temp_Data;
+}
+void Delete_Data(int Delete_Pointer)
+{
+    Data_Buffer_Lock.lock();//Appling lock for critial section
+    Data_Buffer[Delete_Pointer].set_all_zero();
+    Data_Buffer_Lock.unlock();//Releasing lock for critial section
+}
\ No newline at end of file