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-2018 Chris Rizzitello <rizzitello@kde.org>
0005     SPDX-FileCopyrightText: 2018 Patrick José Pereira <patrickjp@kde.org>
0006     SPDX-FileCopyrightText: 2018 Leandro Santiago <leandrosansilva@gmail.com>
0007 */
0008 
0009 #include "ifirmware.h"
0010 #include "atcore.h"
0011 
0012 /**
0013  * @brief The IFirmwarePrivate struct
0014  * @param parent: parent of this object
0015  */
0016 struct IFirmware::IFirmwarePrivate {
0017     AtCore *parent;
0018     /**
0019      * @brief command finished string
0020      */
0021     static const QString _ok;
0022 };
0023 
0024 const QString IFirmware::IFirmwarePrivate::_ok = QStringLiteral("ok");
0025 
0026 IFirmware::IFirmware()
0027     : d(new IFirmwarePrivate)
0028 {
0029 }
0030 
0031 void IFirmware::init(AtCore *parent)
0032 {
0033     setParent(parent);
0034     d->parent = parent;
0035     connect(d->parent, &AtCore::receivedMessage, this, &IFirmware::checkCommand);
0036 }
0037 
0038 IFirmware::~IFirmware()
0039 {
0040     delete d;
0041 }
0042 
0043 AtCore *IFirmware::core() const
0044 {
0045     return d->parent;
0046 }
0047 
0048 void IFirmware::checkCommand(const QByteArray &lastMessage)
0049 {
0050     validateCommand(QString::fromLatin1(lastMessage));
0051 }
0052 
0053 void IFirmware::validateCommand(const QString &lastMessage)
0054 {
0055     if (lastMessage.contains(IFirmwarePrivate::_ok)) {
0056         Q_EMIT readyForCommand();
0057     }
0058 }
0059 
0060 QByteArray IFirmware::translate(const QString &command)
0061 {
0062     return command.toLocal8Bit();
0063 }