|
|
#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(VecFloat& vec, QByteArray& ba);
|
|
|
static bool convertBa2Vec(VecFloat& 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(VecFloat& vecX, \
|
|
|
VecFloat& vecY, \
|
|
|
QByteArray& ba);
|
|
|
|
|
|
/// @brief QByteArray与VecX、VecY的转换
|
|
|
static bool convertBa2VecXY(VecFloat& vecX, \
|
|
|
VecFloat& vecY, \
|
|
|
QByteArray& ba);
|
|
|
|
|
|
/// @brief vvecXY 类似 vecXY << vecX << vecY
|
|
|
static bool convertBa2VVecXY(VVecFloat& 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<QByteArray>& vecBAs, \
|
|
|
VVecFloat& 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<QByteArray>& vecBAs, \
|
|
|
VVecVariant& vvec, bool bVertical = false);
|
|
|
|
|
|
|
|
|
/// @brief QVector<QPointF>
|
|
|
// 已经废弃
|
|
|
static bool convertBa2VecPoints(QVector<QPointF>& 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(VecFloat& vecData, QByteArray& ba);
|
|
|
// 已经废弃
|
|
|
static bool convertVecData2Ba(VecFloat& 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<QString, QVariant>& map);
|
|
|
static bool baToMap(QByteArray& ba, QMap<QString, QVariant>& map);
|
|
|
static bool mapToBa(QByteArray& ba, QMap<QString, double>& map);
|
|
|
static bool baToMap(QByteArray& ba, QMap<QString, double>& map);
|
|
|
static bool mapToBa(QByteArray& ba, QMap<QString, float>& map);
|
|
|
static bool baToMap(QByteArray& ba, QMap<QString, float>& map);
|
|
|
};
|