diff --git a/Protocol/HDSDK.cpp b/Protocol/HDSDK.cpp index f703041..eebbeca 100644 --- a/Protocol/HDSDK.cpp +++ b/Protocol/HDSDK.cpp @@ -547,7 +547,7 @@ bool HDSDKPrivate::ParseReadData(const std::string &data) return false; } - std::string buff = detail::Mid(data, 0, len); + std::string buff = detail::Mid(readBuff_, 0, len); detail::Remove(readBuff_, 0, len); bool result = true; @@ -636,8 +636,8 @@ bool HDSDKPrivate::ParseSDKCmdAnswer(std::string &&data) sdkBuff_.append(data); if (total <= sdkBuff_.size()) { - std::string buff(std::move(sdkBuff_)); - sdkBuff_.clear(); + std::string buff(sdkBuff_.substr(0, total)); + sdkBuff_ = sdkBuff_.substr(total); ReadXml(buff, 0); }