This is the vcdMaker demo project. See http://vcdmaker.org for details. vcdMaker is supposed to help engineers to debug their applications and systems. It transforms text log files into the VCD format which can be easily displayed as a waveform. Use the mbed serial logger at 115200 baud rate.

Dependencies:   BSP_DISCO_L476VG COMPASS_DISCO_L476VG mbed vcdLogger vcdSignal

Committer:
ketjow
Date:
Wed Dec 07 09:14:34 2016 +0000
Revision:
2:fcfb6ced9c00
Parent:
0:936379a8793e
Sync signal added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ketjow 0:936379a8793e 1 /*!
ketjow 0:936379a8793e 2 @file magnetometer.cpp
ketjow 0:936379a8793e 3
ketjow 0:936379a8793e 4 The implementation of the magnetometer signal class.
ketjow 0:936379a8793e 5
ketjow 0:936379a8793e 6 @par Full Description
ketjow 0:936379a8793e 7 The implementation of the magnetometer signal class.
ketjow 0:936379a8793e 8
ketjow 0:936379a8793e 9 @if REVISION_HISTORY_INCLUDED
ketjow 0:936379a8793e 10 @par Edit History
ketjow 0:936379a8793e 11 @li [0] wojciech.rynczuk@wp.pl 04-MAR-2016 Initial file revision.
ketjow 0:936379a8793e 12 @endif
ketjow 0:936379a8793e 13
ketjow 0:936379a8793e 14 @ingroup Signal
ketjow 0:936379a8793e 15
ketjow 0:936379a8793e 16 The MIT License (MIT)
ketjow 0:936379a8793e 17 Copyright (c) 2016 Wojciech Rynczuk
ketjow 0:936379a8793e 18
ketjow 0:936379a8793e 19 */
ketjow 0:936379a8793e 20
ketjow 0:936379a8793e 21 #include "magnetometer.hpp"
ketjow 0:936379a8793e 22
ketjow 0:936379a8793e 23 Magnetometer::Magnetometer(const string& name, COMPASS_DISCO_L476VG& compass, Logger& logger) : Signal(name, 32, logger), m_pCompass(&compass)
ketjow 0:936379a8793e 24 {
ketjow 0:936379a8793e 25 m_MagXYZ[0] = 0;
ketjow 0:936379a8793e 26 m_MagXYZ[1] = 0;
ketjow 0:936379a8793e 27 m_MagXYZ[2] = 0;
ketjow 0:936379a8793e 28 m_PrevMagXYZ[0] = 0;
ketjow 0:936379a8793e 29 m_PrevMagXYZ[1] = 0;
ketjow 0:936379a8793e 30 m_PrevMagXYZ[2] = 0;
ketjow 0:936379a8793e 31 }
ketjow 0:936379a8793e 32
ketjow 0:936379a8793e 33 Magnetometer::~Magnetometer()
ketjow 0:936379a8793e 34 {
ketjow 0:936379a8793e 35 }
ketjow 0:936379a8793e 36
ketjow 0:936379a8793e 37 void Magnetometer::PrintState()
ketjow 0:936379a8793e 38 {
ketjow 0:936379a8793e 39 string suffix("MagX");
ketjow 0:936379a8793e 40 string msg("");
ketjow 0:936379a8793e 41 int32_t time_ref = 0;
ketjow 0:936379a8793e 42
ketjow 0:936379a8793e 43 m_pCompass->MagGetXYZ(m_MagXYZ);
ketjow 0:936379a8793e 44 if ( (CheckFilter()) || \
ketjow 0:936379a8793e 45 (fabs((float)(m_MagXYZ[0] - m_PrevMagXYZ[0])) > 50) || \
ketjow 0:936379a8793e 46 (fabs((float)(m_MagXYZ[1] - m_PrevMagXYZ[1])) > 50) || \
ketjow 0:936379a8793e 47 (fabs((float)(m_MagXYZ[2] - m_PrevMagXYZ[2])) > 50))
ketjow 0:936379a8793e 48 {
ketjow 0:936379a8793e 49 PrintReal(m_MagXYZ[0], suffix, msg, time_ref);
ketjow 0:936379a8793e 50 suffix = "MagY";
ketjow 0:936379a8793e 51 time_ref = 0;
ketjow 0:936379a8793e 52 PrintReal(m_MagXYZ[1], suffix, msg, time_ref);
ketjow 0:936379a8793e 53 suffix = "MagZ";
ketjow 0:936379a8793e 54 time_ref = 0;
ketjow 0:936379a8793e 55 PrintReal(m_MagXYZ[2], suffix, msg, time_ref);
ketjow 0:936379a8793e 56 m_PrevMagXYZ[0] = m_MagXYZ[0];
ketjow 0:936379a8793e 57 m_PrevMagXYZ[1] = m_MagXYZ[1];
ketjow 0:936379a8793e 58 m_PrevMagXYZ[2] = m_MagXYZ[2];
ketjow 0:936379a8793e 59 }
ketjow 0:936379a8793e 60 }