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 #include "DigiLogger.h"
Lorenzo Maiorfi 11:c49cf952d67d 14
Lorenzo Maiorfi 11:c49cf952d67d 15 #include <stdarg.h>
Lorenzo Maiorfi 11:c49cf952d67d 16
Lorenzo Maiorfi 11:c49cf952d67d 17 using namespace DigiLog;
Lorenzo Maiorfi 11:c49cf952d67d 18
Lorenzo Maiorfi 11:c49cf952d67d 19 LogLevel DigiLogger::_log_level;
Lorenzo Maiorfi 11:c49cf952d67d 20
Lorenzo Maiorfi 11:c49cf952d67d 21 DigiLogger* DigiLogger::current_logger;
Lorenzo Maiorfi 11:c49cf952d67d 22
Lorenzo Maiorfi 11:c49cf952d67d 23 /* Base Class constructor */
Lorenzo Maiorfi 11:c49cf952d67d 24 DigiLogger::DigiLogger()
Lorenzo Maiorfi 11:c49cf952d67d 25 {
Lorenzo Maiorfi 11:c49cf952d67d 26 _log_level = LogLevelNone;
Lorenzo Maiorfi 11:c49cf952d67d 27
Lorenzo Maiorfi 11:c49cf952d67d 28 current_logger = NULL;
Lorenzo Maiorfi 11:c49cf952d67d 29 }
Lorenzo Maiorfi 11:c49cf952d67d 30
Lorenzo Maiorfi 11:c49cf952d67d 31 /* Class destructor */
Lorenzo Maiorfi 11:c49cf952d67d 32 DigiLogger::~DigiLogger()
Lorenzo Maiorfi 11:c49cf952d67d 33 {
Lorenzo Maiorfi 11:c49cf952d67d 34 current_logger = NULL;
Lorenzo Maiorfi 11:c49cf952d67d 35 }
Lorenzo Maiorfi 11:c49cf952d67d 36
Lorenzo Maiorfi 11:c49cf952d67d 37 void DigiLogger::set_level(LogLevel log_level)
Lorenzo Maiorfi 11:c49cf952d67d 38 {
Lorenzo Maiorfi 11:c49cf952d67d 39 _log_level = log_level;
Lorenzo Maiorfi 11:c49cf952d67d 40 }
Lorenzo Maiorfi 11:c49cf952d67d 41
Lorenzo Maiorfi 11:c49cf952d67d 42 LogLevel DigiLogger::get_level()
Lorenzo Maiorfi 11:c49cf952d67d 43 {
Lorenzo Maiorfi 11:c49cf952d67d 44 return _log_level;
Lorenzo Maiorfi 11:c49cf952d67d 45 }
Lorenzo Maiorfi 11:c49cf952d67d 46
Lorenzo Maiorfi 11:c49cf952d67d 47 void DigiLogger::log_format(LogLevel log_level, const char *format, ...)
Lorenzo Maiorfi 11:c49cf952d67d 48 {
Lorenzo Maiorfi 11:c49cf952d67d 49 static char buffer[DEBUG_BUFFER_LEN];
Lorenzo Maiorfi 11:c49cf952d67d 50 va_list argp;
Lorenzo Maiorfi 11:c49cf952d67d 51
Lorenzo Maiorfi 11:c49cf952d67d 52 if (current_logger == NULL) {
Lorenzo Maiorfi 11:c49cf952d67d 53 return;
Lorenzo Maiorfi 11:c49cf952d67d 54 }
Lorenzo Maiorfi 11:c49cf952d67d 55
Lorenzo Maiorfi 11:c49cf952d67d 56 if (_log_level < log_level) {
Lorenzo Maiorfi 11:c49cf952d67d 57 return;
Lorenzo Maiorfi 11:c49cf952d67d 58 }
Lorenzo Maiorfi 11:c49cf952d67d 59
Lorenzo Maiorfi 11:c49cf952d67d 60 va_start(argp, format);
Lorenzo Maiorfi 11:c49cf952d67d 61 vsnprintf(buffer, DEBUG_BUFFER_LEN, format, argp);
Lorenzo Maiorfi 11:c49cf952d67d 62 va_end(argp);
Lorenzo Maiorfi 11:c49cf952d67d 63
Lorenzo Maiorfi 11:c49cf952d67d 64 current_logger->log_buffer(buffer);
Lorenzo Maiorfi 11:c49cf952d67d 65 }
Lorenzo Maiorfi 11:c49cf952d67d 66
Lorenzo Maiorfi 11:c49cf952d67d 67 void DigiLogger::log_buffer(char const * const buffer)
Lorenzo Maiorfi 11:c49cf952d67d 68 {
Lorenzo Maiorfi 11:c49cf952d67d 69 (void)(buffer);
Lorenzo Maiorfi 11:c49cf952d67d 70 }