From 964afad8b41ca7ee1a66e5b37acaafdc55190ea8 Mon Sep 17 00:00:00 2001 From: DavidHu Date: Wed, 26 Oct 2022 14:41:56 +0800 Subject: [PATCH] =?UTF-8?q?[update]=E7=89=88=E6=9C=AC=E5=8F=B7v3.0.3,?= =?UTF-8?q?=E6=9B=B4=E6=96=B0SDK=E5=B1=82(ldlidar=5Fdriver)=E3=80=82=201.?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D32=E4=BD=8D=E7=B3=BB=E7=BB=9F=E4=B8=8B?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0=E6=97=B6=E9=97=B4=E6=88=B3?= =?UTF-8?q?uint64=5Ft=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F=E4=B8=8D?= =?UTF-8?q?=E5=AF=B9=E9=97=AE=E9=A2=98=202.=20=E6=9B=B4=E6=94=B9=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=BF=80=E5=85=89=E9=9B=B7=E8=BE=BE=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E9=A2=91=E7=8E=87=E6=8E=A5=E5=8F=A3=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ldlidar_driver/include/core/ldlidar_driver.h | 2 +- ldlidar_driver/include/logger/log_module.h | 4 ++-- ldlidar_driver/src/core/ldlidar_driver.cpp | 4 ++-- ldlidar_driver/src/logger/log_module.cpp | 24 ++++++++++++++++---- src/publish_node/main.cpp | 11 ++++----- 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/ldlidar_driver/include/core/ldlidar_driver.h b/ldlidar_driver/include/core/ldlidar_driver.h index a0a22a8..0cd1fc1 100644 --- a/ldlidar_driver/include/core/ldlidar_driver.h +++ b/ldlidar_driver/include/core/ldlidar_driver.h @@ -116,7 +116,7 @@ class LDLidarDriver { * @retval value is true, get lidar laser scan frequence is success; * value is false, get lidar laser scan ferquence is fail. */ - bool GetLidarSpinFreq(double& spin_hz); + bool GetLidarScanFreq(double& spin_hz); /** * @brief register get timestamp handle functional. diff --git a/ldlidar_driver/include/logger/log_module.h b/ldlidar_driver/include/logger/log_module.h index 73994c1..46e1882 100644 --- a/ldlidar_driver/include/logger/log_module.h +++ b/ldlidar_driver/include/logger/log_module.h @@ -145,12 +145,12 @@ class LogModule { std::string GetCurrentTime(); - inline int64_t GetCurrentLocalTimeStamp() { + inline uint64_t GetCurrentLocalTimeStamp() { //// 获取系统时间戳 std::chrono::time_point tp = std::chrono::time_point_cast(std::chrono::system_clock::now()); auto tmp = std::chrono::duration_cast(tp.time_since_epoch()); - return tmp.count(); + return (uint64_t)tmp.count(); } std::string GetFormatValue(std::string str_value); diff --git a/ldlidar_driver/src/core/ldlidar_driver.cpp b/ldlidar_driver/src/core/ldlidar_driver.cpp index 04b5426..37aa513 100644 --- a/ldlidar_driver/src/core/ldlidar_driver.cpp +++ b/ldlidar_driver/src/core/ldlidar_driver.cpp @@ -25,7 +25,7 @@ namespace ldlidar { bool LDLidarDriver::is_ok_ = false; LDLidarDriver::LDLidarDriver() - : sdk_version_number_("v3.0.2"), + : sdk_version_number_("v3.0.3"), is_start_flag_(false), register_get_timestamp_handle_(nullptr), comm_pkg_(new LiPkg()), @@ -286,7 +286,7 @@ LidarStatus LDLidarDriver::GetLaserScanData(LaserScan& dst, int64_t timeout) { } } -bool LDLidarDriver::GetLidarSpinFreq(double& spin_hz) { +bool LDLidarDriver::GetLidarScanFreq(double& spin_hz) { if (!is_start_flag_) { return false; } diff --git a/ldlidar_driver/src/logger/log_module.cpp b/ldlidar_driver/src/logger/log_module.cpp index 264a338..61369e0 100644 --- a/ldlidar_driver/src/logger/log_module.cpp +++ b/ldlidar_driver/src/logger/log_module.cpp @@ -90,8 +90,16 @@ void LogModule::LogPrintInf(const char* format,...) { case DEBUG_LEVEL: { //时间戳 uint is seconds char s_stamp[100] = {0}; - int64_t timestamp = GetCurrentLocalTimeStamp(); - snprintf(s_stamp, 100, "[%ld.%ld]", (timestamp/1000000000), (timestamp%1000000000)); + uint64_t timestamp = GetCurrentLocalTimeStamp(); +#ifdef __LP64__ + snprintf(s_stamp, 100, "[%lu.%lu]", (timestamp/1000000000), (timestamp%1000000000)); +#else +#ifdef _WIN64 + snprintf(s_stamp, 100, "[%lu.%lu]", (timestamp/1000000000), (timestamp%1000000000)); +#else + snprintf(s_stamp, 100, "[%llu.%llu]", (timestamp/1000000000), (timestamp%1000000000)); +#endif +#endif str_temp.append(s_stamp); } break; @@ -132,8 +140,16 @@ void LogModule::LogPrintNoLocationInf(const char* format,...) { //时间戳 uint is seconds char s_stamp[100] = {0}; - int64_t timestamp = GetCurrentLocalTimeStamp(); - snprintf(s_stamp, 100, "[%ld.%ld]", (timestamp/1000000000), (timestamp%1000000000)); + uint64_t timestamp = GetCurrentLocalTimeStamp(); +#ifdef __LP64__ + snprintf(s_stamp, 100, "[%lu.%lu]", (timestamp/1000000000), (timestamp%1000000000)); +#else +#ifdef _WIN64 + snprintf(s_stamp, 100, "[%lu.%lu]", (timestamp/1000000000), (timestamp%1000000000)); +#else + snprintf(s_stamp, 100, "[%llu.%llu]", (timestamp/1000000000), (timestamp%1000000000)); +#endif +#endif str_temp.append(s_stamp); va_list ptr; diff --git a/src/publish_node/main.cpp b/src/publish_node/main.cpp index 823a479..eaf4d65 100644 --- a/src/publish_node/main.cpp +++ b/src/publish_node/main.cpp @@ -75,7 +75,7 @@ int main(int argc, char **argv) { ldlidarnode->EnableFilterAlgorithnmProcess(true); if (ldlidarnode->Start(type_name, port_name, serial_port_baudrate, ldlidar::COMM_SERIAL_MODE)) { - ROS_INFO("ldldiar node start is success"); + ROS_INFO("ldlidar node start is success"); } else { ROS_ERROR("ldlidar node start is fail"); exit(EXIT_FAILURE); @@ -94,18 +94,15 @@ int main(int argc, char **argv) { ros::Rate r(10); //10hz ldlidar::Points2D laser_scan_points; - double lidar_spin_freq; + double lidar_scan_freq; ROS_INFO("Publish topic message:ldlidar scan data ."); while (ros::ok()) { switch (ldlidarnode->GetLaserScanData(laser_scan_points, 1500)){ case ldlidar::LidarStatus::NORMAL: - ldlidarnode->GetLidarSpinFreq(lidar_spin_freq); - ToLaserscanMessagePublish(laser_scan_points, lidar_spin_freq, setting, lidar_pub); - break; - case ldlidar::LidarStatus::ERROR: - ROS_ERROR("ldlidar driver error."); + ldlidarnode->GetLidarScanFreq(lidar_scan_freq); + ToLaserscanMessagePublish(laser_scan_points, lidar_scan_freq, setting, lidar_pub); break; case ldlidar::LidarStatus::DATA_TIME_OUT: ROS_ERROR("get ldlidar data is time out, please check your lidar device.");