3rd Repo, trying to figure this out.

Dependencies:   LPS25H hts221

Fork of SOFT253_Template_Weather_OS_54 by Stage-1 Students SoCEM

Committer:
aburch1
Date:
Wed Apr 26 10:00:19 2017 +0000
Revision:
76:ee1f132e5744
Parent:
75:b44645bbf2d2
Child:
77:db3384071634
Started using char arrays for strings instead of stringstream objects

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aburch1 74:749727490f44 1 #include "MessageLogger.h"
aburch1 74:749727490f44 2
aburch1 75:b44645bbf2d2 3 #define SIGNAL_printMessage 2
aburch1 75:b44645bbf2d2 4
aburch1 76:ee1f132e5744 5 Mail<string, 16> message_mail;
aburch1 74:749727490f44 6
aburch1 74:749727490f44 7 // constructor
aburch1 75:b44645bbf2d2 8 MessageLogger::MessageLogger()
aburch1 74:749727490f44 9 {
aburch1 75:b44645bbf2d2 10 hasError = false;
aburch1 75:b44645bbf2d2 11 messageCount = 0;
aburch1 75:b44645bbf2d2 12 }
aburch1 75:b44645bbf2d2 13
aburch1 75:b44645bbf2d2 14 void MessageLogger::SetThread(Thread* logger)
aburch1 75:b44645bbf2d2 15 {
aburch1 75:b44645bbf2d2 16 loggingThread = logger;
aburch1 74:749727490f44 17 }
aburch1 74:749727490f44 18
aburch1 74:749727490f44 19 // public methods:
aburch1 76:ee1f132e5744 20 void MessageLogger::SendError(char* errorMessage)
aburch1 74:749727490f44 21 {
aburch1 76:ee1f132e5744 22 fatalError = strcat(errorMessage, "\n\rTerminating Program...\n\r");
aburch1 75:b44645bbf2d2 23 loggingThread->signal_set(SIGNAL_printMessage);
aburch1 75:b44645bbf2d2 24 hasError = true;
aburch1 74:749727490f44 25 }
aburch1 75:b44645bbf2d2 26
aburch1 76:ee1f132e5744 27
aburch1 76:ee1f132e5744 28
aburch1 76:ee1f132e5744 29 void MessageLogger::SendMessage(char* message)
aburch1 74:749727490f44 30 {
aburch1 76:ee1f132e5744 31 //string messageObj;
aburch1 76:ee1f132e5744 32 //*messageObj = message_mail.alloc();
aburch1 76:ee1f132e5744 33 //strcpy(&messageObj, message_mail.alloc());
aburch1 76:ee1f132e5744 34 /*
aburch1 75:b44645bbf2d2 35 if (messageObj == NULL)
aburch1 75:b44645bbf2d2 36 {
aburch1 75:b44645bbf2d2 37 SendError("ERROR: Message queue is full.");
aburch1 75:b44645bbf2d2 38 return;
aburch1 75:b44645bbf2d2 39 }
aburch1 76:ee1f132e5744 40 */
aburch1 76:ee1f132e5744 41 //strcpy(messageObj, message);
aburch1 75:b44645bbf2d2 42
aburch1 75:b44645bbf2d2 43 //stat = message_mail.put(messageObj);
aburch1 75:b44645bbf2d2 44
aburch1 76:ee1f132e5744 45 /*
aburch1 75:b44645bbf2d2 46 //Check if succesful
aburch1 75:b44645bbf2d2 47 if (stat == osErrorResource)
aburch1 75:b44645bbf2d2 48 {
aburch1 75:b44645bbf2d2 49 message_mail.free(messageObj);
aburch1 76:ee1f132e5744 50 char error[50];
aburch1 76:ee1f132e5744 51 strcat(error, "ERROR CODE: ", evt.status);
aburch1 76:ee1f132e5744 52 strcat(error, ", Failed to add message to queue");
aburch1 76:ee1f132e5744 53 SendError(error);
aburch1 75:b44645bbf2d2 54 return;
aburch1 75:b44645bbf2d2 55 }
aburch1 75:b44645bbf2d2 56 */
aburch1 76:ee1f132e5744 57 //messageCount++;
aburch1 76:ee1f132e5744 58 //loggingThread->signal_set(SIGNAL_printMessage);
aburch1 74:749727490f44 59 }
aburch1 75:b44645bbf2d2 60
aburch1 74:749727490f44 61 bool MessageLogger::GetError()
aburch1 74:749727490f44 62 {
aburch1 75:b44645bbf2d2 63 if(hasError)
aburch1 75:b44645bbf2d2 64 {
aburch1 75:b44645bbf2d2 65 PrintError();
aburch1 75:b44645bbf2d2 66 return true;
aburch1 75:b44645bbf2d2 67 }
aburch1 75:b44645bbf2d2 68 return false;
aburch1 74:749727490f44 69 }
aburch1 74:749727490f44 70 bool MessageLogger::GetMessage()
aburch1 74:749727490f44 71 {
aburch1 76:ee1f132e5744 72 /*
aburch1 75:b44645bbf2d2 73 if(messageCount > 0)
aburch1 75:b44645bbf2d2 74 {
aburch1 75:b44645bbf2d2 75 PrintMessage();
aburch1 75:b44645bbf2d2 76 return true;
aburch1 75:b44645bbf2d2 77 }
aburch1 76:ee1f132e5744 78 return false;
aburch1 76:ee1f132e5744 79 */
aburch1 74:749727490f44 80 }
aburch1 74:749727490f44 81
aburch1 74:749727490f44 82 void MessageLogger::PrintError()
aburch1 74:749727490f44 83 {
aburch1 76:ee1f132e5744 84 printf(fatalError);
aburch1 74:749727490f44 85 }
aburch1 75:b44645bbf2d2 86
aburch1 74:749727490f44 87 void MessageLogger::PrintMessage()
aburch1 74:749727490f44 88 {
aburch1 76:ee1f132e5744 89 /*
aburch1 75:b44645bbf2d2 90 osEvent evt = message_mail.get();
aburch1 74:749727490f44 91
aburch1 75:b44645bbf2d2 92 //Check status
aburch1 75:b44645bbf2d2 93 if (evt.status == osEventMail)
aburch1 75:b44645bbf2d2 94 {
aburch1 76:ee1f132e5744 95 char* message = (char*)evt.value.p;
aburch1 75:b44645bbf2d2 96
aburch1 76:ee1f132e5744 97 printf(message);
aburch1 75:b44645bbf2d2 98
aburch1 75:b44645bbf2d2 99 message_mail.free(message);
aburch1 75:b44645bbf2d2 100 messageCount--;
aburch1 75:b44645bbf2d2 101 }
aburch1 75:b44645bbf2d2 102 else
aburch1 75:b44645bbf2d2 103 {
aburch1 76:ee1f132e5744 104 char* error;
aburch1 76:ee1f132e5744 105 strcat(error, "ERROR CODE: ", evt.status);
aburch1 76:ee1f132e5744 106 strcat(error, ", Failed to retrieve message from queue");
aburch1 76:ee1f132e5744 107 SendError(error);
aburch1 75:b44645bbf2d2 108 }
aburch1 75:b44645bbf2d2 109 */
aburch1 74:749727490f44 110 }