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
Signals/magnetometer.cpp@2:fcfb6ced9c00, 2016-12-07 (annotated)
- 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?
User | Revision | Line number | New 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 | } |