#ifndef FREQUENCYTUNINGPROTOCOLBM_H #define FREQUENCYTUNINGPROTOCOLBM_H #include <QObject> #include <QList> #include "protocol/DeviceStatusProtocolBase.h" #include "dto/FrequencyTuningStatusFreqDto.h" #include "dto/FrequencyTuningStatusPulseDto.h" class FrequencyTuningProtocolBM : public DeviceStatusProtocolBase { Q_OBJECT public: explicit FrequencyTuningProtocolBM(QObject *parent = nullptr); ~FrequencyTuningProtocolBM(); // 解析数据 bool parseDeviceFrameData(QByteArray rawData, DeviceFrameBaseDto * ftFrameData, int frameType); DeviceFrameBaseDto * frameFactory(int frameType); // 生成频率微调设置指令 QByteArray generateFreqTunSetCommand(qlonglong freqTunSet); // 生成相位微调设置指令 QByteArray generatePhaseTunSetCommand(qlonglong phaseTunSet); // 生成移相设置指令 QByteArray generatePhaseShiftSetCommand(qlonglong phaseShiftSet); // 生成单次同步设置指令 QByteArray generateSingleSynchSetCommand(qint8 singleSynchSet); // 生成秒脉宽设置指令 QByteArray generateSecondWidthSetCommand(qlonglong secondWidthSet); // QList<QByteArray> extractFrameList(QByteArray rawData); // 检测帧格式,帧头帧尾 int checkFrame(QByteArray rawData); enum FREQUENCY_TUNING_FRAME_TYPE { UNKNOW_FRAME = 0, FREQ_FRAME = 1, PULSE_FRAME = 2, NETWORK_FRAME = 3 }; }; #endif // FREQUENCYTUNINGPROTOCOLBM_H