fix:修正Linux下wxDateTime初始化问题。
This commit is contained in:
parent
1476e9ba49
commit
7bf936fa8f
@ -41,8 +41,8 @@ FrameBuffer* Communicate::ParseBuffer(MutBuffer& buffer)
|
|||||||
|
|
||||||
frame = new FrameBuffer();
|
frame = new FrameBuffer();
|
||||||
frame->len = dataLen;
|
frame->len = dataLen;
|
||||||
frame->fid = std::string(buffer.GetData() + find + sizeof(gHeader) + sizeof(uint16_t), 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, 32);
|
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));
|
std::memcpy(&frame->dataType, buffer.GetData() + find + sizeof(gHeader), sizeof(frame->dataType));
|
||||||
|
|
||||||
if (frame->len > 0) {
|
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);
|
len = sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len) + frame->len + sizeof(gTail);
|
||||||
*buf = new char[len];
|
*buf = new char[len];
|
||||||
|
std::memset(*buf + sizeof(gHeader) + sizeof(uint16_t), 0x0, 64);
|
||||||
std::memcpy(*buf, gHeader, sizeof(gHeader));
|
std::memcpy(*buf, gHeader, sizeof(gHeader));
|
||||||
std::memcpy(*buf + sizeof(gHeader), &frame->dataType, sizeof(frame->dataType));
|
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), frame->fid.c_str(), frame->fid.size());
|
||||||
std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 32, frame->tid.c_str(), 32);
|
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));
|
std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64, &frame->len, sizeof(frame->len));
|
||||||
if (frame->len > 0) {
|
if (frame->len > 0) {
|
||||||
std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len), dataPtr, frame->len);
|
std::memcpy(*buf + sizeof(gHeader) + sizeof(uint16_t) + 64 + sizeof(len), dataPtr, frame->len);
|
||||||
|
@ -84,6 +84,7 @@ void test3()
|
|||||||
}
|
}
|
||||||
delete[] d;
|
delete[] d;
|
||||||
}
|
}
|
||||||
|
delete f;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
|
@ -18,8 +18,7 @@ class MLogFormatter : public wxLogFormatter
|
|||||||
public:
|
public:
|
||||||
wxString Format(wxLogLevel level, const wxString& msg, const wxLogRecordInfo& info) const override
|
wxString Format(wxLogLevel level, const wxString& msg, const wxLogRecordInfo& info) const override
|
||||||
{
|
{
|
||||||
//wxDateTime time(info.timestampMS / 1000);
|
wxDateTime time(static_cast<time_t>(info.timestampMS / 1000));
|
||||||
wxDateTime time;
|
|
||||||
time.SetMillisecond(info.timestampMS % 1000);
|
time.SetMillisecond(info.timestampMS % 1000);
|
||||||
auto timeStr = time.Format(wxT("%H:%M:%S.%l"));
|
auto timeStr = time.Format(wxT("%H:%M:%S.%l"));
|
||||||
wxString levelStr;
|
wxString levelStr;
|
||||||
|
Reference in New Issue
Block a user