Skip to content

Commit

Permalink
修改C接口获取GS2固件版本问题
Browse files Browse the repository at this point in the history
  • Loading branch information
zhanyiaini committed Aug 8, 2023
1 parent 270f033 commit 1c1feab
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 30 deletions.
52 changes: 26 additions & 26 deletions samples/gs_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -231,20 +231,20 @@ int main(int argc, char *argv[])
// return -1;
// }
//获取级联雷达设备信息
std::vector<device_info_ex> 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.size(); ++i)
{
const device_info_ex& di = dis.at(i);
printf("Device [%u]\n", di.id);
ydlidar::core::common::printfDeviceInfo(di.di, EPT_Module);
}
// std::vector<device_info_ex> 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.size(); ++i)
// {
// const device_info_ex& di = dis.at(i);
// printf("Device [%u]\n", di.id);
// ydlidar::core::common::printfDeviceInfo(di.di, EPT_Module);
// }

//启动扫描
ret = laser.turnOn();
Expand All @@ -256,23 +256,23 @@ int main(int argc, char *argv[])
}

LaserScan scan;
std::map<int, uint32_t> ts;
ts[0] = getms();
ts[1] = getms();
ts[2] = getms();
//打印帧间隔
// std::map<int, uint32_t> 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)
// {
Expand Down
16 changes: 12 additions & 4 deletions src/CYdLidar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 2 additions & 0 deletions src/GSLidarDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 1c1feab

Please sign in to comment.