#include "DeviceStatusProtocolBase.h" #include "SignalGeneratorProtocolBM.h" #include "FrequencyTuningProtocolBM.h" #include "TimeSwitcherProtocolBM.h" #include "FreqSwitcherProtocolBM.h" #include "TimeReplicatorProtocolBM.h" #include "FreqReplicatorProtocolTX.h" #include "BCodeTerminalProtocolBM.h" #include <iostream> DeviceStatusProtocolBase::DeviceStatusProtocolBase(QObject *parent) : QObject(parent) { } DeviceStatusProtocolBase * DeviceStatusProtocolBase::deviceStatusProtocolFactory(QString deviceType) { std::cout << deviceType.toStdString() << std::endl; if (deviceType.contains("SignalGenerator") == true) { return new SignalGeneratorProtocolBM(); } else if (deviceType.contains("FrequencyTuning") == true) { return new FrequencyTuningProtocolBM(); } else if (deviceType.contains("TimeSwitcher") == true) { return new TimeSwitcherProtocolBM(); } else if (deviceType.contains("FreqSwitcher") == true) { return new FreqSwitcherProtocolBM(); } else if (deviceType.contains("FreqReplicator") == true) { return new FreqReplicatorProtocolTX(); } else if (deviceType.contains("TimeReplicator") == true) { return new TimeReplicatorProtocolBM(); } else if (deviceType.contains("BCodeTerminal") == true) { return new BCodeTerminalProtocolBM(); } return nullptr; } QByteArray DeviceStatusProtocolBase::generateSettingCommand(QString commandType, QString valueSet) { QByteArray commandBytes; commandBytes.append(commandType).append(","); commandBytes.append(valueSet); QString xorValue = this->calculateXOR(commandBytes); commandBytes.prepend("$"); commandBytes.append("*"); commandBytes.append(xorValue); return commandBytes; } QString DeviceStatusProtocolBase::calculateXOR(QByteArray byteArray) { quint8 xorValue = 0; for (int i =0; i < byteArray.size(); i++) { xorValue = xorValue ^ byteArray.at(i); } QString str; str.sprintf("%02X", xorValue); return str; }