3rd Repo, trying to figure this out.
Fork of SOFT253_Template_Weather_OS_54 by
Diff: MessageLogger/MessageLogger.cpp
- Revision:
- 76:ee1f132e5744
- Parent:
- 75:b44645bbf2d2
- Child:
- 77:db3384071634
diff -r b44645bbf2d2 -r ee1f132e5744 MessageLogger/MessageLogger.cpp --- a/MessageLogger/MessageLogger.cpp Tue Apr 25 16:06:35 2017 +0000 +++ b/MessageLogger/MessageLogger.cpp Wed Apr 26 10:00:19 2017 +0000 @@ -2,6 +2,7 @@ #define SIGNAL_printMessage 2 +Mail<string, 16> message_mail; // constructor MessageLogger::MessageLogger() @@ -16,42 +17,45 @@ } // public methods: - void MessageLogger::SendError(string errorMessage) + void MessageLogger::SendError(char* errorMessage) { - fatalError << errorMessage << " Terminating program\n\r"; + fatalError = strcat(errorMessage, "\n\rTerminating Program...\n\r"); loggingThread->signal_set(SIGNAL_printMessage); hasError = true; } - void MessageLogger::SendMessage(string message) + + + void MessageLogger::SendMessage(char* message) { - /* - ostringstream *messageObj = message_mail.alloc(); - ostringstream temp = *messageObj; - + //string messageObj; + //*messageObj = message_mail.alloc(); + //strcpy(&messageObj, message_mail.alloc()); + /* if (messageObj == NULL) { SendError("ERROR: Message queue is full."); return; } - - temp << message; + */ + //strcpy(messageObj, message); //stat = message_mail.put(messageObj); + /* //Check if succesful if (stat == osErrorResource) { - ostringstream error; - error << "ERROR CODE: " << stat << ", Failed to add message to the queue.\r\n"; - SendError(error.str()); message_mail.free(messageObj); + char error[50]; + strcat(error, "ERROR CODE: ", evt.status); + strcat(error, ", Failed to add message to queue"); + SendError(error); return; } - - messageCount++; - loggingThread->signal_set(SIGNAL_printMessage); */ + //messageCount++; + //loggingThread->signal_set(SIGNAL_printMessage); } bool MessageLogger::GetError() @@ -65,40 +69,42 @@ } bool MessageLogger::GetMessage() { + /* if(messageCount > 0) { PrintMessage(); return true; } - return false; + return false; + */ } void MessageLogger::PrintError() { - printf(fatalError.str().c_str()); + printf(fatalError); } void MessageLogger::PrintMessage() { + /* osEvent evt = message_mail.get(); //Check status if (evt.status == osEventMail) { - ostringstream *message = (ostringstream*)evt.value.p; + char* message = (char*)evt.value.p; - printf("Incoming!"); - printf(message->str().c_str()); + printf(message); message_mail.free(message); messageCount--; } - /* else { - ostringstream error; - error << "ERROR CODE: " << evt.status << ", Failed to retrieve message from queue/n/r"; - SendError(error.str()); + char* error; + strcat(error, "ERROR CODE: ", evt.status); + strcat(error, ", Failed to retrieve message from queue"); + SendError(error); } */ } \ No newline at end of file