File indexing completed on 2024-04-14 05:41:00

0001 #include "kiln.h"
0002 #include <seriallayer.h>
0003 #include <QTime>
0004 
0005 Kiln::Kiln(QObject *parent) :
0006     QObject(parent),
0007     core(new AtCore(this))
0008 {
0009     connect(this, &Kiln::print, core, &AtCore::print);
0010     connect(core, &AtCore::printProgressChanged, this, &Kiln::printProgressChanged);
0011 }
0012 
0013 void Kiln::setDevice(const QString &device, int baud)
0014 {
0015     addLog(QStringLiteral("Connecting To:%1 baud:%2").arg(device,QString::number(baud)));
0016     core->initSerial(device,baud);
0017     connect(core->serial(), &SerialLayer::receivedCommand, this, &Kiln::checkReceivedCommand);
0018     connect(core->serial(), &SerialLayer::pushedCommand, this, &Kiln::checkPushedCommands);
0019 }
0020 
0021 void Kiln::printProgressChanged(const float &newProgress)
0022 {
0023     QString text = QStringLiteral("[                    ]");
0024     int p = newProgress/5;
0025     QString indicator;
0026     indicator.fill(QChar::fromLatin1('#'),p);
0027     text.replace(1,p,indicator);
0028     text.append(QStringLiteral("%1\%").arg(QString::number(newProgress,'f',1)));
0029     addLog(text);
0030 }
0031 
0032 void Kiln::printFile(const QString &fileName)
0033 {
0034     addLog(QStringLiteral("Printing:%1").arg(fileName));
0035     emit(print(fileName));
0036 }
0037 
0038 PrinterState Kiln::state()
0039 {
0040     return core->state();
0041 }
0042 
0043 Kiln::~Kiln()
0044 {
0045 
0046 }
0047 
0048 void Kiln::checkReceivedCommand()
0049 {
0050     addRLog(QString::fromUtf8(core->serial()->popCommand()));
0051 }
0052 
0053 void Kiln::checkPushedCommands(QByteArray bmsg)
0054 {
0055     QString msg = QString::fromUtf8(bmsg);
0056     QRegExp _newLine(QChar::fromLatin1('\n'));
0057     QRegExp _return(QChar::fromLatin1('\r'));
0058     msg.replace(_newLine, QStringLiteral("\\n"));
0059     msg.replace(_return, QStringLiteral("\\r"));
0060     addSLog(msg);
0061 }
0062 
0063 QString Kiln::getTime()
0064 {
0065     return QTime::currentTime().toString(QStringLiteral("hh:mm:ss:zzz"));
0066 }
0067 
0068 QString Kiln::logHeader()
0069 {
0070     return QStringLiteral("[%1]  ").arg(getTime());
0071 }
0072 
0073 QString Kiln::rLogHeader()
0074 {
0075     return QStringLiteral("[%1]< ").arg(getTime());
0076 }
0077 
0078 QString Kiln::sLogHeader()
0079 {
0080     return QStringLiteral("[%1]> ").arg(getTime());
0081 }
0082 
0083 void Kiln::addLog(QString msg)
0084 {
0085     QString message(logHeader() + msg);
0086     QTextStream(stdout) << message <<endl;
0087 }
0088 
0089 void Kiln::addRLog(QString msg)
0090 {
0091     QString message(rLogHeader() + msg);
0092     QTextStream(stdout) << message <<endl;
0093 }
0094 
0095 void Kiln::addSLog(QString msg)
0096 {
0097     QString message(sLogHeader() + msg);
0098     QTextStream(stdout) << message <<endl;
0099 }