From b976795573fef6d107ce17fa627ef19c78f56816 Mon Sep 17 00:00:00 2001 From: zw <3466561528@qq.com> Date: Tue, 30 Sep 2025 08:40:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AE=9E=E6=97=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LFtid1056/PQSMsg.h | 83 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/LFtid1056/PQSMsg.h b/LFtid1056/PQSMsg.h index 31e32e2..1232f39 100644 --- a/LFtid1056/PQSMsg.h +++ b/LFtid1056/PQSMsg.h @@ -1961,7 +1961,47 @@ public: return floatVectorToBase64(float_buffer); } - // 根据接线方式选择转换方法 + // 角型接线转换函数-谐波电压含有率+畸变率 + std::string ConvertToBase64_Delta_RtHarmV() const { + std::vector float_buffer; + + //THD线电压畸变率(3-5) + for (int i = 3; i < 6; ++i) { + float_buffer.push_back(THD[i]); + } + + //电压谐波含有率(1-49次) + for (int i = 0; i < 3; ++i) { + for (int j = 1; j < HARMNUM; ++j) { + float_buffer.push_back(HARMV[i][j]); + } + } + + // 转换为Base64 + return floatVectorToBase64(float_buffer); + } + + // 星型接线转换函数-谐波电压含有率+畸变率 + std::string ConvertToBase64_Star_RtHarmV() const { + std::vector float_buffer; + + //THD线电压畸变率(3-5) + for (int i = 0; i < 3; ++i) { + float_buffer.push_back(THD[i]); + } + + //电压谐波含有率(1-49次) + for (int i = 0; i < 3; ++i) { + for (int j = 1; j < HARMNUM; ++j) { + float_buffer.push_back(HARMV[i][j]); + } + } + + // 转换为Base64 + return floatVectorToBase64(float_buffer); + } + + // 根据接线方式选择转换方法 数据全集解析 std::string ConvertToBase64(int wiringType) const { // 1为角型接线,其他为星型接线 if (wiringType == 1) { @@ -1971,6 +2011,47 @@ public: return ConvertToBase64_Star(); } } + + //单独解析-谐波电压含有率+畸变率 + std::string ConvertToBase64_RtHarmV(int wiringType) const { + // 1为角型接线,其他为星型接线 + if (wiringType == 1) { + return ConvertToBase64_Delta_RtHarmV(); + } + else { + return ConvertToBase64_Star_RtHarmV(); + } + } + + //单独解析-谐波电流幅值 + std::string ConvertToBase64_RtHarmI() const { + std::vector float_buffer; + + //电流谐波幅值(1-49次) + for (int i = 0; i < 3; ++i) { + for (int j = 1; j < HARMNUM; ++j) { + float_buffer.push_back(HARMI[i][j]); + } + } + + // 转换为Base64 + return floatVectorToBase64(float_buffer); + } + + //单独解析-间谐波电压含有率 + std::string ConvertToBase64_RtInHarmV() const { + std::vector float_buffer; + + //电压间谐波幅值(0-49次) + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < HARMNUM; ++j) { + float_buffer.push_back(INHARMV[i][j]); + } + } + + // 转换为Base64 + return floatVectorToBase64(float_buffer); + } }; #pragma pack(pop)