|
| 1 | +diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 2 | +index 48123e6..f0cecc7 100644 |
| 3 | +--- a/CMakeLists.txt |
| 4 | ++++ b/CMakeLists.txt |
| 5 | +@@ -21,18 +21,25 @@ endif() |
| 6 | + set(RPLIDAR_SDK_PATH "./sdk/") |
| 7 | + |
| 8 | + if(APPLE) |
| 9 | +-add_compile_definitions(_MACOS) |
| 10 | +-FILE(GLOB RPLIDAR_SDK_SRC |
| 11 | +- "${RPLIDAR_SDK_PATH}/src/arch/macOS/*.cpp" |
| 12 | +- "${RPLIDAR_SDK_PATH}/src/hal/*.cpp" |
| 13 | +- "${RPLIDAR_SDK_PATH}/src/*.cpp" |
| 14 | +-) |
| 15 | ++ add_compile_definitions(_MACOS) |
| 16 | ++ FILE(GLOB RPLIDAR_SDK_SRC |
| 17 | ++ "${RPLIDAR_SDK_PATH}/src/arch/macOS/*.cpp" |
| 18 | ++ "${RPLIDAR_SDK_PATH}/src/hal/*.cpp" |
| 19 | ++ "${RPLIDAR_SDK_PATH}/src/*.cpp" |
| 20 | ++ ) |
| 21 | ++elseif(WIN32) |
| 22 | ++ add_compile_definitions(_USE_MATH_DEFINES) |
| 23 | ++ FILE(GLOB RPLIDAR_SDK_SRC |
| 24 | ++ "${RPLIDAR_SDK_PATH}/src/arch/win32/*.cpp" |
| 25 | ++ "${RPLIDAR_SDK_PATH}/src/hal/*.cpp" |
| 26 | ++ "${RPLIDAR_SDK_PATH}/src/*.cpp" |
| 27 | ++ ) |
| 28 | + else() |
| 29 | +-FILE(GLOB RPLIDAR_SDK_SRC |
| 30 | +- "${RPLIDAR_SDK_PATH}/src/arch/linux/*.cpp" |
| 31 | +- "${RPLIDAR_SDK_PATH}/src/hal/*.cpp" |
| 32 | +- "${RPLIDAR_SDK_PATH}/src/*.cpp" |
| 33 | +-) |
| 34 | ++ FILE(GLOB RPLIDAR_SDK_SRC |
| 35 | ++ "${RPLIDAR_SDK_PATH}/src/arch/linux/*.cpp" |
| 36 | ++ "${RPLIDAR_SDK_PATH}/src/hal/*.cpp" |
| 37 | ++ "${RPLIDAR_SDK_PATH}/src/*.cpp" |
| 38 | ++ ) |
| 39 | + endif() |
| 40 | + |
| 41 | + ################################################################################ |
| 42 | +diff --git a/sdk/Makefile b/sdk/Makefile |
| 43 | +index 81215d9..69aec97 100644 |
| 44 | +--- a/sdk/Makefile |
| 45 | ++++ b/sdk/Makefile |
| 46 | +@@ -60,6 +60,12 @@ CXXSRC += src/arch/macOS/net_serial.cpp \ |
| 47 | + src/arch/macOS/timer.cpp |
| 48 | + endif |
| 49 | + |
| 50 | ++ifeq ($(BUILD_TARGET_PLATFORM),Windows) |
| 51 | ++CXXSRC += src/arch/windows/net_serial.cpp \ |
| 52 | ++ src/arch/windows/net_socket.cpp \ |
| 53 | ++ src/arch/windows/timer.cpp |
| 54 | ++endif |
| 55 | ++ |
| 56 | + all: build_sdk |
| 57 | + |
| 58 | + include $(HOME_TREE)/mak_common.inc |
| 59 | +diff --git a/sdk/src/arch/macOS/net_socket.cpp b/sdk/src/arch/macOS/net_socket.cpp |
| 60 | +index f7ddfbf..153de6d 100644 |
| 61 | +--- a/sdk/src/arch/macOS/net_socket.cpp |
| 62 | ++++ b/sdk/src/arch/macOS/net_socket.cpp |
| 63 | +@@ -754,6 +754,26 @@ public: |
| 64 | + |
| 65 | + } |
| 66 | + |
| 67 | ++ virtual u_result clearRxCache() |
| 68 | ++ { |
| 69 | ++ timeval tv; |
| 70 | ++ tv.tv_sec = 0; |
| 71 | ++ tv.tv_usec = 0; |
| 72 | ++ fd_set rdset; |
| 73 | ++ FD_ZERO(&rdset); |
| 74 | ++ FD_SET(_socket_fd, &rdset); |
| 75 | ++ |
| 76 | ++ int res = -1; |
| 77 | ++ char recv_data[2]; |
| 78 | ++ memset(recv_data, 0, sizeof(recv_data)); |
| 79 | ++ while (true) { |
| 80 | ++ res = select(FD_SETSIZE, &rdset, nullptr, nullptr, &tv); |
| 81 | ++ if (res == 0) break; |
| 82 | ++ recv(_socket_fd, recv_data, 1, 0); |
| 83 | ++ } |
| 84 | ++ return RESULT_OK; |
| 85 | ++ } |
| 86 | ++ |
| 87 | + virtual u_result recvFrom(void *buf, size_t len, size_t & recv_len, SocketAddress * sourceAddr) |
| 88 | + { |
| 89 | + struct sockaddr * addr = (sourceAddr?reinterpret_cast<struct sockaddr *>(const_cast<void *>(sourceAddr->getPlatformData())):NULL); |
0 commit comments