diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..32bbd5e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/* +.vscode/* +build/* diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..66e0588 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.26) + +set(PROJECT_N demo) +project(${PROJECT_N} VERSION 1.0) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +include_directories(${CMAKE_SOURCE_DIR}/include) + + +add_executable(${PROJECT_N} + ${CMAKE_SOURCE_DIR}/third/serialib.cpp + main.cc +) \ No newline at end of file diff --git a/demo.exe b/demo.exe index 5aaf030..dc7ab82 100644 Binary files a/demo.exe and b/demo.exe differ diff --git a/include/serial.h b/include/serial.h index 185a50b..56a1d65 100644 --- a/include/serial.h +++ b/include/serial.h @@ -98,7 +98,7 @@ public: std::this_thread::sleep_for(10ms); // char buffer[ser.available()] = {0}; auto availableSize = ser.available(); - auto buffer = new char[availableSize]; + char* buffer = new char[availableSize+1]; std::memset(buffer, 0, availableSize); auto size = ser.readBytes(buffer, availableSize, timeout); if(size > 0){ @@ -128,7 +128,7 @@ public: while(std::chrono::system_clock::now() < endTime){ std::this_thread::sleep_for(10ms); auto availableSize = ser.available(); - auto buffer = new char[availableSize]; + auto buffer = new char[availableSize+1]; auto size = ser.readBytes(buffer, availableSize, timeout); auto str = std::string(buffer); delete[] buffer; diff --git a/main.cc b/main.cc index 5df52a7..d01a202 100644 --- a/main.cc +++ b/main.cc @@ -17,7 +17,7 @@ int main(int argc, char** const argv){ auto startTime = std::chrono::system_clock::now(); // auto res = serial.GetAtUntil("AT+CFUN=1","OK", 200); // std::cout<(endTime-startTime).count();