diff --git a/samples/gs_test.cpp b/samples/gs_test.cpp index 47a08ae..c64fd74 100644 --- a/samples/gs_test.cpp +++ b/samples/gs_test.cpp @@ -231,20 +231,20 @@ int main(int argc, char *argv[]) // return -1; // } //获取级联雷达设备信息 - std::vector dis; - ret = laser.getDeviceInfo(dis); - if (!ret) - { - fprintf(stderr, "Fail to get Device infomations %s\n", laser.DescribeError()); - fflush(stderr); - return -1; - } - for (int i=0; i dis; + // ret = laser.getDeviceInfo(dis); + // if (!ret) + // { + // fprintf(stderr, "Fail to get Device infomations %s\n", laser.DescribeError()); + // fflush(stderr); + // return -1; + // } + // for (int i=0; i ts; - ts[0] = getms(); - ts[1] = getms(); - ts[2] = getms(); + //打印帧间隔 + // std::map ts; + // ts[0] = getms(); + // ts[1] = getms(); + // ts[2] = getms(); while (ret && ydlidar::os_isOk()) { if (laser.doProcessSimple(scan)) { - // printf("[%lu] points in [0x%016lX] module num [%d] env flag [0x%04X]\n", - // scan.points.size(), - // scan.stamp, - // scan.moduleNum, - // scan.envFlag); - uint32_t t = getms(); - printf("module[%d] time[%lld]\n", scan.moduleNum, t - ts[scan.moduleNum]); - ts[scan.moduleNum] = t; + printf("[%llu] points in module num [%d] env flag [0x%04X]\n", + scan.points.size(), + scan.moduleNum, + scan.envFlag); + // uint32_t t = getms(); + // printf("module[%d] time[%lld]\n", scan.moduleNum, t - ts[scan.moduleNum]); + // ts[scan.moduleNum] = t; // for (size_t i = 0; i < scan.points.size(); ++i) // { diff --git a/src/CYdLidar.cpp b/src/CYdLidar.cpp index 9b35088..f397bf4 100644 --- a/src/CYdLidar.cpp +++ b/src/CYdLidar.cpp @@ -1405,11 +1405,19 @@ bool CYdLidar::getDeviceInfo() Minjor = (uint8_t)(di.firmware_version & 0xff); m_LidarVersion.hardware = di.hardware_version; m_LidarVersion.soft_major = Major; - m_LidarVersion.soft_minor = Minjor / 10; - m_LidarVersion.soft_patch = Minjor % 10; - memcpy(&m_LidarVersion.sn[0], &di.serialnum[0], 16); + if (isGSLidar(m_LidarType)) + { + m_LidarVersion.soft_minor = Minjor; + m_LidarVersion.soft_patch = 0; + } + else + { + m_LidarVersion.soft_minor = Minjor / 10; + m_LidarVersion.soft_patch = Minjor % 10; + } + memcpy(&m_LidarVersion.sn[0], &di.serialnum[0], SDK_SNLEN); - for (int i = 0; i < 16; i++) + for (int i = 0; i < SDK_SNLEN; i++) { serial_number += std::to_string(di.serialnum[i] & 0xff); } diff --git a/src/GSLidarDriver.cpp b/src/GSLidarDriver.cpp index 21c12f7..f559845 100644 --- a/src/GSLidarDriver.cpp +++ b/src/GSLidarDriver.cpp @@ -1619,6 +1619,7 @@ result_t GSLidarDriver::getDeviceInfo(device_info &info, uint32_t timeout) uint16_t(di.fwVersion >> 8); memcpy(info.serialnum, di.sn, SDK_SNLEN); // head.address; //雷达序号 + m_HasDeviceInfo |= EPT_Module | EPT_Base; } return RESULT_OK; @@ -1733,6 +1734,7 @@ result_t GSLidarDriver::getDeviceInfo2(device_info &info, uint32_t timeout) info.firmware_version = uint16_t((di.fwVersion & 0xFF) << 8) + uint16_t(di.fwVersion >> 8); memcpy(info.serialnum, di.sn, SDK_SNLEN); + m_HasDeviceInfo |= EPT_Module | EPT_Base; return ret; }