Library for LoRa communication using MultiTech MDOT. Not sure why it wants to republish this

Fork of libmDot by MultiTech

Committer:
Mike Fiore
Date:
Tue Mar 29 10:18:28 2016 -0500
Revision:
11:9938ba31d428
Parent:
9:ebf682e616d0
update to version 1.0.7 of mDot library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:9f30fbe9e9c1 1 #ifndef MTSLOG_H
Mike Fiore 1:9f30fbe9e9c1 2 #define MTSLOG_H
Mike Fiore 1:9f30fbe9e9c1 3
Mike Fiore 11:9938ba31d428 4 #include <string>
Mike Fiore 11:9938ba31d428 5
Mike Fiore 11:9938ba31d428 6 inline const char* className(const std::string& prettyFunction)
Mike Fiore 11:9938ba31d428 7 {
Mike Fiore 11:9938ba31d428 8 size_t colons = prettyFunction.find_last_of("::");
Mike Fiore 11:9938ba31d428 9 if (colons == std::string::npos)
Mike Fiore 11:9938ba31d428 10 return "";
Mike Fiore 11:9938ba31d428 11 size_t begin = prettyFunction.substr(0,colons).rfind(" ") + 1;
Mike Fiore 11:9938ba31d428 12 size_t end = colons - begin;
Mike Fiore 11:9938ba31d428 13
Mike Fiore 11:9938ba31d428 14 return prettyFunction.substr(begin,end).c_str();
Mike Fiore 11:9938ba31d428 15 }
Mike Fiore 11:9938ba31d428 16
Mike Fiore 11:9938ba31d428 17 #define __CLASSNAME__ className(__PRETTY_FUNCTION__)
Mike Fiore 11:9938ba31d428 18
Mike Fiore 11:9938ba31d428 19
Mike Fiore 1:9f30fbe9e9c1 20 #ifdef MTS_DEBUG
Mike Fiore 1:9f30fbe9e9c1 21 #define logFatal(format, ...) \
Mike Fiore 11:9938ba31d428 22 mts::MTSLog::printMessage(mts::MTSLog::FATAL_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::FATAL_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 23 #define logError(format, ...) \
Mike Fiore 11:9938ba31d428 24 mts::MTSLog::printMessage(mts::MTSLog::ERROR_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::ERROR_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 25 #define logWarning(format, ...) \
Mike Fiore 11:9938ba31d428 26 mts::MTSLog::printMessage(mts::MTSLog::WARNING_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::WARNING_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 27 #define logInfo(format, ...) \
Mike Fiore 11:9938ba31d428 28 mts::MTSLog::printMessage(mts::MTSLog::INFO_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::INFO_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 29 #define logDebug(format, ...) \
Mike Fiore 11:9938ba31d428 30 mts::MTSLog::printMessage(mts::MTSLog::DEBUG_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::DEBUG_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 31 #define logTrace(format, ...) \
Mike Fiore 11:9938ba31d428 32 mts::MTSLog::printMessage(mts::MTSLog::TRACE_LEVEL, "%s:%s:%d| [%s] " format "\r\n", __CLASSNAME__, __func__, __LINE__, mts::MTSLog::TRACE_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 33 #else
Mike Fiore 1:9f30fbe9e9c1 34 #define logFatal(format, ...) \
Mike Fiore 7:683dba5d576f 35 mts::MTSLog::printMessage(mts::MTSLog::FATAL_LEVEL, "[%s] " format "\r\n", mts::MTSLog::FATAL_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 36 #define logError(format, ...) \
Mike Fiore 7:683dba5d576f 37 mts::MTSLog::printMessage(mts::MTSLog::ERROR_LEVEL, "[%s] " format "\r\n", mts::MTSLog::ERROR_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 38 #define logWarning(format, ...) \
Mike Fiore 7:683dba5d576f 39 mts::MTSLog::printMessage(mts::MTSLog::WARNING_LEVEL, "[%s] " format "\r\n", mts::MTSLog::WARNING_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 40 #define logInfo(format, ...) \
Mike Fiore 7:683dba5d576f 41 mts::MTSLog::printMessage(mts::MTSLog::INFO_LEVEL, "[%s] " format "\r\n", mts::MTSLog::INFO_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 42 #define logDebug(format, ...) \
Mike Fiore 7:683dba5d576f 43 mts::MTSLog::printMessage(mts::MTSLog::DEBUG_LEVEL, "[%s] " format "\r\n", mts::MTSLog::DEBUG_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 44 #define logTrace(format, ...) \
Mike Fiore 7:683dba5d576f 45 mts::MTSLog::printMessage(mts::MTSLog::TRACE_LEVEL, "[%s] " format "\r\n", mts::MTSLog::TRACE_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 46 #endif
Mike Fiore 1:9f30fbe9e9c1 47
Mike Fiore 1:9f30fbe9e9c1 48 namespace mts {
Mike Fiore 1:9f30fbe9e9c1 49
Mike Fiore 1:9f30fbe9e9c1 50 class MTSLog
Mike Fiore 1:9f30fbe9e9c1 51 {
Mike Fiore 1:9f30fbe9e9c1 52 public:
Mike Fiore 1:9f30fbe9e9c1 53
Mike Fiore 1:9f30fbe9e9c1 54 /** Enum of log levels.
Mike Fiore 1:9f30fbe9e9c1 55 */
Mike Fiore 1:9f30fbe9e9c1 56 enum logLevel {
Mike Fiore 1:9f30fbe9e9c1 57 NONE_LEVEL = 0,
Mike Fiore 1:9f30fbe9e9c1 58 FATAL_LEVEL = 1,
Mike Fiore 1:9f30fbe9e9c1 59 ERROR_LEVEL = 2,
Mike Fiore 1:9f30fbe9e9c1 60 WARNING_LEVEL = 3,
Mike Fiore 1:9f30fbe9e9c1 61 INFO_LEVEL = 4,
Mike Fiore 1:9f30fbe9e9c1 62 DEBUG_LEVEL = 5,
Mike Fiore 1:9f30fbe9e9c1 63 TRACE_LEVEL = 6
Mike Fiore 1:9f30fbe9e9c1 64 };
Mike Fiore 1:9f30fbe9e9c1 65
Mike Fiore 1:9f30fbe9e9c1 66 /** Print log message.
Mike Fiore 1:9f30fbe9e9c1 67 */
Mike Fiore 1:9f30fbe9e9c1 68 static void printMessage(int level, const char* format, ...);
Mike Fiore 1:9f30fbe9e9c1 69
Mike Fiore 1:9f30fbe9e9c1 70 /** Determine if the given level is currently printable.
Mike Fiore 1:9f30fbe9e9c1 71 */
Mike Fiore 1:9f30fbe9e9c1 72 static bool printable(int level);
Mike Fiore 1:9f30fbe9e9c1 73
Mike Fiore 1:9f30fbe9e9c1 74 /** Set log level
Mike Fiore 1:9f30fbe9e9c1 75 * Messages with lower priority than the current level will not be printed.
Mike Fiore 1:9f30fbe9e9c1 76 * If the level is set to NONE, no messages will print.
Mike Fiore 1:9f30fbe9e9c1 77 */
Mike Fiore 1:9f30fbe9e9c1 78 static void setLogLevel(int level);
Mike Fiore 1:9f30fbe9e9c1 79
Mike Fiore 1:9f30fbe9e9c1 80 /** Get the current log level.
Mike Fiore 1:9f30fbe9e9c1 81 */
Mike Fiore 1:9f30fbe9e9c1 82 static int getLogLevel();
Mike Fiore 1:9f30fbe9e9c1 83
Mike Fiore 1:9f30fbe9e9c1 84 /** Get string representation of the current log level.
Mike Fiore 1:9f30fbe9e9c1 85 */
Mike Fiore 1:9f30fbe9e9c1 86 static const char* getLogLevelString();
Mike Fiore 1:9f30fbe9e9c1 87
Mike Fiore 1:9f30fbe9e9c1 88 static const char* NONE_LABEL;
Mike Fiore 1:9f30fbe9e9c1 89 static const char* FATAL_LABEL;
Mike Fiore 1:9f30fbe9e9c1 90 static const char* ERROR_LABEL;
Mike Fiore 1:9f30fbe9e9c1 91 static const char* WARNING_LABEL;
Mike Fiore 1:9f30fbe9e9c1 92 static const char* INFO_LABEL;
Mike Fiore 1:9f30fbe9e9c1 93 static const char* DEBUG_LABEL;
Mike Fiore 1:9f30fbe9e9c1 94 static const char* TRACE_LABEL;
Mike Fiore 1:9f30fbe9e9c1 95
Mike Fiore 1:9f30fbe9e9c1 96 private:
Mike Fiore 1:9f30fbe9e9c1 97
Mike Fiore 1:9f30fbe9e9c1 98 /** Constructor
Mike Fiore 1:9f30fbe9e9c1 99 */
Mike Fiore 1:9f30fbe9e9c1 100 MTSLog();
Mike Fiore 1:9f30fbe9e9c1 101
Mike Fiore 1:9f30fbe9e9c1 102 static int currentLevel;
Mike Fiore 1:9f30fbe9e9c1 103
Mike Fiore 1:9f30fbe9e9c1 104 };
Mike Fiore 1:9f30fbe9e9c1 105
Mike Fiore 1:9f30fbe9e9c1 106 }
Mike Fiore 1:9f30fbe9e9c1 107
Mike Fiore 1:9f30fbe9e9c1 108 #endif