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 };