ADISense1000 Version 2.1 code base

Fork of AdiSense1000_V21 by Sean Wilson

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.c
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
kevin1990 7:4dbae381f693 48 #include <mbed.h>
kevin1990 7:4dbae381f693 49 #include "inc/adi_sense_log.h"
kevin1990 7:4dbae381f693 50
kevin1990 7:4dbae381f693 51 #define ADI_SENSE_LOG_UART_BAUDRATE (115200)
kevin1990 7:4dbae381f693 52
kevin1990 7:4dbae381f693 53 #ifdef TARGET_STM32F411xE
kevin1990 7:4dbae381f693 54 #define ADI_SENSE_LOG_UART_TX_PIN (PA_11)
kevin1990 7:4dbae381f693 55 #define ADI_SENSE_LOG_UART_RX_PIN (PA_12)
kevin1990 7:4dbae381f693 56 #else
kevin1990 7:4dbae381f693 57 #error "unsupported target platform"
kevin1990 7:4dbae381f693 58 #endif
kevin1990 7:4dbae381f693 59
kevin1990 7:4dbae381f693 60 static Serial *gpUartDevice;
kevin1990 7:4dbae381f693 61
kevin1990 7:4dbae381f693 62 #ifdef __cplusplus
kevin1990 7:4dbae381f693 63 extern "C" {
kevin1990 7:4dbae381f693 64 #endif
kevin1990 7:4dbae381f693 65
kevin1990 7:4dbae381f693 66 /*
kevin1990 7:4dbae381f693 67 * Open the Log interface and allocate resources
kevin1990 7:4dbae381f693 68 */
kevin1990 7:4dbae381f693 69 ADI_SENSE_RESULT adi_sense_LogOpen(void)
kevin1990 7:4dbae381f693 70 {
kevin1990 7:4dbae381f693 71 gpUartDevice = new Serial(ADI_SENSE_LOG_UART_TX_PIN,
kevin1990 7:4dbae381f693 72 ADI_SENSE_LOG_UART_RX_PIN,
kevin1990 7:4dbae381f693 73 ADI_SENSE_LOG_UART_BAUDRATE);
kevin1990 7:4dbae381f693 74 if (!gpUartDevice)
kevin1990 7:4dbae381f693 75 {
kevin1990 7:4dbae381f693 76 ADI_SENSE_LOG_ERROR("Failed to allocate memory for Log UART context");
kevin1990 7:4dbae381f693 77 return ADI_SENSE_NO_MEM;
kevin1990 7:4dbae381f693 78 }
kevin1990 7:4dbae381f693 79
kevin1990 7:4dbae381f693 80 return ADI_SENSE_SUCCESS;
kevin1990 7:4dbae381f693 81 }
kevin1990 7:4dbae381f693 82
kevin1990 7:4dbae381f693 83 /*
kevin1990 7:4dbae381f693 84 * Close the Log interface and free resources
kevin1990 7:4dbae381f693 85 */
kevin1990 7:4dbae381f693 86 void adi_sense_LogClose(void)
kevin1990 7:4dbae381f693 87 {
kevin1990 7:4dbae381f693 88 if (gpUartDevice)
kevin1990 7:4dbae381f693 89 {
kevin1990 7:4dbae381f693 90 delete gpUartDevice;
kevin1990 7:4dbae381f693 91 gpUartDevice = 0;
kevin1990 7:4dbae381f693 92 }
kevin1990 7:4dbae381f693 93 }
kevin1990 7:4dbae381f693 94
kevin1990 7:4dbae381f693 95 /*
kevin1990 7:4dbae381f693 96 * Print a log message to the platform log interface
kevin1990 7:4dbae381f693 97 */
kevin1990 7:4dbae381f693 98 void adi_sense_Log(ADI_SENSE_LOG_LEVEL level, const char* format, ...)
kevin1990 7:4dbae381f693 99 {
kevin1990 7:4dbae381f693 100 char buffer[256];
kevin1990 7:4dbae381f693 101 va_list va_args;
kevin1990 7:4dbae381f693 102
kevin1990 7:4dbae381f693 103 if (!gpUartDevice)
kevin1990 7:4dbae381f693 104 return;
kevin1990 7:4dbae381f693 105
kevin1990 7:4dbae381f693 106 va_start(va_args, format);
kevin1990 7:4dbae381f693 107 vsnprintf(buffer, sizeof(buffer), format, va_args);
kevin1990 7:4dbae381f693 108 va_end(va_args);
kevin1990 7:4dbae381f693 109
kevin1990 7:4dbae381f693 110 gpUartDevice->printf("%s\r\n", buffer);
kevin1990 7:4dbae381f693 111 }
kevin1990 7:4dbae381f693 112
kevin1990 7:4dbae381f693 113 #ifdef __cplusplus
kevin1990 7:4dbae381f693 114 }
kevin1990 7:4dbae381f693 115 #endif
kevin1990 7:4dbae381f693 116