mirror of
https://github.com/nasa/fprime.git
synced 2025-12-11 13:54:34 -06:00
80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
/*
|
|
* LogAssert.cpp
|
|
*
|
|
* Created on: Sep 9, 2016
|
|
* Author: tcanham
|
|
* Note: this file was originally a log assert file, under Fw::Types. It now made generic
|
|
* to log asserts to Fw::Logger
|
|
*/
|
|
|
|
#include <Fw/Logger/LogAssert.hpp>
|
|
#include <Fw/Logger/Logger.hpp>
|
|
|
|
#if FW_ASSERT_LEVEL == FW_NO_ASSERT
|
|
|
|
#else
|
|
|
|
#if FW_ASSERT_LEVEL == FW_FILEID_ASSERT
|
|
#define fileIdFs "Assert file ID %d: Line: %d "
|
|
#define ASSERT_CAST static_cast<POINTER_CAST>
|
|
#else
|
|
#define fileIdFs "Assert file \"%s\": Line: %d "
|
|
#define ASSERT_CAST reinterpret_cast<POINTER_CAST>
|
|
#endif
|
|
|
|
|
|
namespace Fw {
|
|
|
|
LogAssertHook::LogAssertHook() {
|
|
|
|
}
|
|
|
|
LogAssertHook::~LogAssertHook() {
|
|
}
|
|
|
|
void LogAssertHook::reportAssert(
|
|
FILE_NAME_ARG file,
|
|
NATIVE_UINT_TYPE lineNo,
|
|
NATIVE_UINT_TYPE numArgs,
|
|
AssertArg arg1,
|
|
AssertArg arg2,
|
|
AssertArg arg3,
|
|
AssertArg arg4,
|
|
AssertArg arg5,
|
|
AssertArg arg6
|
|
) {
|
|
// Assumption is that file (when string) goes back to static macro in the code and will persist
|
|
switch (numArgs) {
|
|
case 0:
|
|
Fw::Logger::logMsg(fileIdFs,ASSERT_CAST(file),lineNo,0,0,0,0);
|
|
break;
|
|
case 1:
|
|
Fw::Logger::logMsg(fileIdFs " %d\n",ASSERT_CAST(file),lineNo,arg1,0,0,0);
|
|
break;
|
|
case 2:
|
|
Fw::Logger::logMsg(fileIdFs " %d %d\n",ASSERT_CAST(file),lineNo,arg1,arg2,0,0);
|
|
break;
|
|
case 3:
|
|
Fw::Logger::logMsg(fileIdFs " %d %d %d\n",ASSERT_CAST(file),lineNo,arg1,arg2,arg3,0);
|
|
break;
|
|
case 4:
|
|
Fw::Logger::logMsg(fileIdFs " %d %d %d %d\n",ASSERT_CAST(file),lineNo,arg1,arg2,arg3,arg4);
|
|
break;
|
|
default: // can't fit remainder of arguments in log message
|
|
Fw::Logger::logMsg(fileIdFs " %d %d %d %d +\n",ASSERT_CAST(file),lineNo,arg1,arg2,arg3,arg4);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
void LogAssertHook::printAssert(const CHAR* msg) {
|
|
// do nothing since reportAssert() sends message
|
|
}
|
|
|
|
void LogAssertHook::doAssert() {
|
|
}
|
|
|
|
} // namespace Fw
|
|
|
|
#endif
|