3rd Repo, trying to figure this out.

Dependencies:   LPS25H hts221

Fork of SOFT253_Template_Weather_OS_54 by Stage-1 Students SoCEM

MessageLogger/MessageLogger.cpp

Committer:
aburch1
Date:
2017-04-26
Revision:
76:ee1f132e5744
Parent:
75:b44645bbf2d2
Child:
77:db3384071634

File content as of revision 76:ee1f132e5744:

#include "MessageLogger.h"

#define SIGNAL_printMessage 2

Mail<string, 16> message_mail;

        // constructor
        MessageLogger::MessageLogger()
        {
            hasError = false;
            messageCount = 0;
        }
        
        void MessageLogger::SetThread(Thread* logger)
        {
            loggingThread = logger;           
        }
       
        // public methods:
        void MessageLogger::SendError(char* errorMessage)
        {
            fatalError = strcat(errorMessage, "\n\rTerminating Program...\n\r");
            loggingThread->signal_set(SIGNAL_printMessage);
            hasError = true;
        }
        
        
        
        void MessageLogger::SendMessage(char* message)
        {
            //string messageObj;
            //*messageObj = message_mail.alloc();
            //strcpy(&messageObj, message_mail.alloc());            
                        /*
            if (messageObj == NULL) 
            {
               SendError("ERROR: Message queue is full.");
               return;   
            }
            */
            //strcpy(messageObj, message);
    
            //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); 
                return;
            }
            */
            //messageCount++;
            //loggingThread->signal_set(SIGNAL_printMessage);
        }
        
        bool MessageLogger::GetError()
        {
            if(hasError)
            {
                PrintError();
                return true;
            }
            return false;
        }
        bool MessageLogger::GetMessage()
        {
            /*
            if(messageCount > 0)
            {
                PrintMessage();
                return true;
            }
            return false;    
            */        
        }
        
        void MessageLogger::PrintError()
        {
            printf(fatalError);
        }
        
        void MessageLogger::PrintMessage()
        {
            /*
            osEvent evt = message_mail.get();
            
            //Check status
            if (evt.status == osEventMail) 
            {
                char* message = (char*)evt.value.p;   
                
                printf(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);
            }  
            */
        }