![](/media/cache/profiles/ba5be68d3d541f2ca043d77fc54fe702.jpg.50x50_q85.jpg)
3rd Repo, trying to figure this out.
Fork of SOFT253_Template_Weather_OS_54 by
Diff: MessageLogger/MessageLogger.cpp
- Revision:
- 77:db3384071634
- Parent:
- 76:ee1f132e5744
- Child:
- 78:6c2b8ade8414
- Child:
- 79:4e6b53eb678b
diff -r ee1f132e5744 -r db3384071634 MessageLogger/MessageLogger.cpp --- a/MessageLogger/MessageLogger.cpp Wed Apr 26 10:00:19 2017 +0000 +++ b/MessageLogger/MessageLogger.cpp Wed Apr 26 21:58:08 2017 +0000 @@ -17,45 +17,39 @@ } // public methods: - void MessageLogger::SendError(char* errorMessage) + void MessageLogger::SendError(string errorMessage) { - fatalError = strcat(errorMessage, "\n\rTerminating Program...\n\r"); + fatalError << errorMessage <<"\n\rTerminating Program...\n\r"; loggingThread->signal_set(SIGNAL_printMessage); hasError = true; } - - - void MessageLogger::SendMessage(char* message) + void MessageLogger::SendMessage(string message) { - //string messageObj; - //*messageObj = message_mail.alloc(); - //strcpy(&messageObj, message_mail.alloc()); - /* + string *messageObj = message_mail.alloc(); + if (messageObj == NULL) { SendError("ERROR: Message queue is full."); return; } - */ - //strcpy(messageObj, message); + + (*messageObj) = message; - //stat = message_mail.put(messageObj); + stat = message_mail.put(messageObj); - /* //Check if succesful if (stat == osErrorResource) { message_mail.free(messageObj); - char error[50]; - strcat(error, "ERROR CODE: ", evt.status); - strcat(error, ", Failed to add message to queue"); - SendError(error); + ostringstream error; + error << "ERROR CODE: " << stat << ", Failed to retrieve message from queue"; + SendError(error.str()); return; } - */ - //messageCount++; - //loggingThread->signal_set(SIGNAL_printMessage); + + messageCount++; + loggingThread->signal_set(SIGNAL_printMessage); } bool MessageLogger::GetError() @@ -69,42 +63,39 @@ } bool MessageLogger::GetMessage() { - /* if(messageCount > 0) { PrintMessage(); return true; } - return false; - */ + return false; } void MessageLogger::PrintError() { - printf(fatalError); + printf("%s", fatalError.str()); } void MessageLogger::PrintMessage() { - /* osEvent evt = message_mail.get(); //Check status if (evt.status == osEventMail) { - char* message = (char*)evt.value.p; + string *message = (string*)evt.value.p; - printf(message); + // Ask about cout as everyone on the internet recommends it as a type safe version of printf. + //std::cout << message; + printf("%s", (*message)); message_mail.free(message); messageCount--; } else { - char* error; - strcat(error, "ERROR CODE: ", evt.status); - strcat(error, ", Failed to retrieve message from queue"); - SendError(error); + ostringstream error; + error << "ERROR CODE: " << evt.status << ", Failed to retrieve message from queue"; + SendError(error.str()); } - */ } \ No newline at end of file