#pragma once #include "Defines.h" #include "LlUtils_global.h" // QByteArray转换专用类 // 其实该类的很多函数可以以模版template函数 // 来实现,但是通常template函数需要放.h文件中 // 故未采用。 class I_UTILSSHARED_EXPORT ZxBaHelper { public: ZxBaHelper(); public: /// @brief Vec与QByteArray相互转换 static bool convertVec2Ba(VecVariant& vec, QByteArray& ba); static bool convertBa2Vec(VecVariant& vec, QByteArray& ba); static bool convertVec2Ba(VecDouble& vec, QByteArray& ba); static bool convertBa2Vec(VecDouble& vec, QByteArray& ba); // static bool convertVec2Ba(VecDouble& vec, QByteArray& ba); // static bool convertBa2Vec(VecDouble& vec, QByteArray& ba); /// @brief VVec与QByteArray的转换 static bool convertVVec2Ba(VVecVariant& vvec, \ QByteArray& ba); /// @brief QByteArray与VVec的转换 static bool convertBa2VVec(VVecVariant& vvec, \ QByteArray& ba); /// @brief VVec与QByteArray的转换 static bool convertVVec2Ba(VVecDouble& vvec, \ QByteArray& ba); /// @brief QByteArray与VVec的转换 static bool convertBa2VVec(VVecDouble& vvec, \ QByteArray& ba); // /// @brief VecX、VecY与QByteArray的转换 // static bool convertVecXY2Ba(VecDouble& vecX, \ // VecDouble& vecY, \ // QByteArray& ba); // /// @brief QByteArray与VecX、VecY的转换 // static bool convertBa2VecXY(VecDouble& vecX, \ // VecDouble& vecY, \ // QByteArray& ba); /// @brief VecX、VecY与QByteArray的转换 static bool convertVecXY2Ba(VecDouble& vecX, \ VecDouble& vecY, \ QByteArray& ba); /// @brief QByteArray与VecX、VecY的转换 static bool convertBa2VecXY(VecDouble& vecX, \ VecDouble& vecY, \ QByteArray& ba); // /// @brief vvecXY 类似 vecXY << vecX << vecY // static bool convertBa2VVecXY(VVecDouble& vvecXY, \ // QByteArray& ba); /// @brief vvecXY 类似 vecXY << vecX << vecY static bool convertBa2VVecXY(VVecDouble& vvecXY, \ QByteArray& ba); /// @brief 把多个ba一起转换为VVec,主要用于多相情况 /// @param vecBAs,流量数据体的,ba,三个,油气水(每个都内含x/y) /// @param vvec结果 /// @param bVertical,如果为true,则 vvec[0]为时间,vvec[1]油,vvec[2]为气,vvec[3]为水 /// 如果为false,则vvec[0]为 时间/油/气/水,其它均类似 static bool convertVecBa2VVecF(QVector& vecBAs, \ VVecDouble& vvec, bool bVertical = true); /// @brief 把多个ba一起转换为VVec,主要用于多相情况 /// @param vecBAs,流量数据体的,ba,三个,油气水(每个都内含x/y) /// @param vvec结果 /// @param bVertical,如果为true,则 vvec[0]为时间,vvec[1]油,vvec[2]为气,vvec[3]为水 /// 如果为false,则vvec[0]为 时间/油/气/水,其它均类似 static bool convertVecBa2VVecV(QVector& vecBAs, \ VVecVariant& vvec, bool bVertical = false); /// @brief QVector // 已经废弃 static bool convertBa2VecPoints(QVector& vec, \ QByteArray& ba); /// @brief vvecData的每一个元素 (x,y) static bool convertBa2VVecData(VVecVariant& vvecData, \ QByteArray& ba); /// TODO 20231231 Old // 已经废弃 static bool convertVVecData2BaEx(VVecVariant& vvecData, QByteArray& ba); // 已经废弃 static bool convertBa2VVecDataEx(VVecVariant& vvecData, QByteArray& ba); /// TODO 20231231 Old // 已经废弃 static bool convertBa2VecData(VecDouble& vecData, QByteArray& ba); // 已经废弃 static bool convertVecData2Ba(VecDouble& vecData, QByteArray& ba); // ByteArray Image static bool imgToBa(QImage& img, QByteArray& ba); static bool baToImg(QImage& img, QByteArray& ba); // ByteArray map static bool mapToBa(QByteArray& ba, QMap& map); static bool baToMap(QByteArray& ba, QMap& map); static bool mapToBa(QByteArray& ba, QMap& map); static bool baToMap(QByteArray& ba, QMap& map); static bool mapToBa(QByteArray& ba, QMap& map); static bool baToMap(QByteArray& ba, QMap& map); };