From 787a688af6905f089e8b02dea7a8fe122c0ac03e Mon Sep 17 00:00:00 2001 From: JIe Date: Tue, 24 Sep 2024 16:59:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/serial.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/include/serial.h b/include/serial.h index d81b7fe..185a50b 100644 --- a/include/serial.h +++ b/include/serial.h @@ -42,7 +42,9 @@ public: std::string GetTimeNow(){ auto now = std::chrono::system_clock::now(); auto now_c = std::chrono::system_clock::to_time_t(now); - return std::ctime(&now_c); + char buffer[32]; + ctime_s(buffer, 32, &now_c); + return std::string(buffer); } template @@ -95,10 +97,12 @@ public: Log("Send: " + reallyCommand); std::this_thread::sleep_for(10ms); // char buffer[ser.available()] = {0}; - char* buffer = (char*)malloc(sizeof(char)*ser.available()); - std::cout< 0){ + buffer[size] = '\0'; response = std::string(buffer); Log("Receive: " + response); delete[] buffer; @@ -123,8 +127,9 @@ public: Log("Send : " + reallyCommand); while(std::chrono::system_clock::now() < endTime){ std::this_thread::sleep_for(10ms); - auto buffer = new char[ser.available()]; - auto size = ser.readBytes(buffer, sizeof(buffer), timeout); + auto availableSize = ser.available(); + auto buffer = new char[availableSize]; + auto size = ser.readBytes(buffer, availableSize, timeout); auto str = std::string(buffer); delete[] buffer; if(size > 0)