上海星秒光电科技有限公司 - 1 - - 2 - 目 录 1 概述............................................................................................................................................................... 6 1.1 系统要求........................................................................................................................................... 6 1.2 Pavo2 体系结构................................................................................................................................6 2 核心数据结构............................................................................................................................................... 8 3 接口说明..................................................................................................................................................... 10 3.1 pavo2_driver.................................................................................................................................11 3.2 set_local_address.......................................................................................................................11 3.3 set_conn_protocol.......................................................................................................................11 3.4 pavo2_open..................................................................................................................................... 12 3.5 pavo2_is_open...............................................................................................................................12 3.6 pavo2_close...................................................................................................................................12 3.7 get_scans_available...................................................................................................................13 3.8 get_ptp_deviations_available.................................................................................................13 3.9 get_scanned_data.........................................................................................................................13 3.10 recv_point_cloud.......................................................................................................................15 3.11 recv_ptp_deviation_data.........................................................................................................15 3.12 get_device_sn.............................................................................................................................15 3.13 get_device_pn.............................................................................................................................16 3.14 get_sdk_ver.................................................................................................................................16 3.15 get_os_ver...................................................................................................................................16 3.16 get_firmware_ver.......................................................................................................................16 3.17 get_os_error...............................................................................................................................17 3.18 get_error_code...........................................................................................................................17 3.19 enable_data.................................................................................................................................17 3.20 set_intensity_mode...................................................................................................................18 3.21 get_intensity_mode...................................................................................................................18 3.22 set_angle_range.........................................................................................................................18 3.23 get_angle_range.........................................................................................................................18 3.24 get_max_angle_range.................................................................................................................19 3.25 set_motor_speed.........................................................................................................................19 3.26 get_motor_speed.........................................................................................................................19 3.27 get_motor_speed_enable...........................................................................................................20 3.28 set_angle_resolution...............................................................................................................20 3.29 get_angle_resolution...............................................................................................................20 3.30 get_angle_resolution_enable.................................................................................................20 3.31 set_device_ip.............................................................................................................................21 3.32 get_device_ip.............................................................................................................................21 3.33 set_tcp_port...............................................................................................................................21 3.34 get_tcp_port...............................................................................................................................21 3.35 set_device_mask.........................................................................................................................22 3.36 get_device_mask.........................................................................................................................22 3.37 set_device_gateway...................................................................................................................22 - 3 - 3.38 get_device_gateway...................................................................................................................22 3.39 get_device_mac...........................................................................................................................23 3.40 set_os_restart...........................................................................................................................23 3.41 set_echo_mode.............................................................................................................................23 3.42 get_echo_mode.............................................................................................................................23 3.43 set_outdoor_mode.......................................................................................................................24 3.44 get_outdoor_mode.......................................................................................................................24 3.45 set_calibrate_horizontal_angle...........................................................................................24 3.46 get_calibrate_horizontal_angle...........................................................................................25 3.47 get_max_angle_distance...........................................................................................................25 3.48 enable_tail_filter...................................................................................................................25 3.49 enable_front_filter.................................................................................................................25 3.50 enable_far_hr_filter...............................................................................................................26 3.51 enable_near_hr...........................................................................................................................26 3.52 is_near_hr_enabled...................................................................................................................26 3.53 is_near_hr_supported...............................................................................................................26 3.54 set_warn_angle_range...............................................................................................................27 3.55 get_warn_angle_range...............................................................................................................27 3.56 set_warn_intensity_distance.................................................................................................27 3.57 get_warn_intensity_distance.................................................................................................28 3.58 set_warn_point_number.............................................................................................................28 3.59 get_warn_point_number.............................................................................................................28 3.60 enable_ptp...................................................................................................................................28 3.61 is_ptp_enabled...........................................................................................................................29 3.62 is_ptp_supported.......................................................................................................................29 3.63 get_temperature.........................................................................................................................29 3.64 get_heartbeat.............................................................................................................................30 - 4 - 修订历史 - 6 - 1 概述 本文档描述了 SIMINICS Pavo2 SDK 的功能与使用方法,与 Pavo2 Lidar 同时发布。 本 SDK 不能用于对其他设备或系统的控制,请勿移作他用。 1.1 系统要求 本 SDK 为源码发布,请用户自行集成到目标系统。 SDK 使用了同时支持 Windows 和 Linux 操作系统。 SDK 使用了多线程和 Socket 技术,编译时请确保操作系统支持多线程和 Socket 库。 SDK 由 C++编写,遵循 C++11 标准,请确保编译器支持 C++11 标准。 1.2 Pavo2 体系结构 - 7 - 图 1:Pavo2 系统基本结构 Pavo2 数据采集系统从软件角度包括以下几个部分: 1. Pavo2 Lidar:采集环境数据。 2. Ethernet: Pavo2 Lidar 通过 Ethernet 与上位机连接。Pavo2 Lidar 采集到的数据经由 TCP/UDP 数据包发送到上位机。 3. SDK:上位机程序可以通过 SDK 提供的接口接收 Pavo2 Lidar 采集到的数据或对 Pavo2 Lidar 进 行控制: 1) 获取设备数据线程:读取设备数据,保证数据传输速度。 SDK 通过 TCP/UDP 与雷达进行连接,并启动一专门线程接收雷达数据。 2) 数据缓存:接收到的数据先缓存在内存中。 用户通过 SDK 接口类获得的数据都是最新一帧的数据,该帧以前的数据如未及时读取, 会被丢弃。 视 Pavo2 型号不同,雷达与上位机的数据通信有两种方式 1. 只提供 TCP 连接。 2. 同时支持 TCP 和 UDP 连接,用户可以选择 TCP 或 UDP 连接方式。 具体型号支持何种协议,请咨询销售人员。 - 8 - 2 核心数据结构 enum class PAVO2_PROTO_TYPE : int { DEFUALT = 0, TCP = 1, UDP = 2 };typedef struct pavo_response_scan { uint16_t angle; uint16_t distance; uint8_t intensity; } __DATA_ALIGN__ pavo_response_scan_t; typedef struct pavo_response_pcd { double x; double y; double z; //fixed as 0 for single-laser device uint8_t intensity; } __DATA_ALIGN__ pavo_response_pcd_t; typedef struct pavo_packet_info_pcd { vector vec_buff; uint32_t time_stamp; uint32_t time_delay; } __DATA_ALIGN__ pavo_packet_info_pcd_t; typedef struct pavo_packet_info_scan { vector vec_buff; uint32_t time_stamp; uint32_t time_delay; } __DATA_ALIGN__ pavo_packet_info_scan_t; typedef struct pavo_point_cloud_scan { uint32_t packet_id; bool ptp_en; uint16_t process_delay; uint16_t angle_resolution; uint16_t start_angle; uint16_t end_angle; vector data; uint64_t time_stamp; } pavo_point_cloud_scan_t; typedef struct pavo_ptp_deviation { int64_t last_sync_time; int64_t time_offset; }pavo_ptp_deviation_t; PAVO2 _PROTO _TYPE:选择 pavo2 _driver 连接 Pavo2 Lidar 所使用的协议。 pavo _response _scan _t:角度和距离坐标。 angle:单位为 0.01 度。 distance:单位为 0.002 米。 intensity:值在 0~4500 之间,为一相对值。 pavo _response _pcd _t: 笛卡尔坐标。 - 9 - x,y,z:单位为 0.002 米。 intensity: 值在 0~4500 之间,为一相对值。 pavo _packet _info _pcd _t:一圈点云数据 vec _buff:点云数据集合 time _stamp:时间戳 time _delay:时间延时 pavo _packet _info _scan _t:一圈点云数据 vec _buff:点云数据集合 time _stamp:时间戳 time _delay:时间延时 这些数据结构定义在 pavo2 _types.h 头文件中。 pavo _point _cloud _scan _t: 一圈点云数据,包括点云头部信息 packet _id: 一圈点云数据 id ptp_en: 是否开启 ptp 功能 process _delay: 点云在雷达固件中的处理延时 angle _resolution: 角分辨率 start _angle:点云起始角度 end _angle: 点云结束角度 Data: 点云数据 time _stamp: 点云时间戳 pavo _ptp_deviation _t: 雷达与 ptp 主机之间的时间偏差信息 last _sync _time:雷达与 ptp 主机之间的上一次同步时间。 time _offset:雷达与主机之间的时间偏差。 - 10 - 3 接口说明 用户通过类“class pavo2 _driver”对 Pavo2 Lidar 进行访问。该类定义在 pavo2 _driver.h 头文件中, SDK 的版本号通过 SDK _VER 宏定义进行获取,主要函数有: class pavo2_driver { public: pavo2_driver(); ~pavo2_driver(); void set_local_address(std::string local_ip, uint16_t local_port); void set_conn_protocol(PAVO2_PROTO_TYPE proto_type); bool pavo2_open(string lidar_ip, uint16_t lidar_port, uint32_t timeout = 0); bool pavo2_is_open(); bool pavo2_close(); std::size_t get_scans_available() const; std::size_t get_ptp_deviations_available() const; bool get_scanned_data(pavo_response_scan_t* data_buffer, uint16_t& count, uint16_t timeout = 0); bool get_scanned_data(std::vector& vec_buff, uint16_t timeout = 0); bool get_scanned_data(pavo_response_pcd_t* data_buffer, uint16_t& count, uint16_t timeout = 0); bool get_scanned_data(std::vector& vec_buff, uint16_t timeout = 0); bool recv_point_cloud(pavo_point_cloud_scan_t& scan, uint16_t timeout = 0); bool recv_ptp_deviation_data(pavo_ptp_deviation_t& ptp_deviation, uint16_t timeout = 0); bool get_device_sn(string & sn); bool get_device_pn(string & pn); bool get_sdk_ver(string & ver); bool get_os_ver(string & ver); bool get_firmware_ver(string & ver); bool get_os_error(uint32_t& errCode,uint8_t iIndex = 0); int get_error_code(); bool enable_data(bool en); bool set_intensity_mode(bool en); bool get_intensity_mode(bool & en); bool set_angle_range(uint16_t start, uint16_t end); bool get_angle_range(uint16_t & start, uint16_t & end); bool set_motor_speed(uint8_t val); bool get_motor_speed(uint8_t & val); bool get_motor_speed_enable(uint32_t & val); bool set_angle_resolution(uint16_t val); bool get_angle_resolution(uint16_t& val); bool get_angle_resolution_enable(uint32_t & val); bool set_device_ip(string ip); bool get_device_ip(string & ip); bool set_tcp_port(uint16_t val); bool get_tcp_port(uint16_t & val); bool set_device_mask(const std::string& mask); bool get_device_mask(std::string& mask); bool set_device_gateway(const std::string& gateway); bool get_device_gateway(std::string& gateway); bool get_device_mac(std::string& mac); bool set_os_restart(); bool set_echo_mode(bool en); bool get_echo_mode(bool& en); bool set_outdoor_mode(bool en); bool get_outdoor_mode(bool& en); bool set_calibrate_horizontal_angle(uint32_t angle); bool get_calibrate_horizontal_angle(uint32_t& angle); bool get_max_angle_distance(uint32_t & val); bool enable_tail_filter(uint16_t method); bool enable_front_filter(uint16_t iLevel); bool enable_far_hr_filter(uint16_t hrLevel); - 11 - bool enable_near_hr_filter(bool en); bool get_near_hr_filter(bool &en); bool set_warn_angle_range(uint16_t start,uint16_t end); bool get_warn_angle_range(uint16_t& start,uint16_t& end); bool set_warn_intensity_distance(uint16_t distance,uint16_t intensity); bool get_warn_intensity_distance(uint16_t& distance,uint16_t& intensity); bool set_warn_point_number(uint16_t number); bool get_warn_point_number(uint16_t& number); bool enable_ptp(bool en); bool is_ptp_enabled(bool &en); bool get_temperature(float& temperature); bool get_heartbeat(); //其后省略..... } 3.1 pavo2_driver Pavo2 Driver 的构造函数。 pavo2_driver(); SDK 核心类,在创建时,会启动一个 TCP 通信节点,用于和 Pavo2 雷达通信。 采用雷达被动上传数据模式。 3.2 set_local_address 绑定和雷达连接的本地 IP 地址和端口。 void set_local_address(const std::string& local_ip, uint16_t local_port); 参数: local_ip:输入参数,本地 IP 地址。 返回值: 无。 3.3 set_conn_protocol 选择所创建的 pavo2 _driver 连接 Pavo2 Lidar 所使用的协议。 void set_conn_protocol(PAVO2_PROTO_TYPE proto_type); 参数: proto_type:输入参数,选择所需要使用的协议。 DEFAULT:使用默认协议,当前默认协议是 TCP; TCP:使用 TCP 协议; UDP:使用 UDP 协议。 返回值: 无。 PAVO2_PROTO_TYPE 定义如下: enum class PAVO2_PROTO_TYPE : int { DEFUALT = 0, - 12 - TCP = 1, UDP = 2 }; 3.4 pavo2_open 和 pavo2 雷达建立通信连接。 bool pavo2_open(const std::string& lidar_ip, uint16_t lidar_port, uint32_t timeout = 0); 参数: lidar_ip:输入参数,雷达的 IP 地址。 lidar_port:输入参数,雷达的发送数据端口。 timeout:输入参数,超时时间,单位 ms。默认值为 0。如果该值为 0,则该函数会一直 阻塞。如果该值大于零,则如果超过该时间还没有成功建立通信,则函数仍然返回,返回值为 false。 返回值: 是否成功建立连接: true:建立连接成功; false:建立连接失败或超时。 3.5 pavo2_is_open 判断是否与 Pavo2 Lidar 成功连接。常用于连接建立后,对连接通信是否仍然正常进行判断。 bool pavo2_is_open(); 参数: 无。 返回值: 连接是否成功: true: 连接成功; false:连接失败。 3.6 pavo2_close 关闭和雷达的通信连接。 bool pavo2_close(); 参数: 无。 返回值: true:关闭成功; false:关闭失败。 - 13 - 3.7 get_scans_available 获取 SDK 中缓存的点云圈数。 std::size_t get_scans_available() const; 参数: 无。 返回值: 缓存的点云圈数。 3.8 get_ptp_deviations_available 获取 SDK 中缓存的 ptp 时间偏差信息数量。 std::size_t get_ptp_deviations_available() const; 参数: 无。 返回值: 缓存的 ptp 时间偏差信息数量。 3.9 get_scanned_data 该接口用于获取 Pavo2 Lidar 扫描到的数据,根据数据类型的不同,函数重载四次。 bool get_scanned_data(pavo_response_scan_t* data_buffer, uint16_t& count, uint16_t timeout = 0); 参数: data _buffer:输出参数,用户提供的数据返回数组。用户须保证该参数的有效性。 count: 输入/输出参数,返回的数据个数。 输入:data _buffer 大小; 输出:返回数据个数,如返回数据大于 data _buffer 大小,则表示缓冲大小不足。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 bool get_scanned_data(std::vector& vec_buff, uint16_t timeout = 0); 参数: vec _buff:输出参数,返回数据。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 - 14 - 数仍然返回,返回值为 false; 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 bool get_scanned_data(pavo_response_pcd_t* data_buffer,uint16_t& count, uint16_t timeout = 0); 参数: data _buffer:输出参数,用户提供的数据返回数组。用户须保证该参数的有效性。 count:输入/输出参数,返回的数据个数。 输入:data _buffer 大小; 输出:返回数据个数,如返回数据大于 data _buffer 大小,则表示缓冲大小不足。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 bool get_scanned_data(std::vector& vec_buff, uint16_t timeout = 0); 参数: vec _buff:输出参数,返回数据。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false; 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 bool get_scanned_data(pavo_packet_info_scan_t& packet_info_scan, uint16_t timeout = 0); 参数: packet _info _scan:输出参数,用户提供的数据返回数组。用户须保证该参数的有效性。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据。 - 15 - bool get_scanned_data(pavo_packet_info_pcd_t& packet_info_pcd, uint16_t timeout = 0); 参数: packet _info _pcd:输出参数,用户提供的数据返回数组。用户须保证该参数的有效性。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据。 3.10 recv_point_cloud 该接口用于获取 Pavo2 Lidar 扫描到的点云数据,与 get _scanned _data,该接口获取的点云数据还包 括头部信息。 bool recv_point_cloud(pavo_point_cloud_scan_t& scan, uint16_t timeout=0); 参数: scan:输出参数,点云数据。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 3.11 recv_ptp_deviation_data 获取 Pavo2 Lidar 与 ptp 主机之间的时间偏差信息。 bool recv_ptp_deviation_data(pavo_ptp_deviation_t& ptp_deviation, uint16_t timeout=0); 参数: ptp_deviation:输出参数,ptp 时间偏差信息。 timeout:输入参数,超时时间,单位 ms。如果该值为 0,则在获得有效数据之前,该函 数会一直阻塞。如果该值大于零,则如果超过该时间还没有获得有效数据,则函 数仍然返回,返回值为 false。 返回值: 是否获得有效数据: true: 获得有效数据; false:获取数据失败。 3.12 get_device_sn - 16 - 获取设备 SN 序列号。 bool get_device_sn(std::string& sn); 参数: sn:获取到的设备 SN 序列号。 返回值: true:调用成功; false::调用失败。 3.13 get_device_pn 获取设备 PN 序列号。 bool get_device_pn(std::string& pn); 参数: pn:获取到的设备 PN 序列号,以十六进制显示。 返回值: true: 调用成功; false:调用失败。 3.14 get_sdk_ver 获取 sdk 版本号。 bool get_sdk_ver(std::string& ver); 参数: ver:输出参数。Sdk 版本号。 返回值: true: 调用成功; false:调用失败。 3.15 get_os_ver 获取雷达操作系统版本号。 bool get_os_ver(std::string& ver); 参数: ver:输出参数。雷达操作系统版本号。 返回值: true: 调用成功; false:调用失败。 3.16 get_firmware_ver 获取雷达固件版本号。 bool get_firmware_ver(string& ver); - 17 - 参数: ver:输出参数。雷达固件版本号。 返回值: true: 调用成功; false:调用失败。 3.17 get_os_error 获取雷达操作系统错误码。 bool get_os_error(uint32_t& errCode, uint8_t iIndex = 0) 参数: errCode:输出参数。雷达操作系统错误码。 iIndex :输入参数,0~3 表示获取对应序号的错误码,其他值表示获取全部错误码 返回值: true: 调用成功。 false:调用失败。 3.18 get_error_code 获取雷达连接网络错误。 int get_error_code(); 参数: 无。 返回值: 网络错误码。 3.19 enable_data 开启/停止 Pavo2 Lidar 数据传输。 bool enable_data(bool en); 参数: en:输入参数。 true:开启数据传输; false:停止数据传输。 返回值: true: 调用成功; false:调用失败。 - 18 - 3.20 set_intensity_mode 设置雷达数据是否带强度信息。 bool set_intensity_mode(bool en); 参数: en:输入参数。 true:雷达数据带强度信息; false:雷达数据不带强度信息。 返回值: true:调用成功; false:调用失败。 3.21 get_intensity_mode 获取雷达数据是否带强度信息。 bool get_intensity_mode(bool& en); 参数: en:输出参数,雷达数据是否带强度信息。 true:雷达数据带强度信息; false:雷达数据不带强度信息。 返回值: true:调用成功; false:调用失败。 3.22 set_angle_range 设置雷达传输角度范围。 bool set_angle_range(uint16_t start, uint16_t end); 参数: start:输入参数,起始角度。取值范围[4000,32000]。单位是 0.01°。 end:输入参数,终止角度。取值范围[4000,32000]。单位是 0.0.1°。 注意:start 值不能大于 end。 返回值: true: 调用成功; false:调用失败。 3.23 get_angle_range - 19 - 获取传输的角度范围。 bool get_angle_range(uint16_t& start, uint16_t& end); 参数: start:输出参数。起始角度。 end:输出参数。终止角度。 返回值: true: 调用成功; false:调用失败。 3.24 get_max_angle_range 获取雷达角度范围使能配置。 bool get_max_angle_range(uint32_t& val); 参数: val:输出参数,雷达角度范围使能配置。 返回值: true:调用成功; false:调用失败。 3.25 set_motor_speed 设置电机转速。 bool set_motor_speed(uint8_t val); 参数: val: 输入参数,电机转速,单位 Hz。 返回值: true: 调用成功; false:调用失败。 3.26 get_motor_speed 获取电机转速。 bool get_motor_speed(uint8_t& val); 参数: val: 输出参数,电机转速,单位 Hz。 返回值: true: 调用成功; false:调用失败。 - 20 - 3.27 get_motor_speed_enable 获取电机转速可配置范围。 bool get_motor_speed_enable(uint32_t& val); 参数: val: 输出参数,电机转速可配置范围。 返回值: true: 调用成功; false:调用失败。 3.28 set_angle_resolution 设置雷达角分辨率。 bool set_angle_resolution(uint16_t val); 参数: val: 输入参数,角分辨,可配置 8 、16、32。 返回值: true: 调用成功; false:调用失败。 3.29 get_angle_resolution 获取雷达角分辨率。 bool get_angle_resolution(uint16_t& val); 参数: val:输出参数,角分辨。 返回值: true: 调用成功; false:调用失败。 3.30 get_angle_resolution_enable 获取雷达角分辨率可配置范围。 bool get_angle_resolution_enable(uint32_t& val); 参数: val:输出参数,角分辨可配置范围。 返回值: true: 调用成功; false:调用失败。 - 21 - 3.31 set_device_ip 配置 Pavo2 Lidar 数据的源 IP 地址。 bool set_device_ip(const std::string& ip); 参数: ip:输入参数。Pavo2 Lidar IP 地址。 返回值: true: 调用成功; false:调用失败。 3.32 get_device_ip 获取 Pavo2 Lidar 数据的源 IP 地址。 bool get_device_ip(std::string& ip); 参数: ip:输出参数。Pavo2 Lidar 地址。 返回值: true: 调用成功; false:调用失败。 3.33 set_tcp_port 设置雷达 TCP 服务端口。 bool set_tcp_port(uint16_t val); 参数: val:输入参数。雷达 TCP 服务端口。 返回值: true: 调用成功; false:调用失败。 3.34 get_tcp_port 获取雷达 TCP 服务端口。 bool get_tcp_port(uint16_t& val); 参数: val:输出参数。雷达 TCP 服务端口。 返回值: true: 调用成功; - 22 - false:调用失败。 3.35 set_device_mask 设置雷达子网掩码。 bool set_device_mask(const std::string& mask); 参数: mask:输入参数。雷达子网掩码。 返回值: true: 调用成功; false:调用失败。 3.36 get_device_mask 获取雷达子网掩码。 bool get_device_mask(std::string& mask); 参数: mask:输出参数。雷达子网掩码。 返回值: true: 调用成功; false:调用失败。 3.37 set_device_gateway 设置雷达网关。 bool set_device_gateway(const std::string& gateway); 参数: gateway:输入参数。雷达网关。 返回值: true: 调用成功; false:调用失败。 3.38 get_device_gateway 获取雷达网关。 bool get_device_gateway(std::string& gateway); 参数: gateway:输出参数。雷达网关。 返回值: - 23 - true: 调用成功; false:调用失败。 3.39 get_device_mac 获取雷达 mac 地址。 bool get_device_mac(std::string& mac); 参数: mac:输出参数。雷达 MAC 地址。 返回值: true: 调用成功; false:调用失败。 3.40 set_os_restart 设置系统重启模式。 bool set_os_restart(); 参数: 无。 返回值: true: 调用成功; false:调用失败。 3.41 set_echo_mode 设置雷达是否开启二回波模式。 bool set_echo_mode(bool en); 参数: en:输入参数。 true:开启二回波模式; false:不开启二回波模式。 返回值: true:调用成功; false:调用失败。 3.42 get_echo_mode 获取雷达是否开启二回波模式。 bool get_echo_mode(bool& en); - 24 - 参数: en:输出参数,雷达是否开启二回波模式。 true:开启二回波模式; false:不开启二回波模式。 返回值: true:调用成功; false:调用失败。 3.43 set_outdoor_mode 设置雷达是否开启室外增强模式。 bool set_outdoor_mode(bool en); 参数: en:输入参数,是否开启室外增强模式。 true:开启室外增强模式; false:不开启室外增强模式。 返回值: true:调用成功; false:调用失败。 3.44 get_outdoor_mode 获取雷达是否开启室外增强模式。 bool get_outdoor_mode(bool& en); 参数: en:输出参数,雷达是否开启室外增强模式。 true:开启室外增强模式; false:不开启室外增强模式。 返回值: true:调用成功; false:调用失败。 3.45 set_calibrate_horizontal_angle 设置雷达水平校准角度。 bool set_calibrate_horizontal_angle(uint32_t angle); 参数: angle:输入参数。雷达水平校准角度:0-35999。 返回值: - 25 - true:调用成功; false:调用失败。 3.46 get_calibrate_horizontal_angle 获取雷达水平校准角度。 bool get_calibrate_horizontal_angle(uint32_t& val); 参数: val:输出参数,雷达水平校准角度。 返回值: true:调用成功; false:调用失败。 3.47 get_max_angle_distance 获取雷达最大测距。 bool get_max_angle_distance(uint32_t& val); 参数: val:输出参数,雷达最大测距。 返回值: true:调用成功; false:调用失败。 3.48 enable_tail_filter 开启点云数据拖尾处理模式。 bool enable_tail_filter(uint16_t method); 参数: method:设置使用的去除拖尾的算法。取值范围[0,1,2,3]。0 表示不启动去除拖尾算法, 1 开启的去除拖尾算法效果最弱,2 中等,3 最强。 返回值: true: 调用成功; false:调用失败。 3.49 enable_front_filter 开启点云数据前冲滤波处理模式。 bool enable_front_filter(uint16_t iLevel); 参数: iLevel:设置使用的前冲滤波的算法等级。取值范围[0,1,2,3]。0 表示不启动前冲滤波算法, 26 1 开启的前冲滤波算法效果最弱,2 中等,3 最强。 返回值: true: 调用成功; false:调用失败。 3.50 enable_far_hr_filter 开启点云数据远端高反滤波处理模式。 bool enable_far_hr_filter(uint16_t iLevel); 参数: iLevel:设置使用的高反滤波的算法。取值范围[0,1,2]。0 表示不启动高反滤波算法,1 开 启的高反滤波算法效果最弱,2 最强。 返回值: true: 调用成功; false:调用失败。 3.51 enable_near_hr 开启点云近端高反识别。 bool enable_near_hr(bool en); 参数: en:输入参数,是否开启近场高反识别。 返回值: true: 调用成功; false:调用失败。 3.52 is_near_hr_enabled 确认近端高反识别是否已开启。 bool is_near_hr_enabled(bool& en); 参数: en:输出参数,近端高反识别是否已开启。 返回值: true: 调用成功; false:调用失败。 3.53 is_near_hr_supported 确认近端高反识别是否支持。 bool is_near_hr_supported(bool& supported); - 27 - 参数: supported:输出参数,近端高反识别是否支持。 返回值: true: 调用成功; false:调用失败。 3.54 set_warn_angle_range 设置点云异常警告角度范围。 bool set_warn_angle_range(uint16_t start, uint16_t end); 参数: start:输入参数,起始角度。取值范围[4000,32000]。单位是 0.01°。 end:输入参数,终止角度。取值范围[4000,32000]。单位是 0.0.1°。 注意:start 值不大于 end。 返回值: true: 调用成功; false:调用失败。 3.55 get_warn_angle_range 获取点云异常警告角度范围。 bool get_warn_angle_range(uint16_t& start, uint16_t& end); 参数: start:输出参数。起始角度。 end:输出参数。终止角度。 返回值: true: 调用成功; false:调用失败。 3.56 set_warn_intensity_distance 设置点云异常警告距离强度阈值。 bool set_warn_intensity_distance(uint16_t distance, uint16_t intensity); 参数: distance:输入参数,距离。 intensity:输入参数,强度。 返回值: true: 调用成功; - 28 - false:调用失败。 3.57 get_warn_intensity_distance 获取点云异常警告距离强度阈值。 bool get_warn_intensity_distance(uint16_t& distance, uint16_t& intensity); 参数: distance:输出参数。距离。 intensity:输出参数。强度。 返回值: true: 调用成功; false:调用失败。 3.58 set_warn_point_number 设置点云异常警告点云数量。 bool set_warn_point_number(uint16_t number); 参数: number:输入参数,点云数量。 返回值: true: 调用成功; false:调用失败。 3.59 get_warn_point_number 获取点云异常警告点云数量。 bool get_warn_point_number(uint16_t& number); 参数: number:输出参数。点云数量。 返回值: true: 调用成功; false:调用失败。 3.60 enable_ptp 启用雷达 ptp 功能。 bool enable_ptp(bool en); 参数: en:是否启用雷达 ptp 功能。 - 29 - true:开启 ptp 功能; false:不开启 ptp 功能。 返回值: true:调用成功; false:调用失败。 3.61 is_ptp_enabled 查询雷达 ptp 功能是否启用。 bool is_ptp_enabled(bool& en); 参数: en:输出参数。表示雷达 ptp 功能是否启用。 true:ptp 功能已开启; false:ptp 功能未开启。 返回值: true:调用成功; false:调用失败。 3.62 is_ptp_supported 查询雷达 ptp 功能是否支持。 bool is_ptp_supported(bool& supported); 参数: supported:输出参数。表示雷达 ptp 功能是否支持。 true:ptp 功能支持; false:ptp 功能不支持。 返回值: true:调用成功; false:调用失败。 3.63 get_temperature 获取雷达内部温度。 bool get_temperature(float& temperature); 参数: temperature:输出参数。表示雷达内部温度。 返回值: true:调用成功; - 30 - false:调用失败。 3.64 get_heartbeat 获取雷达连接状态。 bool get_heartbeat(); 参数: 无。 返回值: true: 连接成功; false:连接失败。