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 Mar 25 16:54:52 2018 +0200
Revision:
12:8dc9761210c1
Parent:
4:629712865107
Fixed thread-affinity. Please use ENABLE_THREAD_SAFE_LOGGING #define in config.h to enable RTOS support.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
spastor 0:fcaad0dfa051 1 /**
spastor 0:fcaad0dfa051 2 * Copyright (c) 2015 Digi International Inc.,
spastor 0:fcaad0dfa051 3 * All rights not expressly granted are reserved.
spastor 0:fcaad0dfa051 4 *
spastor 0:fcaad0dfa051 5 * This Source Code Form is subject to the terms of the Mozilla Public
spastor 0:fcaad0dfa051 6 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
spastor 0:fcaad0dfa051 7 * You can obtain one at http://mozilla.org/MPL/2.0/.
spastor 0:fcaad0dfa051 8 *
spastor 0:fcaad0dfa051 9 * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
spastor 0:fcaad0dfa051 10 * =======================================================================
spastor 0:fcaad0dfa051 11 */
spastor 4:629712865107 12
spastor 0:fcaad0dfa051 13 #if !defined(__DEBUG_H_)
spastor 0:fcaad0dfa051 14 #define __DEBUG_H_
spastor 0:fcaad0dfa051 15
spastor 0:fcaad0dfa051 16 #include "config.h"
spastor 0:fcaad0dfa051 17
Lorenzo Maiorfi 12:8dc9761210c1 18
Lorenzo Maiorfi 12:8dc9761210c1 19 #if defined(ENABLE_THREAD_SAFE_LOGGING)
Lorenzo Maiorfi 12:8dc9761210c1 20
Lorenzo Maiorfi 12:8dc9761210c1 21 #include "mbed.h"
Lorenzo Maiorfi 12:8dc9761210c1 22
Lorenzo Maiorfi 12:8dc9761210c1 23 extern EventQueue s_logging_event_queue;
Lorenzo Maiorfi 12:8dc9761210c1 24
Lorenzo Maiorfi 12:8dc9761210c1 25 #endif
Lorenzo Maiorfi 12:8dc9761210c1 26
Lorenzo Maiorfi 12:8dc9761210c1 27
spastor 0:fcaad0dfa051 28 #if defined(ENABLE_LOGGING)
spastor 0:fcaad0dfa051 29
spastor 0:fcaad0dfa051 30 #include "DigiLogger.h"
spastor 0:fcaad0dfa051 31
Lorenzo Maiorfi 12:8dc9761210c1 32 #if !(defined(ENABLE_THREAD_SAFE_LOGGING))
Lorenzo Maiorfi 12:8dc9761210c1 33
spastor 0:fcaad0dfa051 34 #define digi_log(...) DigiLog::DigiLogger::log_format(__VA_ARGS__);
Lorenzo Maiorfi 12:8dc9761210c1 35
Lorenzo Maiorfi 12:8dc9761210c1 36 #else
Lorenzo Maiorfi 12:8dc9761210c1 37
Lorenzo Maiorfi 12:8dc9761210c1 38 #define digi_log(...) s_logging_event_queue.call(&DigiLog::DigiLogger::log_format, __VA_ARGS__);
Lorenzo Maiorfi 12:8dc9761210c1 39
Lorenzo Maiorfi 12:8dc9761210c1 40 #endif
Lorenzo Maiorfi 12:8dc9761210c1 41
spastor 0:fcaad0dfa051 42 #else
spastor 0:fcaad0dfa051 43 #define digi_log(...) do {} while(0)
spastor 0:fcaad0dfa051 44 #endif
spastor 0:fcaad0dfa051 45
spastor 0:fcaad0dfa051 46 #if defined(ENABLE_ASSERTIONS)
spastor 0:fcaad0dfa051 47 #include "mbed.h"
hbujanda 2:2ee1b6d51df2 48 #if !(defined assert)
Lorenzo Maiorfi 12:8dc9761210c1 49
Lorenzo Maiorfi 12:8dc9761210c1 50 #if !(defined(ENABLE_THREAD_SAFE_LOGGING))
Lorenzo Maiorfi 12:8dc9761210c1 51
Lorenzo Maiorfi 12:8dc9761210c1 52 #define assert(expr) if (!(expr)) { \
Lorenzo Maiorfi 12:8dc9761210c1 53 DigiLog::DigiLogger::log_format(LogLevelNone, "Assertion failed: %s, file %s, line %d\n", \
spastor 0:fcaad0dfa051 54 #expr, __FILE__, __LINE__); \
spastor 0:fcaad0dfa051 55 mbed_die(); \
spastor 0:fcaad0dfa051 56 }
Lorenzo Maiorfi 12:8dc9761210c1 57
Lorenzo Maiorfi 12:8dc9761210c1 58 #else
Lorenzo Maiorfi 12:8dc9761210c1 59
Lorenzo Maiorfi 12:8dc9761210c1 60 #define assert(expr) if (!(expr)) { \
Lorenzo Maiorfi 12:8dc9761210c1 61 s_logging_event_queue.call(&DigiLog::DigiLogger::log_format, LogLevelNone, "Assertion failed: %s, file %s, line %d\n", #expr, __FILE__, __LINE__ ); \
Lorenzo Maiorfi 12:8dc9761210c1 62 mbed_die(); \
Lorenzo Maiorfi 12:8dc9761210c1 63 }
Lorenzo Maiorfi 12:8dc9761210c1 64
Lorenzo Maiorfi 12:8dc9761210c1 65 #endif
Lorenzo Maiorfi 12:8dc9761210c1 66
hbujanda 2:2ee1b6d51df2 67 #endif
spastor 0:fcaad0dfa051 68 #else
spastor 0:fcaad0dfa051 69 #define assert(expr)
spastor 0:fcaad0dfa051 70 #endif
spastor 0:fcaad0dfa051 71
spastor 0:fcaad0dfa051 72 #endif /* __DEBUG_H_ */