From 7bf936fa8f98e68c4ce0a899ffcd75206d7fe722 Mon Sep 17 00:00:00 2001
From: taynpg <taynpg@163.com>
Date: Mon, 12 May 2025 12:53:16 +0800
Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=AD=A3Linux=E4=B8=8BwxD?=
 =?UTF-8?q?ateTime=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Protocol/Communicate.cxx | 9 +++++----
 Test/main.cxx            | 1 +
 Util/Util.h              | 3 +--
 3 files changed, 7 insertions(+), 6 deletions(-)

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<time_t>(info.timestampMS / 1000));
         time.SetMillisecond(info.timestampMS % 1000);
         auto timeStr = time.Format(wxT("%H:%M:%S.%l"));
         wxString levelStr;