File indexing completed on 2024-05-12 04:41:10

0001 /* AtCore KDE Libary for 3D Printers
0002     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003     SPDX-FileCopyrightText: 2016, 2018 Tomaz Canabrava <tcanabrava@kde.org>
0004     SPDX-FileCopyrightText: 2016-2019 Chris Rizzitello <rizzitello@kde.org>
0005     SPDX-FileCopyrightText: 2016-2019 Patrick José Pereira <patrickjp@kde.org>
0006     SPDX-FileCopyrightText: 2018 Leandro Santiago <leandrosansilva@gmail.com>
0007 */
0008 
0009 #pragma once
0010 
0011 #include <QObject>
0012 
0013 #include "atcore_export.h"
0014 
0015 /**
0016  * @brief The Temperature class
0017  *
0018  * Read and hold the Temperature info for the printer
0019  */
0020 class ATCORE_EXPORT Temperature : public QObject
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(float bedTemperature READ bedTemperature NOTIFY bedTemperatureChanged)
0024     Q_PROPERTY(float bedTargetTemperature READ bedTargetTemperature NOTIFY bedTargetTemperatureChanged)
0025     Q_PROPERTY(float extruderTemperature READ extruderTemperature NOTIFY extruderTemperatureChanged)
0026     Q_PROPERTY(float extruderTargetTemperature READ extruderTargetTemperature NOTIFY extruderTargetTemperatureChanged)
0027 
0028     friend class TemperatureTests;
0029 
0030 public:
0031     /**
0032      * @brief Create a new Temperature object
0033      * @param parent
0034      */
0035     explicit Temperature(QObject *parent = nullptr);
0036     ~Temperature();
0037 
0038     /**
0039      * @brief Get bed current temperature
0040      */
0041     float bedTemperature() const;
0042 
0043     /**
0044      * @brief Get bed target temperature
0045      */
0046     float bedTargetTemperature() const;
0047 
0048     /**
0049      * @brief decode Temp values from string \p msg
0050      * @param msg: string to read vaules from
0051      */
0052     void decodeTemp(const QByteArray &msg);
0053 
0054     /**
0055      * @brief Get extruder temperature
0056      */
0057     float extruderTemperature() const;
0058 
0059     /**
0060      * @brief Get extruder target temperature
0061      */
0062     float extruderTargetTemperature() const;
0063 
0064 signals:
0065     /**
0066      * @brief bed temperature has changed
0067      */
0068     void bedTemperatureChanged();
0069 
0070     /**
0071      * @brief bed target temperature has changed
0072      */
0073     void bedTargetTemperatureChanged();
0074 
0075     /**
0076      * @brief extruder temperature has changed
0077      */
0078     void extruderTemperatureChanged();
0079 
0080     /**
0081      * @brief extruder target temperature has changed
0082      */
0083     void extruderTargetTemperatureChanged();
0084 
0085 protected:
0086     /**
0087      * @brief Reset internal temperature data, For Tests-Only
0088      */
0089     void resetData();
0090 
0091 private:
0092     struct TemperaturePrivate;
0093     TemperaturePrivate *d;
0094 };