/* * LogCore.cpp * * Created on: 17 May 2016 * Author: wentzelc */ // redA Libraries #include "LogCore.h" // Standard C/C++ Libraries #include #include #include #include #include //--------------------------------------------------------------------------- // Global vars EDebugLevel DebugLevel = dlLow; char LogStr[1000]; // Temporary var to create log messages, globally available to save on memory operations //--------------------------------------------------------------------------- bool LogMessage( EDebugLevel Level, const char * Format, ... ) { va_list ArgPtr; // Validate values if (!Format || !*Format) return false; // Check debug level if (Level > DebugLevel) { return true; } // Show normal output va_start( ArgPtr, Format ); vprintf( Format, ArgPtr ); printf( "\r\n" ); va_end( ArgPtr ); return true; } //--------------------------------------------------------------------------- bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int Len, const char * Format, ... ) { va_list ArgPtr; // Validate values if (!Buffer || !(Show & (OUT_HEX | OUT_NORMAL))) return false; if (Len == -1) Len = strlen( Buffer ); // Check debug level if (Level > DebugLevel) { return true; } // Show Lead if (Format && *Format) { va_start( ArgPtr, Format ); vprintf( Format, ArgPtr ); va_end( ArgPtr ); } printf( "[%d] ", Len ); // Show Hex output if (Show & OUT_HEX) { for (int i=0; i 126)) { if ((Show & OUT_CRLF) && ((Buffer[i] == '\r') || (Buffer[i] == '\n'))) printf( "%c", Buffer[i] ); else printf( "." ); } else { printf( "%c", Buffer[i] ); } } } if (!(Show & (OUT_ASIS | OUT_CRLF)) || (Buffer[Len-1] != '\n')) { printf( "\n" ); } } return true; } //---------------------------------------------------------------------------