From 798b5eb97246b776adee3eb1af1eabbad37b8ade Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Sat, 23 Jan 2016 21:37:22 -0800 Subject: [PATCH] Extract Temperature, Pressure into units header. --- firmware/application/tpms_app.hpp | 58 +++------------------- firmware/common/units.hpp | 81 +++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 52 deletions(-) create mode 100644 firmware/common/units.hpp diff --git a/firmware/application/tpms_app.hpp b/firmware/application/tpms_app.hpp index aa33de24..8484fb22 100644 --- a/firmware/application/tpms_app.hpp +++ b/firmware/application/tpms_app.hpp @@ -31,6 +31,10 @@ #include "optional.hpp" +#include "units.hpp" +using units::Temperature; +using units::Pressure; + namespace tpms { class TransponderID { @@ -54,56 +58,6 @@ private: uint32_t id_; }; -class Pressure { -public: - constexpr Pressure( - ) : kpa_ { 0 } - { - } - - constexpr Pressure( - const int32_t kilopascal - ) : kpa_ { static_cast(kilopascal) } - { - } - - int kilopascal() const { - return kpa_; - } - - int psi() const { - return static_cast(kpa_) * 1000 / 6895; - } - -private: - int16_t kpa_; -}; - -class Temperature { -public: - constexpr Temperature( - ) : c_ { 0 } - { - } - - constexpr Temperature( - const int32_t celsius - ) : c_ { static_cast(celsius) } - { - } - - int celsius() const { - return c_; - } - - int fahrenheit() const { - return (c_ * 9 / 5) + 32; - } - -private: - int16_t c_; -}; - class Reading { public: enum Type { @@ -208,8 +162,8 @@ struct TPMSRecentEntry { size_t received_count { 0 }; - Optional last_pressure; - Optional last_temperature; + Optional last_pressure; + Optional last_temperature; TPMSRecentEntry( const Key& key diff --git a/firmware/common/units.hpp b/firmware/common/units.hpp new file mode 100644 index 00000000..d3923426 --- /dev/null +++ b/firmware/common/units.hpp @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2016 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __UNITS_H__ +#define __UNITS_H__ + +#include + +namespace units { + +class Pressure { +public: + constexpr Pressure( + ) : kpa_ { 0 } + { + } + + constexpr Pressure( + const int kilopascal + ) : kpa_ { static_cast(kilopascal) } + { + } + + int kilopascal() const { + return kpa_; + } + + int psi() const { + return kpa_ * 1000 / 6895; + } + +private: + int16_t kpa_; +}; + +class Temperature { +public: + constexpr Temperature( + ) : c_ { 0 } + { + } + + constexpr Temperature( + const int celsius + ) : c_ { static_cast(celsius) } + { + } + + int celsius() const { + return c_; + } + + int fahrenheit() const { + return (c_ * 9 / 5) + 32; + } + +private: + int16_t c_; +}; + +} /* namespace units */ + +#endif/*__UNITS_H__*/