vcdMaker demo logger library. See http://vcdmaker.org for details. vcdMaker demos: For Freescale FRDM-KL46Z: https://developer.mbed.org/users/ketjow/code/vcdMaker_Demo/ For ST Disco L476: https://developer.mbed.org/users/ketjow/code/vcdMaker_Demo_DISCO_L476/

Committer:
ketjow
Date:
Fri May 27 10:27:41 2016 +0000
Revision:
0:caae6cde6ca8
Initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ketjow 0:caae6cde6ca8 1 /*!
ketjow 0:caae6cde6ca8 2 @file logger.hpp
ketjow 0:caae6cde6ca8 3
ketjow 0:caae6cde6ca8 4 The header of the logger base class.
ketjow 0:caae6cde6ca8 5
ketjow 0:caae6cde6ca8 6 @par Full Description
ketjow 0:caae6cde6ca8 7 The header of the logger base class.
ketjow 0:caae6cde6ca8 8
ketjow 0:caae6cde6ca8 9 @if REVISION_HISTORY_INCLUDED
ketjow 0:caae6cde6ca8 10 @par Edit History
ketjow 0:caae6cde6ca8 11 @li [0] wojciech.rynczuk@wp.pl 20-JAN-2015 Initial file revision.
ketjow 0:caae6cde6ca8 12 @endif
ketjow 0:caae6cde6ca8 13
ketjow 0:caae6cde6ca8 14 @ingroup Logger
ketjow 0:caae6cde6ca8 15
ketjow 0:caae6cde6ca8 16 The MIT License (MIT)
ketjow 0:caae6cde6ca8 17 Copyright (c) 2016 Wojciech Rynczuk
ketjow 0:caae6cde6ca8 18
ketjow 0:caae6cde6ca8 19 */
ketjow 0:caae6cde6ca8 20
ketjow 0:caae6cde6ca8 21 #ifndef _LOGGER_HPP_
ketjow 0:caae6cde6ca8 22 #define _LOGGER_HPP_
ketjow 0:caae6cde6ca8 23
ketjow 0:caae6cde6ca8 24 #include <stdint.h>
ketjow 0:caae6cde6ca8 25 #include "mbed.h" //Timer
ketjow 0:caae6cde6ca8 26
ketjow 0:caae6cde6ca8 27 class Logger {
ketjow 0:caae6cde6ca8 28
ketjow 0:caae6cde6ca8 29 public:
ketjow 0:caae6cde6ca8 30 Logger(uint32_t nLines, uint32_t nCharacters);
ketjow 0:caae6cde6ca8 31 ~Logger();
ketjow 0:caae6cde6ca8 32 uint32_t Log(const char* line);
ketjow 0:caae6cde6ca8 33 uint32_t Print();
ketjow 0:caae6cde6ca8 34 int32_t GetTime();
ketjow 0:caae6cde6ca8 35 void StartRecording();
ketjow 0:caae6cde6ca8 36 void StopRecording();
ketjow 0:caae6cde6ca8 37 bool IsRecording();
ketjow 0:caae6cde6ca8 38
ketjow 0:caae6cde6ca8 39 //protected:
ketjow 0:caae6cde6ca8 40 virtual void Printf(const char*) = 0;
ketjow 0:caae6cde6ca8 41 virtual void AlarmFull() = 0;
ketjow 0:caae6cde6ca8 42 virtual uint32_t StartAction() = 0;
ketjow 0:caae6cde6ca8 43 virtual uint32_t StopAction() = 0;
ketjow 0:caae6cde6ca8 44
ketjow 0:caae6cde6ca8 45 private:
ketjow 0:caae6cde6ca8 46 bool m_isRecording;
ketjow 0:caae6cde6ca8 47 Timer m_Timer;
ketjow 0:caae6cde6ca8 48 char* m_pLogData;
ketjow 0:caae6cde6ca8 49 uint32_t m_Lines;
ketjow 0:caae6cde6ca8 50 uint32_t m_Characters;
ketjow 0:caae6cde6ca8 51 uint32_t m_ReadMarker;
ketjow 0:caae6cde6ca8 52 volatile uint32_t m_WriteMarker;
ketjow 0:caae6cde6ca8 53 };
ketjow 0:caae6cde6ca8 54
ketjow 0:caae6cde6ca8 55 #endif