3rd Repo, trying to figure this out.

Dependencies:   LPS25H hts221

Fork of SOFT253_Template_Weather_OS_54 by Stage-1 Students SoCEM

Revision:
80:959151952153
Parent:
79:4e6b53eb678b
Child:
81:996c0a3319b4
--- a/MessageLogger/MessageLogger.cpp	Fri Apr 28 17:17:24 2017 +0000
+++ b/MessageLogger/MessageLogger.cpp	Wed May 10 10:02:22 2017 +0000
@@ -9,6 +9,7 @@
         {
             hasError = false;
             messageCount = 0;
+            messageLock = new Mutex();
         }
         
         void MessageLogger::SetThread(Thread* logger)
@@ -28,11 +29,13 @@
         
         void MessageLogger::SendMessage(string message)
         {
+             messageLock->lock();
              messageObj = message_mail.alloc();           
                         
             if (messageObj == NULL) 
             {
                SendError("ERROR: Message queue is full.");
+               messageLock->unlock();
                return;   
             }
             
@@ -47,11 +50,15 @@
                 ostringstream error;
                 error << "ERROR CODE: " << stat << ", Failed to retrieve message from queue";
                 SendError(error.str());
+                messageLock->unlock();
                 return;
             }
             
             messageCount++;
             loggingThread->signal_set(SIGNAL_printMessage);
+            
+            printf("\033[1A\n");
+            messageLock->unlock();
         }
         
         bool MessageLogger::GetError()
@@ -83,6 +90,7 @@
         
         void MessageLogger::PrintMessage()
         {
+            messageLock->lock();
             osEvent evt = message_mail.get();
             
             //Check status
@@ -92,7 +100,7 @@
                 
                 // Ask about cout as everyone on the internet recommends it as a type safe version of printf.
                 //std::cout << message; 
-                printf("%s\n\033[2A\n", (*message));
+                printf("%s\033[1A\n", (*message));
                 
                 message_mail.free(message);
                 messageCount--;
@@ -103,4 +111,6 @@
                 error << "ERROR CODE: " << evt.status << ", Failed to retrieve message from queue";
                 SendError(error.str());
             }  
+            
+            messageLock->unlock();
         }
\ No newline at end of file