diff --git a/Protocol/Communicate.cxx b/Protocol/Communicate.cxx index 6c857ab..ac60b43 100644 --- a/Protocol/Communicate.cxx +++ b/Protocol/Communicate.cxx @@ -41,8 +41,8 @@ FrameBuffer* Communicate::ParseBuffer(MutBuffer& buffer) frame = new FrameBuffer(); frame->len = dataLen; - frame->fid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t), 32); - frame->tid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t) + 32, 32); + frame->fid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t)); + frame->tid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t) + 32); std::memcpy(&frame->dataType, buffer.GetData() + find + sizeof(gHeader), sizeof(frame->dataType)); if (frame->len > 0) { @@ -70,10 +70,11 @@ bool Communicate::PackBuffer(FrameBuffer* frame, char** buf, int32_t& len) } len = sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len) + frame->len + sizeof(gTail); *buf = new char[len]; + std::memset(*buf + sizeof(gHeader) + sizeof(uint16_t), 0x0, 64); std::memcpy(*buf, gHeader, sizeof(gHeader)); std::memcpy(*buf + sizeof(gHeader), &frame->dataType, sizeof(frame->dataType)); - std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t), frame->fid.c_str(), 32); - std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 32, frame->tid.c_str(), 32); + std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t), frame->fid.c_str(), frame->fid.size()); + std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 32, frame->tid.c_str(), frame->tid.size()); std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64, &frame->len, sizeof(frame->len)); if (frame->len > 0) { std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len), dataPtr, frame->len); diff --git a/Test/main.cxx b/Test/main.cxx index 3575b98..9fef3f1 100644 --- a/Test/main.cxx +++ b/Test/main.cxx @@ -84,6 +84,7 @@ void test3() } delete[] d; } + delete f; } int main() diff --git a/Util/Util.h b/Util/Util.h index 5050b87..af92da7 100644 --- a/Util/Util.h +++ b/Util/Util.h @@ -18,8 +18,7 @@ class MLogFormatter : public wxLogFormatter public: wxString Format(wxLogLevel level, const wxString& msg, const wxLogRecordInfo& info) const override { - //wxDateTime time(info.timestampMS / 1000); - wxDateTime time; + wxDateTime time(static_cast(info.timestampMS / 1000)); time.SetMillisecond(info.timestampMS % 1000); auto timeStr = time.Format(wxT("%H:%M:%S.%l")); wxString levelStr;