CAC_smartcushion / Mbed OS AdiSense1000_V21_Smartcushion

Fork of Sean_AdiSense1000_V21 by Rohan Gurav

Committer:
kevin1990
Date:
Fri Oct 20 15:58:01 2017 +0000
Revision:
7:4dbae381f693
v0.3 release (New Host api)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevin1990 7:4dbae381f693 1 /*!
kevin1990 7:4dbae381f693 2 ******************************************************************************
kevin1990 7:4dbae381f693 3 * @file: adi_sense_log.h
kevin1990 7:4dbae381f693 4 * @brief: ADI Sense OS-dependent wrapper layer for log functions
kevin1990 7:4dbae381f693 5 *-----------------------------------------------------------------------------
kevin1990 7:4dbae381f693 6 */
kevin1990 7:4dbae381f693 7
kevin1990 7:4dbae381f693 8 /*
kevin1990 7:4dbae381f693 9 Copyright (c) 2017 Emutex Ltd. / Analog Devices, Inc.
kevin1990 7:4dbae381f693 10
kevin1990 7:4dbae381f693 11 All rights reserved.
kevin1990 7:4dbae381f693 12
kevin1990 7:4dbae381f693 13 Redistribution and use in source and binary forms, with or without modification,
kevin1990 7:4dbae381f693 14 are permitted provided that the following conditions are met:
kevin1990 7:4dbae381f693 15 - Redistributions of source code must retain the above copyright notice,
kevin1990 7:4dbae381f693 16 this list of conditions and the following disclaimer.
kevin1990 7:4dbae381f693 17 - Redistributions in binary form must reproduce the above copyright notice,
kevin1990 7:4dbae381f693 18 this list of conditions and the following disclaimer in the documentation
kevin1990 7:4dbae381f693 19 and/or other materials provided with the distribution.
kevin1990 7:4dbae381f693 20 - Modified versions of the software must be conspicuously marked as such.
kevin1990 7:4dbae381f693 21 - This software is licensed solely and exclusively for use with processors
kevin1990 7:4dbae381f693 22 manufactured by or for Analog Devices, Inc.
kevin1990 7:4dbae381f693 23 - This software may not be combined or merged with other code in any manner
kevin1990 7:4dbae381f693 24 that would cause the software to become subject to terms and conditions
kevin1990 7:4dbae381f693 25 which differ from those listed here.
kevin1990 7:4dbae381f693 26 - Neither the name of Analog Devices, Inc. nor the names of its
kevin1990 7:4dbae381f693 27 contributors may be used to endorse or promote products derived
kevin1990 7:4dbae381f693 28 from this software without specific prior written permission.
kevin1990 7:4dbae381f693 29 - The use of this software may or may not infringe the patent rights of one
kevin1990 7:4dbae381f693 30 or more patent holders. This license does not release you from the
kevin1990 7:4dbae381f693 31 requirement that you obtain separate licenses from these patent holders
kevin1990 7:4dbae381f693 32 to use this software.
kevin1990 7:4dbae381f693 33
kevin1990 7:4dbae381f693 34 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY
kevin1990 7:4dbae381f693 35 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
kevin1990 7:4dbae381f693 36 TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
kevin1990 7:4dbae381f693 37 NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
kevin1990 7:4dbae381f693 38 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
kevin1990 7:4dbae381f693 39 (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
kevin1990 7:4dbae381f693 40 PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
kevin1990 7:4dbae381f693 41 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
kevin1990 7:4dbae381f693 42 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
kevin1990 7:4dbae381f693 43 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
kevin1990 7:4dbae381f693 44 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
kevin1990 7:4dbae381f693 45 */
kevin1990 7:4dbae381f693 46
kevin1990 7:4dbae381f693 47 #ifndef __ADI_SENSE_LOG_H__
kevin1990 7:4dbae381f693 48 #define __ADI_SENSE_LOG_H__
kevin1990 7:4dbae381f693 49
kevin1990 7:4dbae381f693 50 #include "inc/adi_sense_types.h"
kevin1990 7:4dbae381f693 51
kevin1990 7:4dbae381f693 52 /*! @ingroup ADI_Sense_Host */
kevin1990 7:4dbae381f693 53
kevin1990 7:4dbae381f693 54 /*! @addtogroup ADI_Sense_Log ADI Sense Host Logging functions
kevin1990 7:4dbae381f693 55 * @{
kevin1990 7:4dbae381f693 56 */
kevin1990 7:4dbae381f693 57
kevin1990 7:4dbae381f693 58 /*! Macro function for logging an error message */
kevin1990 7:4dbae381f693 59 #define ADI_SENSE_LOG_ERROR(...) \
kevin1990 7:4dbae381f693 60 adi_sense_Log(ADI_SENSE_LOG_LEVEL_ERROR, "[ERROR] " __VA_ARGS__)
kevin1990 7:4dbae381f693 61 /*! Macro function for logging a warning message */
kevin1990 7:4dbae381f693 62 #define ADI_SENSE_LOG_WARN(...) \
kevin1990 7:4dbae381f693 63 adi_sense_Log(ADI_SENSE_LOG_LEVEL_WARN, "[WARN] " __VA_ARGS__)
kevin1990 7:4dbae381f693 64 /*! Macro function for logging an information message */
kevin1990 7:4dbae381f693 65 #define ADI_SENSE_LOG_INFO(...) \
kevin1990 7:4dbae381f693 66 adi_sense_Log(ADI_SENSE_LOG_LEVEL_INFO, "[INFO] " __VA_ARGS__)
kevin1990 7:4dbae381f693 67 /*! Macro function for logging a debug message */
kevin1990 7:4dbae381f693 68 #define ADI_SENSE_LOG_DEBUG(...) \
kevin1990 7:4dbae381f693 69 adi_sense_Log(ADI_SENSE_LOG_LEVEL_DEBUG, "[DEBUG] " __VA_ARGS__)
kevin1990 7:4dbae381f693 70
kevin1990 7:4dbae381f693 71 /*!
kevin1990 7:4dbae381f693 72 * Log message priority levels
kevin1990 7:4dbae381f693 73 */
kevin1990 7:4dbae381f693 74 typedef enum
kevin1990 7:4dbae381f693 75 {
kevin1990 7:4dbae381f693 76 ADI_SENSE_LOG_LEVEL_ERROR = 0, /*!< Error message priority */
kevin1990 7:4dbae381f693 77 ADI_SENSE_LOG_LEVEL_WARN, /*!< Warning message priority */
kevin1990 7:4dbae381f693 78 ADI_SENSE_LOG_LEVEL_INFO, /*!< Information message priority */
kevin1990 7:4dbae381f693 79 ADI_SENSE_LOG_LEVEL_DEBUG, /*!< Debug message priority */
kevin1990 7:4dbae381f693 80 } ADI_SENSE_LOG_LEVEL;
kevin1990 7:4dbae381f693 81
kevin1990 7:4dbae381f693 82
kevin1990 7:4dbae381f693 83 #ifdef __cplusplus
kevin1990 7:4dbae381f693 84 extern "C"
kevin1990 7:4dbae381f693 85 {
kevin1990 7:4dbae381f693 86 #endif
kevin1990 7:4dbae381f693 87
kevin1990 7:4dbae381f693 88 /*!
kevin1990 7:4dbae381f693 89 * @brief Initialise the Log interface and allocate resources.
kevin1990 7:4dbae381f693 90 *
kevin1990 7:4dbae381f693 91 * @return Status
kevin1990 7:4dbae381f693 92 * - #ADI_SENSE_SUCCESS Call completed successfully.
kevin1990 7:4dbae381f693 93 * - #ADI_SENSE_NO_MEM Failed to allocate memory for device context.
kevin1990 7:4dbae381f693 94 */
kevin1990 7:4dbae381f693 95 ADI_SENSE_RESULT adi_sense_LogOpen(
kevin1990 7:4dbae381f693 96 void);
kevin1990 7:4dbae381f693 97
kevin1990 7:4dbae381f693 98 /*!
kevin1990 7:4dbae381f693 99 * @brief Close the Log interface and free resources.
kevin1990 7:4dbae381f693 100 */
kevin1990 7:4dbae381f693 101 void adi_sense_LogClose(
kevin1990 7:4dbae381f693 102 void);
kevin1990 7:4dbae381f693 103
kevin1990 7:4dbae381f693 104 /*!
kevin1990 7:4dbae381f693 105 * @brief Print a log message to the platform log interface.
kevin1990 7:4dbae381f693 106 *
kevin1990 7:4dbae381f693 107 * @param[in] level Log message priority level
kevin1990 7:4dbae381f693 108 * @param[in] format Format string and variable argument list, if any
kevin1990 7:4dbae381f693 109 */
kevin1990 7:4dbae381f693 110 void adi_sense_Log(
kevin1990 7:4dbae381f693 111 ADI_SENSE_LOG_LEVEL level,
kevin1990 7:4dbae381f693 112 const char * format,
kevin1990 7:4dbae381f693 113 ...);
kevin1990 7:4dbae381f693 114
kevin1990 7:4dbae381f693 115 #ifdef __cplusplus
kevin1990 7:4dbae381f693 116 }
kevin1990 7:4dbae381f693 117 #endif
kevin1990 7:4dbae381f693 118
kevin1990 7:4dbae381f693 119 /*!
kevin1990 7:4dbae381f693 120 * @}
kevin1990 7:4dbae381f693 121 */
kevin1990 7:4dbae381f693 122
kevin1990 7:4dbae381f693 123 #endif /* __ADI_SENSE_LOG_H__ */
kevin1990 7:4dbae381f693 124