Digi XBeeLib fixed for NonCopyable issue

Dependents:   XBeeZB_Receive_Data

Fork of XBeeLib by Digi International Inc.

This lib fixes NonCopyable<T> issues of Digi XBeeLib. Also, lib has been reworked in order to make it RTOS-aware, overcoming several others issues due to stdio Mutex operations.

Committer:
Lorenzo Maiorfi
Date:
Sun Apr 08 08:01:55 2018 +0200
Revision:
13:09e0b4f5a9e1
Parent:
11:c49cf952d67d
Disabled reset procedure in XBee::init() method in order to overcome some "nasty" effects on S2C modules.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Lorenzo Maiorfi 11:c49cf952d67d 1 /**
Lorenzo Maiorfi 11:c49cf952d67d 2 * Copyright (c) 2015 Digi International Inc.,
Lorenzo Maiorfi 11:c49cf952d67d 3 * All rights not expressly granted are reserved.
Lorenzo Maiorfi 11:c49cf952d67d 4 *
Lorenzo Maiorfi 11:c49cf952d67d 5 * This Source Code Form is subject to the terms of the Mozilla Public
Lorenzo Maiorfi 11:c49cf952d67d 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
Lorenzo Maiorfi 11:c49cf952d67d 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
Lorenzo Maiorfi 11:c49cf952d67d 8 *
Lorenzo Maiorfi 11:c49cf952d67d 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
Lorenzo Maiorfi 11:c49cf952d67d 10 * =======================================================================
Lorenzo Maiorfi 11:c49cf952d67d 11 */
Lorenzo Maiorfi 11:c49cf952d67d 12
Lorenzo Maiorfi 11:c49cf952d67d 13 #if !defined(__DIGI_LOGGER_H_)
Lorenzo Maiorfi 11:c49cf952d67d 14 #define __DIGI_LOGGER_H_
Lorenzo Maiorfi 11:c49cf952d67d 15
Lorenzo Maiorfi 11:c49cf952d67d 16 #include <cstdlib>
Lorenzo Maiorfi 11:c49cf952d67d 17 #include <stdio.h>
Lorenzo Maiorfi 11:c49cf952d67d 18
Lorenzo Maiorfi 11:c49cf952d67d 19 /**
Lorenzo Maiorfi 11:c49cf952d67d 20 * @defgroup LogLevel
Lorenzo Maiorfi 11:c49cf952d67d 21 * @{
Lorenzo Maiorfi 11:c49cf952d67d 22 */
Lorenzo Maiorfi 11:c49cf952d67d 23 /**
Lorenzo Maiorfi 11:c49cf952d67d 24 * Library Logging level.
Lorenzo Maiorfi 11:c49cf952d67d 25 */
Lorenzo Maiorfi 11:c49cf952d67d 26 enum LogLevel {
Lorenzo Maiorfi 11:c49cf952d67d 27 LogLevelNone, /** Level None */
Lorenzo Maiorfi 11:c49cf952d67d 28 LogLevelError, /** Level Error */
Lorenzo Maiorfi 11:c49cf952d67d 29 LogLevelWarning, /** Level Warning */
Lorenzo Maiorfi 11:c49cf952d67d 30 LogLevelInfo, /** Level Info */
Lorenzo Maiorfi 11:c49cf952d67d 31 LogLevelDebug, /** Level Debug */
Lorenzo Maiorfi 11:c49cf952d67d 32 LogLevelFrameData, /** Level Frame Data */
Lorenzo Maiorfi 11:c49cf952d67d 33 LogLevelAll /** Level All */
Lorenzo Maiorfi 11:c49cf952d67d 34 };
Lorenzo Maiorfi 11:c49cf952d67d 35 /**
Lorenzo Maiorfi 11:c49cf952d67d 36 * @}
Lorenzo Maiorfi 11:c49cf952d67d 37 */
Lorenzo Maiorfi 11:c49cf952d67d 38
Lorenzo Maiorfi 11:c49cf952d67d 39 #define DEBUG_BUFFER_LEN 200
Lorenzo Maiorfi 11:c49cf952d67d 40
Lorenzo Maiorfi 11:c49cf952d67d 41 namespace DigiLog {
Lorenzo Maiorfi 11:c49cf952d67d 42
Lorenzo Maiorfi 11:c49cf952d67d 43 class DigiLogger
Lorenzo Maiorfi 11:c49cf952d67d 44 {
Lorenzo Maiorfi 11:c49cf952d67d 45 protected:
Lorenzo Maiorfi 11:c49cf952d67d 46
Lorenzo Maiorfi 11:c49cf952d67d 47 /** module log level */
Lorenzo Maiorfi 11:c49cf952d67d 48 static LogLevel _log_level;
Lorenzo Maiorfi 11:c49cf952d67d 49
Lorenzo Maiorfi 11:c49cf952d67d 50 static DigiLogger* current_logger;
Lorenzo Maiorfi 11:c49cf952d67d 51
Lorenzo Maiorfi 11:c49cf952d67d 52 /* Not implemented for base class */
Lorenzo Maiorfi 11:c49cf952d67d 53 virtual void log_buffer(char const * const buffer);
Lorenzo Maiorfi 11:c49cf952d67d 54
Lorenzo Maiorfi 11:c49cf952d67d 55 public:
Lorenzo Maiorfi 11:c49cf952d67d 56
Lorenzo Maiorfi 11:c49cf952d67d 57 /** Class constructor */
Lorenzo Maiorfi 11:c49cf952d67d 58 DigiLogger();
Lorenzo Maiorfi 11:c49cf952d67d 59
Lorenzo Maiorfi 11:c49cf952d67d 60 /** Class destructor */
Lorenzo Maiorfi 11:c49cf952d67d 61 virtual ~DigiLogger();
Lorenzo Maiorfi 11:c49cf952d67d 62
Lorenzo Maiorfi 11:c49cf952d67d 63 /** set_level - set logging level.
Lorenzo Maiorfi 11:c49cf952d67d 64 *
Lorenzo Maiorfi 11:c49cf952d67d 65 * @param log_level desired overall logging level
Lorenzo Maiorfi 11:c49cf952d67d 66 */
Lorenzo Maiorfi 11:c49cf952d67d 67 static void set_level(LogLevel log_level);
Lorenzo Maiorfi 11:c49cf952d67d 68
Lorenzo Maiorfi 11:c49cf952d67d 69 /** get_level - get logging level.
Lorenzo Maiorfi 11:c49cf952d67d 70 *
Lorenzo Maiorfi 11:c49cf952d67d 71 * @returns current overall logging level
Lorenzo Maiorfi 11:c49cf952d67d 72 */
Lorenzo Maiorfi 11:c49cf952d67d 73 static LogLevel get_level();
Lorenzo Maiorfi 11:c49cf952d67d 74
Lorenzo Maiorfi 11:c49cf952d67d 75 /** log_format - logs a printf-like message.
Lorenzo Maiorfi 11:c49cf952d67d 76 *
Lorenzo Maiorfi 11:c49cf952d67d 77 * @param log_level logging level
Lorenzo Maiorfi 11:c49cf952d67d 78 * @param format ... printf-like message
Lorenzo Maiorfi 11:c49cf952d67d 79 */
Lorenzo Maiorfi 11:c49cf952d67d 80 static void log_format(LogLevel log_level, const char *format, ...);
Lorenzo Maiorfi 11:c49cf952d67d 81
Lorenzo Maiorfi 11:c49cf952d67d 82 };
Lorenzo Maiorfi 11:c49cf952d67d 83
Lorenzo Maiorfi 11:c49cf952d67d 84 } /* namespace DigiLog */
Lorenzo Maiorfi 11:c49cf952d67d 85
Lorenzo Maiorfi 11:c49cf952d67d 86 #endif /* defined(__DIGI_LOGGER_H_) */
Lorenzo Maiorfi 11:c49cf952d67d 87
Lorenzo Maiorfi 11:c49cf952d67d 88
Lorenzo Maiorfi 11:c49cf952d67d 89