#ifndef PS_H #define PS_H #include #include "includes.h" #include "pspublic.h" typedef struct { quint8 byHeadFlag; quint8 byTailFlag; quint16 wGenerateIndex; quint16 wConsumeIndex; quint16 wFrameHeadIndex; quint8 abyDataList[PS_FRAME_MAX_LEN]; quint16 wListLen; }PS_DATA_BUF_T; class MainDlg;//声明主窗口类 class Ps : public QObject { Q_OBJECT public: explicit Ps(QObject *parent = nullptr); void PsInit(); quint8 PsReceiveData(QByteArray bydataList, quint16 wLen); quint8 PsGenApMsg(quint8 byMcpType, quint8 byMsgType, quint8 *pbyData, quint16 wLen, quint8 *pbyApFrame,quint16 *pwApFrameLen); quint8 PsGenUpgradeMsg(quint8 byMsgType, quint8 *pbyData, quint16 wLen, quint8 *pbyOamData); private: MainDlg *m_pMainDlg; quint8 m_abyPsBuf[PS_FRAME_MAX_LEN];//数据缓存 quint8 m_abyTempData[PS_FRAME_MAX_LEN];//临时缓存 quint16 m_wListLen; quint8 m_abyPsMsg[PS_FRAME_MAX_LEN];//协议报文(已经成帧) qint8 m_byPacketNo; PS_DATA_BUF_T m_stDataBuf; quint8 PsUlMain(quint8 *pbyData, quint16 wLen);//协议栈模块主函数 quint8 PsUlAp(quint8 *pbyData, quint16 *pwLen);//AP层处理主函数 quint8 psApTransfer(quint8 *pbyData, quint16 *wLen); quint8 psApTransferReverse(quint8 *pbyData, quint16 *wLen); quint16 PsApGenCrc16(quint8 *data, quint16 len, quint16 def_crc); signals: void PsUlRespSignalQueryOk(quint8 *pbyData, quint16 wLen);//上行响应查询成功信号 void PsUlRespSignalQueryFail();//上行响应查询成功失败 void PsUlRespSignalConfigOk(quint8 *pbyData, quint16 wLen);//上行响应设置成功信号 void PsUlRespSignalConfigFail();//上行响应设置失败信号 void PsUlRespSignal(quint8 *pbyData, quint16 wLen);//上行响应信号 void PsUlRespSignalUpgradeSuccess(quint8 *pbyData);//升级响应成功 void PsUlRespSignalUpgradeFail();//升级响应失败 }; #endif // PS_H