Finished project.

Dependencies:   X_NUCLEO_COMMON

Fork of ReferredCoursework2016 by Stage-1 Students SoCEM

Revision:
91:cd9fcd45ecf6
Parent:
90:38dfa3f350aa
--- a/buffer.cpp	Thu Aug 17 02:42:30 2017 +0000
+++ b/buffer.cpp	Thu Aug 17 06:58:29 2017 +0000
@@ -19,23 +19,25 @@
 int32_t averageY;
 int32_t averageZ;
 
+Mutex mutex2;
 //Pushes data on to buffer using modulo operation.
 void log_push(AccelData data) {
-
-  rear = (rear + 1) % 10;
+    mutex2.lock();
 
-  if (rear == front) {
-    front = (front + 1) % 10;
+    rear = (rear + 1) % 10;
+
+    if (rear == front) {
+     front = (front + 1) % 10;
   }
 
-  circular_buffer_array[rear] = data;
-
+    circular_buffer_array[rear] = data;
+     mutex2.unlock();
 }
 
 //Retrieves a single data struct using the argument to specify which.
 AccelData log_get(int index)
 {
-
+    
   AccelData record;
   record = circular_buffer_array[(front + index) % 10];
 
@@ -50,7 +52,7 @@
 void print_averages(){
 
     while(1){
-
+         mutex2.lock();
     for (int i = 0; i < 10; i++) {
 
       AccelData entry = log_get(i);
@@ -75,5 +77,6 @@
     sumX = 0;
     sumY = 0;
     sumZ = 0;
+    mutex2.unlock();
 }
 }