add the eai lidar

This commit is contained in:
litian.zhuang 2021-08-11 16:47:00 +08:00
parent 25b8b3c1d0
commit 9b940bd49d
673 changed files with 53781 additions and 105 deletions

112
onekey.sh
View File

@ -9,7 +9,7 @@ export PATH
# SPARK技术讨论与反馈QQ群6646169 8346256
#=================================================
GAME_ENABLE="no"
sh_ver="2.0"
filepath=$(cd "$(dirname "$0")"; pwd)
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Yellow_background_prefix="\033[43;37m" && Font_color_suffix="\033[0m" && Yellow_font_prefix="\e[1;33m" && Blue_font_prefix="\e[0;34m"
@ -26,6 +26,20 @@ OSArch=$(uname -m)
calibra_default="${filepath}/../.ros/camera_info"
calibration="calibration"
color_block="color_block"
TYPE_LIDAR=$(cat /opt/lidar.txt)
echo ${TYPE_LIDAR}
if [[ "${TYPE_LIDAR}" == "ydlidar_g2" ]]; then
LIDARTYPE="ydlidar_g2"
elif [[ "${TYPE_LIDAR}" == "3iroboticslidar2" ]]; then
LIDARTYPE="3iroboticslidar2"
else
echo "暂不支持的雷达:${TYPE_LIDAR},使用默认的杉川雷达运行"
LIDARTYPE="3iroboticslidar2"
fi
#检查系统要求
check_sys(){
if [[ "${Version}" == "20.04" ]]; then
@ -48,8 +62,30 @@ check_dev(){
#检查摄像头
check_camera
#检查雷达
check_lidar
}
#检查雷达设备
check_lidar(){
lidar_flag=0
#检查使用哪种设备
if [ -n "$(lsusb -d 10c4:ea60)" ]; then
lidar_flag=$[$lidar_flag + 1]
fi
if [ $lidar_flag -ge 2 ]; then
echo -e "${Warn} 正在使用多个雷达设备,请退出并拔掉其中一个再使用!"
echo -e "${Warn} 退出请输入Ctrl + c"
elif [ $lidar_flag -eq 1 ]; then
echo -e "${Info} 正在使用${LIDARTYPE}雷达"
elif [ $lidar_flag -eq 0 ]; then
echo -e "${Error} 没有找到雷达,请确认雷达已正确连接!!"
fi
}
#检查摄像头设备
check_camera(){
@ -304,8 +340,8 @@ let_robot_go(){
echo -e "${Info} "
echo -e "${Info} 退出请输入Ctrl + c "
echo && stty erase ^? && read -p "按回车键Enter开始"
print_command "roslaunch spark_teleop teleop.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_teleop teleop.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_teleop teleop.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_teleop teleop.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
}
@ -323,8 +359,8 @@ remote_control_robot(){
echo -e "${Info}退出请输入Ctrl + c"
echo -e "${Info}"
echo && stty erase ^? && read -p "按回车键Enter开始"
print_command "roslaunch spark_teleop app_op.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_teleop app_op.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_teleop app_op.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_teleop app_op.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
}
#让SPARK跟着你走
@ -399,20 +435,20 @@ cal_camera_arm(){
echo && stty erase ^? && read -p "按回车键Enter开始"
if [ $ROSVER = "kinetic" ]; then
echo -e "${Info}It is kinetic."
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "indigo" ]; then
echo -e "${Info}It is indigo."
print_command "roslaunch spark_carry_object spark_carry_cal_cv2.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_cal_cv2.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_cal_cv2.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_cal_cv2.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "melodic" ]; then
echo -e "${Info}It is melodic."
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "noetic" ]; then
echo -e "${Info}It is melodic."
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_cal_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
fi
}
@ -433,8 +469,8 @@ spark_navigation_2d(){
echo -e "${Info}退出请输入Ctrl + c "
echo -e "${Info}"
echo && stty erase '^H' && read -p "按回车键Enter开始"
print_command "roslaunch spark_navigation amcl_demo_lidar_rviz.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_navigation amcl_demo_lidar_rviz.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_navigation amcl_demo_lidar_rviz.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_navigation amcl_demo_lidar_rviz.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
}
#让SPARK使用深度摄像头进行导航
spark_navigation_3d(){
@ -610,20 +646,20 @@ spark_carry_obj(){
echo && stty erase ^? && read -p "按回车键Enter开始"
if [ $ROSVER = "kinetic" ]; then
echo -e "${Info}It is kinetic."
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "indigo" ]; then
echo -e "${Info}It is indigo."
print_command "roslaunch spark_carry_object spark_carry_object_only_cv2.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv2.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_object_only_cv2.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv2.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "melodic" ]; then
echo -e "${Info}It is melodic."
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
elif [ $ROSVER = "noetic" ]; then
echo -e "${Info}It is noetic."
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_carry_object spark_carry_object_only_cv3.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
fi
}
@ -672,8 +708,8 @@ spark_build_map_2d(){
echo -e "${Info}退出请输入Ctrl + c "
echo -e "${Info}"
echo && stty erase ^? && read -p "按回车键Enter开始"
print_command "roslaunch spark_slam 2d_slam_teleop.launch slam_methods_tel:=${SLAMTYPE} camera_type_tel:=${CAMERATYPE}"
roslaunch spark_slam 2d_slam_teleop.launch slam_methods_tel:=${SLAMTYPE} camera_type_tel:=${CAMERATYPE}
print_command "roslaunch spark_slam 2d_slam_teleop.launch slam_methods_tel:=${SLAMTYPE} camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}"
roslaunch spark_slam 2d_slam_teleop.launch slam_methods_tel:=${SLAMTYPE} camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
}
#让SPARK去充电
@ -695,6 +731,32 @@ spark_dock(){
}
#让SPARK夺宝奇兵比赛用示例程序
spark_carry_game(){
echo -e "${Info}"
echo -e "${Info}夺宝奇兵比赛用示例程序"
ROSVER=`/usr/bin/rosversion -d`
PROJECTPATH=$(cd `dirname $0`; pwd)
source ${PROJECTPATH}/devel/setup.bash
echo -e "${Info}请选择比赛方式:
${Green_font_prefix}1.${Font_color_suffix} 手动模式
${Green_font_prefix}2.${Font_color_suffix} 自动模式
${Green_font_prefix}3.${Font_color_suffix} 退出请输入Ctrl + c"
echo && stty erase ^? && read -p "请输入数字 [1-2]" armnum
case "$armnum" in
1)
roslaunch move2grasp teleop2grasp.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
;;
2)
roslaunch move2grasp move2grasp.launch camera_type_tel:=${CAMERATYPE} lidar_type_tel:=${LIDARTYPE}
;;
*)
echo -e "${Error} 错误,请填入正确的数字"
;;
esac
}
spark_test_mode(){
PROJECTPATH=$(cd `dirname $0`; pwd)
source ${PROJECTPATH}/devel/setup.bash

View File

@ -6,10 +6,11 @@
<arg name="serialport" default="/dev/sparkBase"/>
<arg name="dp_rgist" default="false"/>
<arg name="camera_types" default="astrapro" doc="camera type [astrapro, astra,d435]"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!--启动描述 -->
<include file="$(find spark_description)/launch/spark_description.launch">
<arg name="camera_types" value="$(arg camera_types)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!--启动底盘 -->

View File

@ -3,12 +3,14 @@
<launch>
<arg name="camera_types" default="astrapro" doc="camera types [asatra, astrapro, d435...]"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<arg name="model" default="$(find spark_description)/robots/spark.urdf.xacro"/>
<arg name="use_gui" default="false"/>
<arg name="publish_default_positions" default="true"/>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(arg model)' camera_types:=$(arg camera_types)"/>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(arg model)' camera_types:=$(arg camera_types) lidar_type_tel:=$(arg lidar_type_tel)"/>
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
<param name="use_gui" value="$(arg use_gui)"/>

View File

@ -1,12 +1,13 @@
<!--spark description with rviz-->
<launch>
<arg name="camera_types" default="astrapro" doc="camera types [asatra, astrapro, d435...]"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<arg name="model" default="$(find spark_description)/robots/spark.urdf.xacro"/>
<arg name="use_gui" default="false"/>
<arg name="publish_default_positions" default="true"/>
<param name="robot_description" command="$(find xacro)/xacro.py $(arg model)" />
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(arg model)' camera_types:=$(arg camera_types) lidar_type_tel:=$(arg lidar_type_tel)"/>
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
<param name="use_gui" value="$(arg use_gui)"/>

View File

@ -8,7 +8,9 @@
<robot name="spark" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:arg name="camera_types" default="astrapro"/>
<xacro:arg name="lidar_type_tel" default="3iroboticslidar2"/>
<xacro:include filename="$(find spark_description)/urdf/spark_340.urdf.xacro">
<xacro:arg name="camera_types" value="$(arg camera_types)"/>
<xacro:arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</xacro:include>
</robot>

View File

@ -12,11 +12,21 @@
<xacro:property name="camera" value="$(arg camera_types)"/>
<xacro:arg name="lidar_type_tel" default="astrapro"/>
<xacro:property name="lidar" value="$(arg lidar_type_tel)"/>
<xacro:include filename="$(find spark_description)/urdf/base/spark_base.urdf"/>
<xacro:include filename="$(find spark_description)/urdf/stack/spark_stack.urdf"/>
<xacro:include filename="$(find spark_description)/urdf/sensors/spark_lidar.urdf"/>
<xacro:if value="${lidar == 'ydlidar_g2'}">
<xacro:include filename="$(find ydlidar_g2)/urdf/ydlidar.urdf" />
</xacro:if>
<xacro:if value="${lidar == '3iroboticslidar2'}">
<xacro:include filename="$(find spark_description)/urdf/sensors/spark_lidar.urdf"/>
</xacro:if>
<xacro:if value="${camera == 'astrapro' or camera == 'astra'}">
<xacro:include filename="$(find spark_description)/urdf/sensors/spark_$(arg camera_types).urdf"/>

5
src/spark/spark_teleop/launch/app_op.launch Executable file → Normal file
View File

@ -2,9 +2,14 @@
<launch>
<!-- camera -->
<arg name="camera_type_tel" default="" doc="camera type [astrapro, astra]"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!--spark底盘驱动机器人描述,底盘,相机-->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="camera_types" value="$(arg camera_type_tel)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!--在rviz显示-->
<arg name="rvizconfig" default="$(find spark_teleop)/rviz/teleop.rviz" />

View File

@ -2,12 +2,15 @@
<launch>
<!-- 启动哪种摄像机 -->
<arg name="camera_type_tel" default="astrapro" doc="camera type [astrapro, astra, d435...]"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!--spark底盘驱动机器人描述,底盘,相机-->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="camera_types" value="$(arg camera_type_tel)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!--spark键盘控制 “wsad”分别代表“前后左右”-->
<!--node pkg="spark_teleop" type="spark_teleop_node" name="spark_teleop_node" args="0.15 0.5"/-->

0
src/spark/spark_teleop/launch/teleop_only.launch Executable file → Normal file
View File

View File

@ -1,13 +1,12 @@
Panels:
- Class: rviz/Displays
Help Height: 75
Help Height: 0
Name: Displays
Property Tree Widget:
Expanded:
- /TF1/Frames1
- /PointCloud21
Splitter Ratio: 0.5
Tree Height: 75
Tree Height: 140
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
@ -16,7 +15,7 @@ Panels:
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.588679016
Splitter Ratio: 0.5886790156364441
- Class: rviz/Views
Expanded:
- /Current View1
@ -27,6 +26,8 @@ Panels:
Name: Time
SyncMode: 0
SyncSource: Image
Preferences:
PromptSaveOnExit: true
Toolbars:
toolButtonStyle: 2
Visualization Manager:
@ -38,7 +39,7 @@ Visualization Manager:
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.0299999993
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
@ -246,6 +247,7 @@ Visualization Manager:
Value: false
spark_stack:
Value: false
Marker Alpha: 1
Marker Scale: 1
Name: TF
Show Arrows: true
@ -321,8 +323,8 @@ Visualization Manager:
- Alpha: 1
Autocompute Intensity Bounds: true
Autocompute Value Bounds:
Max Value: 2.84632468
Min Value: -0.040540576
Max Value: 3.607553005218506
Min Value: 0.008338510990142822
Value: true
Axis: Z
Channel Name: intensity
@ -333,21 +335,47 @@ Visualization Manager:
Enabled: true
Invert Rainbow: false
Max Color: 255; 255; 255
Max Intensity: 4096
Min Color: 0; 0; 0
Min Intensity: 0
Name: PointCloud2
Position Transformer: XYZ
Queue Size: 10
Selectable: true
Size (Pixels): 3
Size (m): 0.00999999978
Size (m): 0.009999999776482582
Style: Flat Squares
Topic: /camera/depth/points
Unreliable: false
Use Fixed Frame: true
Use rainbow: true
Value: true
- Alpha: 1
Autocompute Intensity Bounds: true
Autocompute Value Bounds:
Max Value: 10
Min Value: -10
Value: true
Axis: Z
Channel Name: intensity
Class: rviz/LaserScan
Color: 255; 255; 255
Color Transformer: Intensity
Decay Time: 0
Enabled: true
Invert Rainbow: false
Max Color: 255; 255; 255
Min Color: 0; 0; 0
Name: LaserScan
Position Transformer: XYZ
Queue Size: 10
Selectable: true
Size (Pixels): 3
Size (m): 0.009999999776482582
Style: Flat Squares
Topic: /scan
Unreliable: false
Use Fixed Frame: true
Use rainbow: true
Value: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
@ -363,7 +391,10 @@ Visualization Manager:
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
@ -375,33 +406,33 @@ Visualization Manager:
Class: rviz/Orbit
Distance: 10
Enable Stereo Rendering:
Stereo Eye Separation: 0.0599999987
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.0500000007
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.00999999978
Pitch: 0.415398329
Near Clip Distance: 0.009999999776482582
Pitch: 0.41539832949638367
Target Frame: <Fixed Frame>
Value: Orbit (rviz)
Yaw: 2.71539736
Yaw: 2.715397357940674
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 576
Height: 536
Hide Left Dock: false
Hide Right Dock: true
Image:
collapsed: false
QMainWindow State: 000000ff00000000fd00000004000000000000016a000001b6fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001b500000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000000d7000000d700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d0061006700650100000105000000d90000001600ffffff000000010000010f0000025efc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007300000000280000025e000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000003bf0000003efc0100000002fb0000000800540069006d00650100000000000003bf0000030000fffffffb0000000800540069006d006501000000000000045000000000000000000000024f000001b600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
QMainWindow State: 000000ff00000000fd00000004000000000000016a0000017afc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001b500000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000000c9000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d006100670065010000010c000000ab0000001600ffffff000000010000010f0000025efc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007300000000280000025e000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000003b80000003efc0100000002fb0000000800540069006d00650100000000000003b8000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000002480000017a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
@ -410,6 +441,6 @@ Window Geometry:
collapsed: false
Views:
collapsed: true
Width: 959
X: 65
Y: 24
Width: 952
X: 72
Y: 27

View File

@ -0,0 +1,15 @@
<!--
机械臂与摄像头之间的校准功能。注意摄像头需要反着装,垂直向下。使用一个蓝色圆贴在吸盘的正上方当校准点。
-->
<launch>
<arg name="color" default="red"/>
<!--UARM机械臂-->
<include file="$(find swiftpro)/launch/pro_control_nomoveit.launch"/>
<!--HSV获取-->
<node pkg="spark_carry_object" type="hsv_detection.py" name="spark_hsv_detection" output="screen">
<param name="color" value="$(arg color)"/>
</node>
</launch>

View File

View File

@ -1,6 +1,6 @@
<!-- NXROBO SPARK -->
<launch>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!-- 摄像机类型 -->
<arg name="camera_type_tel" default="astrapro" doc="camera type [astrapro, astra, d435...]"/>
@ -8,6 +8,7 @@
<include file="$(find spark_navigation)/launch/amcl_demo_lidar.launch">
<arg name="camera_types" value="$(arg camera_type_tel)"/>
<arg name="start_camera" value="true"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!--UARM机械臂 -->

View File

@ -2,16 +2,19 @@
<launch>
<arg name="start_camera" default="false"/>
<arg name="camera_types" default="astrapro"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!-- spark底盘驱动机器人描述,底盘,相机 -->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="camera_types" value="$(arg camera_types)"/>
<arg name="start_camera" value="$(arg start_camera)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!-- 3D sensor -->
<arg name="3d_sensor" default="3i_lidar"/>
<include file="$(find iiiroboticslidar2)/launch/3iroboticslidar2.launch">
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!-- Map server -->
<arg name="map_file" default="$(find spark_slam)/scripts/test_map.yaml"/>

View File

@ -1,19 +1,20 @@
<!--spark navigation lidar-->
<launch>
<!-- description file -->
<include file="$(find spark_description)/launch/spark_description.launch"/>
<!-- base -->
<include file="$(find spark_base)/launch/spark_base.launch">
<arg name="serialport" value="/dev/sparkBase"/>
</include>
<arg name="start_camera" default="false"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<arg name="camera_type_tel" default="astrapro" doc="camera type [astrapro, astra, d435...]"/>
<!-- spark底盘驱动机器人描述,底盘,相机 -->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="camera_types" value="$(arg camera_type_tel)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
<arg name="start_camera" default="false"/>
</include>
<!-- 3D sensor -->
<arg name="3d_sensor" default="3i_lidar"/>
<include file="$(find iiiroboticslidar2)/launch/3iroboticslidar2.launch">
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!-- Map server -->

View File

@ -6,17 +6,19 @@
<arg name="slam_methods" default="gmapping" doc="slam type [gmapping, cartographer, hector, karto, frontier_exploration]"/>
<arg name="configuration_basename" default="spark_lds_2d.lua"/>
<arg name="open_rviz" default="true"/>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!-- spark底盘驱动机器人描述,底盘,相机 -->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="start_camera" value="false"/>
<arg name="camera_types" value="$(arg camera_types)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!-- 3D sensor -->
<arg name="3d_sensor" default="3i_lidar"/>
<include file="$(find iiiroboticslidar2)/launch/3iroboticslidar2.launch">
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!-- SLAM: Gmapping, Cartographer, Hector, Karto, Frontier_exploration-->
<include file="$(find spark_slam)/launch/spark_$(arg slam_methods).launch">

View File

@ -6,20 +6,20 @@
<arg name="open_rviz" default="true"/>
<include file="$(find spark_description)/launch/spark_description_norviz.launch"/>
<!--include file="$(find spark_description)/launch/spark_description.launch"/-->
<include file="$(find spark_base)/launch/spark_base.launch">
<arg name="serialport" value="/dev/sparkBase"/>
</include>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!-- spark底盘驱动机器人描述,底盘,相机 -->
<include file="$(find spark_bringup)/launch/driver_bringup.launch">
<arg name="start_camera" value="false"/>
<arg name="camera_types" value="$(arg camera_types)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!-- 3D sensor -->
<arg name="3d_sensor" default="3i_lidar"/>
<include file="$(find iiiroboticslidar2)/launch/3iroboticslidar2.launch">
</include>
<!-- 启动雷达 -->
<include file="$(find lidar_driver_transfer)/launch/$(arg lidar_type_tel).launch">
</include>
<!-- SLAM: Gmapping, Cartographer, Hector, Karto, Frontier_exploration-->
<include file="$(find spark_slam)/launch/spark_$(arg slam_methods).launch">

View File

@ -1,12 +1,14 @@
<!--spark 2d slam-->
<!--SPARK技术讨论与反馈群8346256-->
<launch>
<arg name="lidar_type_tel" default="3iroboticslidar2" doc="lidar type [3iroboticslidar2, ydlidar_g2]"/>
<!--spark slam-->
<arg name="slam_methods_tel" default="gmapping" doc="slam type [gmapping, cartographer, hector, karto, frontier_exploration]"/>
<arg name="camera_type_tel" default="astrapro"/>
<include file="$(find spark_slam)/launch/2d_slam.launch">
<arg name="slam_methods" value="$(arg slam_methods_tel)"/>
<arg name="camera_types" value="$(arg camera_type_tel)"/>
<arg name="lidar_type_tel" value="$(arg lidar_type_tel)"/>
</include>
<!--创建新的终端spark键盘控制 “wsad”分别代表“前后左右”-->
<node pkg="spark_teleop" type="keyboard_control.sh" name="kc_2d" />

20
src/spark_driver/lidar/iiiroboticslidar2/CMakeLists.txt Executable file → Normal file
View File

@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 2.8.3)
project(iiiroboticslidar2)
set(iiiroboticslidar2_SDK_PATH "./sdk/")
set(delta_lidar_SDK_PATH "./sdk/")
FILE(GLOB iiiroboticslidar2_SDK_SRC
"${iiiroboticslidar2_SDK_PATH}/src/*.cpp"
FILE(GLOB delta_lidar_SDK_SRC
"${delta_lidar_SDK_PATH}/src/*.cpp"
)
find_package(catkin REQUIRED COMPONENTS
@ -14,20 +14,20 @@ find_package(catkin REQUIRED COMPONENTS
)
include_directories(
${iiiroboticslidar2_SDK_PATH}/include
${iiiroboticslidar2_SDK_PATH}/src
${delta_lidar_SDK_PATH}/include
${delta_lidar_SDK_PATH}/src
${catkin_INCLUDE_DIRS}
)
catkin_package()
add_executable(iiirobotics_lidar2_node src/node.cpp ${iiiroboticslidar2_SDK_SRC})
target_link_libraries(iiirobotics_lidar2_node ${catkin_LIBRARIES} -lrt)
add_executable(delta_lidar_node src/node.cpp ${delta_lidar_SDK_SRC})
target_link_libraries(delta_lidar_node ${catkin_LIBRARIES} -lrt)
add_executable(iiirobotics_lidar2_node_client src/client.cpp)
target_link_libraries(iiirobotics_lidar2_node_client ${catkin_LIBRARIES})
add_executable(delta_lidar_node_client src/client.cpp)
target_link_libraries(delta_lidar_node_client ${catkin_LIBRARIES})
install(TARGETS iiirobotics_lidar2_node iiirobotics_lidar2_node_client
install(TARGETS delta_lidar_node delta_lidar_node_client
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

View File

@ -1,5 +1,5 @@
<launch>
<node name="iiiroboticslidar2" pkg="iiiroboticslidar2" type="iiirobotics_lidar2_node" output="screen">
<node name="iiiroboticslidar2" pkg="iiiroboticslidar2" type="delta_lidar_node" output="screen">
<param name="serial_port" type="string" value="/dev/3ilidar"/>
<param name="frame_id" type="string" value="lidar_link"/>
</node>

2
src/spark_driver/lidar/iiiroboticslidar2/package.xml Executable file → Normal file
View File

@ -2,7 +2,7 @@
<package>
<name>iiiroboticslidar2</name>
<version>1.0.0</version>
<description>The 3iRoboticsLidar ros package, support 3iRoboticsLidar </description>
<description>The iiiroboticslidar2 ros package, support delta_lidar </description>
<maintainer email="robot@3irobotics.com">3i Robotics ROS Maintainer</maintainer>
<license>BSD</license>

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

32
src/spark_driver/lidar/iiiroboticslidar2/src/node.cpp Executable file → Normal file
View File

@ -46,33 +46,41 @@ void publish_scan(ros::Publisher *pub,
std::string frame_id)
{
sensor_msgs::LaserScan scan_msg;
//printf("node_count = %d\n",node_count);
scan_msg.header.stamp = start;
scan_msg.header.frame_id = frame_id;
scan_msg.angle_min = angle_min;
scan_msg.angle_max = angle_max;
scan_msg.angle_increment = (scan_msg.angle_max - scan_msg.angle_min) /(double)(node_count - 1);
scan_msg.angle_increment = (scan_msg.angle_max - scan_msg.angle_min) / (360.0f - 1.0f);
scan_msg.scan_time = scan_time;
scan_msg.time_increment = scan_time / (double)(node_count-1);
scan_msg.time_increment = scan_time / (double)(node_count - 1);
scan_msg.range_min = 0.15;
scan_msg.range_max = 16.0;
scan_msg.range_max = 5.0;
scan_msg.ranges.resize(node_count);
scan_msg.intensities.resize(node_count);
scan_msg.ranges.resize(360, std::numeric_limits<float>::infinity());
scan_msg.intensities.resize(360, 0.0);
//Unpack data
for (size_t i = 0; i < node_count; i++)
{
size_t current_angle = floor(nodes[i].angle);
//printf("current_angle = %d\r\n", current_angle);
if(current_angle >= 360.0)
{
//printf("lidar angle over rang\n");
continue;
}
float read_value = (float) nodes[i].distance;
if (read_value == 0.0)
scan_msg.ranges[node_count- 1- i] = std::numeric_limits<float>::infinity();
if (read_value > scan_msg.range_max || read_value < scan_msg.range_min)
scan_msg.ranges[360 - 1 - current_angle] = std::numeric_limits<float>::infinity();
else
scan_msg.ranges[node_count -1- i] = read_value;
scan_msg.ranges[360 - 1 - current_angle] = read_value;
//scan_msg.intensities[node_count -1- i] = (float) nodes[i].signal;
//scan_msg.intensities[node_count -1- i] = (float) nodes[i].signal;
}
}
pub->publish(scan_msg);
}
@ -188,7 +196,7 @@ int main(int argc, char * argv[])
}
case LIDAR_GRAB_SUCESS:
{
robotics_lidar.m_dynamic_scan.resetGrabResult();
robotics_lidar.m_dynamic_scan.resetGrabResult();
lidar_dynamicscan = robotics_lidar.getLidarDynamicScan();
lidar_scan_size = lidar_dynamicscan.getSize();

View File

@ -0,0 +1,206 @@
cmake_minimum_required(VERSION 2.8.3)
project(lidar_driver_transfer)
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
)
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
## Uncomment this if the package has a setup.py. This macro ensures
## modules and global scripts declared therein get installed
## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
# catkin_python_setup()
################################################
## Declare ROS messages, services and actions ##
################################################
## To declare and build messages, services or actions from within this
## package, follow these steps:
## * Let MSG_DEP_SET be the set of packages whose message types you use in
## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
## * In the file package.xml:
## * add a build_depend tag for "message_generation"
## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
## but can be declared for certainty nonetheless:
## * add a exec_depend tag for "message_runtime"
## * In this file (CMakeLists.txt):
## * add "message_generation" and every package in MSG_DEP_SET to
## find_package(catkin REQUIRED COMPONENTS ...)
## * add "message_runtime" and every package in MSG_DEP_SET to
## catkin_package(CATKIN_DEPENDS ...)
## * uncomment the add_*_files sections below as needed
## and list every .msg/.srv/.action file to be processed
## * uncomment the generate_messages entry below
## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
## Generate messages in the 'msg' folder
# add_message_files(
# FILES
# Message1.msg
# Message2.msg
# )
## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
## Generate actions in the 'action' folder
# add_action_files(
# FILES
# Action1.action
# Action2.action
# )
## Generate added messages and services with any dependencies listed here
# generate_messages(
# DEPENDENCIES
# std_msgs
# )
################################################
## Declare ROS dynamic reconfigure parameters ##
################################################
## To declare and build dynamic reconfigure parameters within this
## package, follow these steps:
## * In the file package.xml:
## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
## * In this file (CMakeLists.txt):
## * add "dynamic_reconfigure" to
## find_package(catkin REQUIRED COMPONENTS ...)
## * uncomment the "generate_dynamic_reconfigure_options" section below
## and list every .cfg file to be processed
## Generate dynamic reconfigure parameters in the 'cfg' folder
# generate_dynamic_reconfigure_options(
# cfg/DynReconf1.cfg
# cfg/DynReconf2.cfg
# )
###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if your package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES lidar_driver_transfer
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
)
###########
## Build ##
###########
## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(
# include
${catkin_INCLUDE_DIRS}
)
## Declare a C++ library
# add_library(${PROJECT_NAME}
# src/${PROJECT_NAME}/lidar_driver_transfer.cpp
# )
## Add cmake target dependencies of the library
## as an example, code may need to be generated before libraries
## either from message generation or dynamic reconfigure
# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
# add_executable(${PROJECT_NAME}_node src/lidar_driver_transfer_node.cpp)
## Rename C++ executable without prefix
## The above recommended prefix causes long target names, the following renames the
## target back to the shorter version for ease of user use
## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
## Add cmake target dependencies of the executable
## same as for the library above
# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
## Specify libraries to link a library or executable target against
# target_link_libraries(${PROJECT_NAME}_node
# ${catkin_LIBRARIES}
# )
#############
## Install ##
#############
# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
## Mark executable scripts (Python etc.) for installation
## in contrast to setup.py, you can choose the destination
# install(PROGRAMS
# scripts/my_python_script
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
## Mark executables for installation
## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
# install(TARGETS ${PROJECT_NAME}_node
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
## Mark libraries for installation
## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
# install(TARGETS ${PROJECT_NAME}
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
# )
## Mark cpp header files for installation
# install(DIRECTORY include/${PROJECT_NAME}/
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
# FILES_MATCHING PATTERN "*.h"
# PATTERN ".svn" EXCLUDE
# )
## Mark other files for installation (e.g. launch and bag files, etc.)
# install(FILES
# # myfile1
# # myfile2
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
# )
#############
## Testing ##
#############
## Add gtest based cpp test target and link libraries
# catkin_add_gtest(${PROJECT_NAME}-test test/test_lidar_driver_transfer.cpp)
# if(TARGET ${PROJECT_NAME}-test)
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
# endif()
## Add folders to be run by python nosetests
# catkin_add_nosetests(test)

View File

@ -0,0 +1,7 @@
<!-- 启动杉川雷达 -->
<launch>
<arg name="3d_sensor" default="3i_lidar"/>
<include file="$(find iiiroboticslidar2)/launch/3iroboticslidar2.launch">
</include>
</launch>

View File

@ -0,0 +1,7 @@
<!-- 启动杉川雷达 -->
<launch>
<arg name="3d_sensor" default="ydlidar_g2"/>
<include file="$(find ydlidar_g2)/launch/lidar.launch">
</include>
</launch>

View File

@ -0,0 +1,68 @@
<?xml version="1.0"?>
<package format="2">
<name>lidar_driver_transfer</name>
<version>0.0.0</version>
<description>The lidar_driver_transfer package</description>
<!-- One maintainer tag required, multiple allowed, one person per tag -->
<!-- Example: -->
<!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
<maintainer email="spark@todo.todo">spark</maintainer>
<!-- One license tag required, multiple allowed, one license per tag -->
<!-- Commonly used license strings: -->
<!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
<license>TODO</license>
<!-- Url tags are optional, but multiple are allowed, one per tag -->
<!-- Optional attribute type can be: website, bugtracker, or repository -->
<!-- Example: -->
<!-- <url type="website">http://wiki.ros.org/lidar_driver_transfer</url> -->
<!-- Author tags are optional, multiple are allowed, one per tag -->
<!-- Authors do not have to be maintainers, but could be -->
<!-- Example: -->
<author email="litian.zhuang@nxrobo.com">litian.zhuang</author>
<!-- The *depend tags are used to specify dependencies -->
<!-- Dependencies can be catkin packages or system dependencies -->
<!-- Examples: -->
<!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
<!-- <depend>roscpp</depend> -->
<!-- Note that this is equivalent to the following: -->
<!-- <build_depend>roscpp</build_depend> -->
<!-- <exec_depend>roscpp</exec_depend> -->
<!-- Use build_depend for packages you need at compile time: -->
<!-- <build_depend>message_generation</build_depend> -->
<!-- Use build_export_depend for packages you need in order to build against this package: -->
<!-- <build_export_depend>message_generation</build_export_depend> -->
<!-- Use buildtool_depend for build tool packages: -->
<!-- <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use exec_depend for packages you need at runtime: -->
<!-- <exec_depend>message_runtime</exec_depend> -->
<!-- Use test_depend for packages you need only for testing: -->
<!-- <test_depend>gtest</test_depend> -->
<!-- Use doc_depend for packages you need only for building documentation: -->
<!-- <doc_depend>doxygen</doc_depend> -->
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->
</export>
</package>

View File

@ -0,0 +1,29 @@
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app

View File

@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 2.8.3)
project(ydlidar_g2)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#add_definitions(-std=c++11) # Use C++11
find_package(catkin REQUIRED COMPONENTS
rosconsole
roscpp
sensor_msgs
)
#add_subdirectory(sdk)
set(SDK_PATH "./sdk/")
FILE(GLOB SDK_SRC
"${SDK_PATH}/src/impl/unix/*.cpp"
"${SDK_PATH}/src/*.cpp"
"${SDK_PATH}/src/*.c"
)
catkin_package()
include_directories(
${catkin_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/sdk/include
${PROJECT_SOURCE_DIR}/sdk/src
)
add_executable(ydlidar_g2_node src/ydlidar_node.cpp ${SDK_SRC})
add_executable(ydlidar_g2_client src/ydlidar_client.cpp)
target_link_libraries(ydlidar_g2_node
${catkin_LIBRARIES}
)
target_link_libraries(ydlidar_g2_client
${catkin_LIBRARIES}
)
install(TARGETS ydlidar_g2_node ydlidar_g2_client
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
install(DIRECTORY launch startup sdk
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
USE_SOURCE_PERMISSIONS
)

View File

@ -0,0 +1,104 @@
YDLIDAR ROS驱动包(V1.4.2)
=====================================================================
怎么构建ROS驱动包
=====================================================================
1) Clone this project to your catkin's workspace src folder
(1). git clone https://github.com/YDLIDAR/ydlidar_ros
(2). git chectout gaussian
2) Running catkin_make to build ydlidar_node and ydlidar_client
3) Create the name "/dev/ydlidar" for YDLIDAR
--$ roscd ydlidar_ros/startup
--$ sudo chmod 777 ./*
--$ sudo sh initenv.sh
怎样运行YDLIDAR ROS 包
=====================================================================
有两种方式运行方式
1. 运行YDLIDAR 节点并在RVIZ上显示
------------------------------------------------------------
roslaunch ydlidar_ros lidar_view.launch
2.运行YDLIDAR 节点在终端上显示
------------------------------------------------------------
roslaunch ydlidar_ros lidar.launch
rosrun ydlidar_ros ydlidar_client
配置参数
=====================================================================
port (string, default: /dev/ydlidar)
当前雷达端口号
baudrate (int, default:230400)
当前雷达波特率G2 G2A: 230400, G2C:115200)
frame_id (string, default: laser_frame)
雷达坐标系名称
reversion (bool, default: true)
是否旋转雷达数据180度
resolution_fixed (bool, default: true)
是否固定角度分辨率输出
auto_reconnect(bool, default: true)
是否雷达支持热插拔
angle_min (double, default: -180)
雷达最小有效角度
angle_max (double, default: 180)
雷达最大有效角度
range_min (double, default: 0.08)
雷达最小有效距离
range_max (double, default: 16.0)
雷达最大有效距离
ignore_array (string, default: "")
剔除角度列表
frequency (double, default: 10)
雷达扫描频率
更新日志
=====================================================================
2019-07-16 version:1.4.2
1.扫描频率偏移
2019-03-25 version:1.4.1
1.修复内存泄露.
2019-03-25 version:1.4.0
1.修复时间戳错误
2.雷达启动异常检测
3.移除别的雷达型号支持, 仅仅支持G2A雷达
4.优化turnOn 和 turnOff

View File

@ -0,0 +1,42 @@
<launch>
<arg
name="model" />
<arg
name="gui"
default="False" />
<param
name="robot_description"
textfile="$(find ydlidar_g2)/urdf/ydlidar.urdf" />
<param
name="use_gui"
value="$(arg gui)" />
<node
name="joint_state_publisher"
pkg="joint_state_publisher"
type="joint_state_publisher" />
<node
name="robot_state_publisher"
pkg="robot_state_publisher"
type="state_publisher" />
<node name="ydlidar_g2_node" pkg="ydlidar_g2" type="ydlidar_g2_node" output="screen">
<param name="port" type="string" value="/dev/ydlidar"/>
<param name="baudrate" type="int" value="115200"/>
<param name="frame_id" type="string" value="laser_frame"/>
<param name="angle_fixed" type="bool" value="true"/>
<param name="low_exposure" type="bool" value="false"/>
<param name="heartbeat" type="bool" value="false"/>
<param name="resolution_fixed" type="bool" value="true"/>
<param name="angle_min" type="double" value="-180" />
<param name="angle_max" type="double" value="180" />
<param name="range_min" type="double" value="0.08" />
<param name="range_max" type="double" value="16.0" />
<param name="ignore_array" type="string" value="" />
<param name="samp_rate" type="int" value="9"/>
<param name="frequency" type="double" value="7"/>
</node>
<node
name="rviz"
pkg="rviz"
type="rviz"
args="-d $(find ydlidar_g2)/ydlidar.rviz" />
</launch>

View File

@ -0,0 +1,20 @@
<launch>
<include
file="$(find ydlidar_g2)/launch/empty_world.launch" />
<node
name="tf_footprint_base"
pkg="tf"
type="static_transform_publisher"
args="0 0 0 0 0 0 base_laser base_footprint 40" />
<node
name="spawn_model"
pkg="gazebo_ros"
type="spawn_model"
args="-file $(find ydlidar_g2)/urdf/ydlidar.urdf -urdf -model ydlidar"
output="screen" />
<node
name="fake_joint_calibration"
pkg="rostopic"
type="rostopic"
args="pub /calibrated std_msgs/Bool true" />
</launch>

View File

@ -0,0 +1,17 @@
<launch>
<node name="ydlidar_g2_node" pkg="ydlidar_g2" type="ydlidar_g2_node" output="screen" respawn="false" >
<param name="port" type="string" value="/dev/ydlidar"/>
<param name="baudrate" type="int" value="230400"/>
<param name="frame_id" type="string" value="laser_frame"/>
<param name="resolution_fixed" type="bool" value="true"/>
<param name="auto_reconnect" type="bool" value="true"/>
<param name="reversion" type="bool" value="true"/>
<param name="angle_min" type="double" value="-180" />
<param name="angle_max" type="double" value="180" />
<param name="range_min" type="double" value="0.1" />
<param name="range_max" type="double" value="12.0" />
<param name="ignore_array" type="string" value="" />
<param name="frequency" type="double" value="10"/>
</node>
</launch>

View File

@ -0,0 +1,128 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /LidarLaserScan1
Splitter Ratio: 0.5
Tree Height: 413
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
Name: Tool Properties
Splitter Ratio: 0.588679
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Experimental: false
Name: Time
SyncMode: 0
SyncSource: ""
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.03
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Autocompute Intensity Bounds: true
Autocompute Value Bounds:
Max Value: 0
Min Value: 0
Value: true
Axis: Z
Channel Name: intensity
Class: rviz/LaserScan
Color: 255; 255; 255
Color Transformer: AxisColor
Decay Time: 0
Enabled: true
Invert Rainbow: false
Max Color: 255; 255; 255
Max Intensity: 4096
Min Color: 0; 0; 0
Min Intensity: 0
Name: LidarLaserScan
Position Transformer: XYZ
Queue Size: 1000
Selectable: true
Size (Pixels): 5
Size (m): 0.03
Style: Squares
Topic: /scan
Use Fixed Frame: true
Use rainbow: true
Value: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
Fixed Frame: laser_frame
Frame Rate: 30
Name: root
Tools:
- Class: rviz/MoveCamera
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/Select
- Class: rviz/SetInitialPose
Topic: /initialpose
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
Value: true
Views:
Current:
Class: rviz/Orbit
Distance: 11.1184
Focal Point:
X: -0.0344972
Y: 0.065886
Z: 0.148092
Name: Current View
Near Clip Distance: 0.01
Pitch: 0.615399
Target Frame: <Fixed Frame>
Value: Orbit (rviz)
Yaw: 5.82358
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 626
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd0000000400000000000001950000022cfc0200000006fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000000280000022c000000dd00fffffffb0000000a0049006d006100670065000000028d000000c60000000000000000000000010000010b00000294fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003300000294000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a0000002f600fffffffb0000000800540069006d00650100000000000004500000000000000000000003240000022c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1215
X: 65
Y: 24

View File

@ -0,0 +1,4 @@
<launch>
<include file="$(find ydlidar_g2)/launch/lidar.launch" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find ydlidar_g2)/launch/lidar.rviz" />
</launch>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,56 @@
<?xml version="1.0"?>
<package>
<name>ydlidar_g2</name>
<version>1.4.2</version>
<description>The ydlidar package</description>
<!-- One maintainer tag required, multiple allowed, one person per tag -->
<!-- Example: -->
<!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
<maintainer email="shao@eaibot.com">shao</maintainer>
<!-- One license tag required, multiple allowed, one license per tag -->
<!-- Commonly used license strings: -->
<!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
<license>BSD</license>
<!-- Url tags are optional, but mutiple are allowed, one per tag -->
<!-- Optional attribute type can be: website, bugtracker, or repository -->
<!-- Example: -->
<!-- <url type="website">http://wiki.ros.org/flashgo</url> -->
<!-- Author tags are optional, mutiple are allowed, one per tag -->
<!-- Authors do not have to be maintianers, but could be -->
<!-- Example: -->
<!-- <author email="jane.doe@example.com">Jane Doe</author> -->
<!-- The *_depend tags are used to specify dependencies -->
<!-- Dependencies can be catkin packages or system dependencies -->
<!-- Examples: -->
<!-- Use build_depend for packages you need at compile time: -->
<!-- <build_depend>message_generation</build_depend> -->
<!-- Use buildtool_depend for build tool packages: -->
<!-- <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use run_depend for packages you need at runtime: -->
<!-- <run_depend>message_runtime</run_depend> -->
<!-- Use test_depend for packages you need only for testing: -->
<!-- <test_depend>gtest</test_depend> -->
<buildtool_depend>catkin</buildtool_depend>
<build_depend>rosconsole</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>sensor_msgs</build_depend>
<run_depend>rosconsole</run_depend>
<run_depend>roscpp</run_depend>
<run_depend>sensor_msgs</run_depend>
<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->
</export>
</package>

View File

@ -0,0 +1,35 @@
cmake_minimum_required(VERSION 2.8)
#add_definitions(-std=c++11) # Use C++11
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories(include)
include_directories(src)
IF (WIN32)
FILE(GLOB SDK_SRC
"src/*.cpp"
"src/*.c"
"src/*.h"
"src/impl/windows/*.cpp"
"src/impl/windows/*.h"
)
ELSE()
FILE(GLOB SDK_SRC
"src/*.cpp"
"src/*.c"
"src/*.h"
"src/impl/unix/*.cpp"
"src/impl/unix/*.h"
)
ENDIF()
add_subdirectory(samples)
add_library(ydlidar_driver STATIC ${SDK_SRC})
IF (WIN32)
target_link_libraries(ydlidar_driver setupapi Winmm)
ELSE()
target_link_libraries(ydlidar_driver rt pthread)
ENDIF()

View File

@ -0,0 +1,247 @@
![YDLIDAR](image/index-X4.jpg "YDLIDAR_X4")
YDLIDAR SDK [![Build Status](https://travis-ci.org/cansik/sdk.svg?branch=samsung)](https://travis-ci.org/cansik/sdk) [![Build status](https://ci.appveyor.com/api/projects/status/2w9xm1dbafbi7xc0?svg=true)](https://ci.appveyor.com/project/cansik/sdk) [![codebeat badge](https://codebeat.co/badges/3d8634b7-84eb-410c-b92b-24bf6875d8ef)](https://codebeat.co/projects/github-com-cansik-sdk-samsung)
=====================================================================
Introduction
-------------------------------------------------------------------------------------------------------------------------------------------------------
YDLIDAR(https://www.ydlidar.com/) series is a set of high-performance and low-cost LIDAR sensors, which is the perfect sensor of 2D SLAM, 3D reconstruction, multi-touch, and safety applications.
If you are using ROS (Robot Operating System), please use our open-source [ROS Driver]( https://github.com/ydlidar/ydlidar) .
Licence
-------------------------------------------------------------------------------------------------------------------------------------------------------
The SDK itself is licensed under BSD [License](license)
Release Notes
-------------------------------------------------------------------------------------------------------------------------------------------------------
| Title | Version | Data |
| :-------- | --------:| :--: |
| SDK | 1.4.2 | 2019-08-29 |
- [feature] offset angle.
Dataset
-------------------------------------------------------------------------------------------------------------------------------------------------------
| Model | Baudrate | Sampling Frequency | Range(m) | Scanning Frequency(HZ) | Working temperature(°C) | Laser power max(mW) | voltage(V) | Current(mA) | Intensity
| :-------- | --------:|--------:| --------:| --------:|--------:| --------:| --------:| --------:| :--: |
| G2A | 230400 | 5000 | 0.12-12 |5-12|0-50| ~5|4.8-5.2|400-480| false |
| G2 | 230400 | 5000 | 0.12-12 |5-12|0-50| ~5|4.8-5.2|400-480| true |
| G2C | 230400 | 4000 | 0.12-12 |5-12|0-50| ~5|4.8-5.2|400-480| false |
How to build YDLIDAR SDK samples
---------------
$ git clone https://github.com/ydlidar/sdk
$ cd sdk
$ git checkout G2
$ cd ..
$ mkdir build
$ cd build
$ cmake ../sdk
$ make ###linux
$ vs open Project.sln ###windows
How to run YDLIDAR SDK samples
---------------
$ cd samples
linux:
$ ./ydlidar_test
$Please enter the lidar serial port:/dev/ttyUSB0
windows:
$ ydlidar_test.exe
$Please enter the lidar serial port:/dev/ttyUSB0
You should see YDLIDAR's scan result in the console:
[YDLIDAR]:SDK Version: 1.4.2
[YDLIDAR]:Lidar running correctly ! The health status: good
[YDLIDAR] Connection established in [/dev/ttyUSB0][230400]:
Firmware version: 1.1
Hardware version: 1
Model: G2
Serial: 2019071800011111
[YDLIDAR INFO] Current Sampling Rate : 5K
[YDLIDAR INFO] Current Scan Frequency : 10.000000Hz
[YDLIDAR INFO] Now YDLIDAR is scanning ......
Scan received: 500 ranges
Scan received: 503 ranges
Data structure
-------------------------------------------------------------------------------------------------------------------------------------------------------
data structure:
//! A struct for returning configuration from the YDLIDAR
struct LaserConfig {
//! Start angle for the laser scan [rad]. 0 is forward and angles are measured clockwise when viewing YDLIDAR from the top.
float min_angle;
//! Stop angle for the laser scan [rad]. 0 is forward and angles are measured clockwise when viewing YDLIDAR from the top.
float max_angle;
//! Scan resolution [rad].
float ang_increment;
//! Scan resoltuion [ns]
float time_increment;
//! Time between scans
float scan_time;
//! Minimum range [m]
float min_range;
//! Maximum range [m]
float max_range;
//! Range Resolution [m]
float range_res;
};
struct LaserScan {
//! Array of ranges
std::vector<float> ranges;
//! Array of intensities
std::vector<float> intensities;
//! Self reported time stamp in nanoseconds
uint64_t self_time_stamp;
//! System time when first range was measured in nanoseconds
uint64_t system_time_stamp;
//! Configuration of scan
LaserConfig config;
};
example angle parsing:
LaserScan scan;
for(size_t i =0; i < scan.ranges.size(); i++) {
// current angle
double angle = scan.config.min_angle + i*scan.config.ang_increment;// radian format
//current distance
double distance = scan.ranges[i];//meters
//current intensity
int intensity = scan.intensities[i];
}
Coordinate System
-------------------------------------------------------------------------------------------------------------------------------------------------------
![Coordinate](image/image.png "Coordinate")
### The relationship between the angle value and the data structure in the above figure:
double current_angle = scan.config.min_angle + index*scan.config.ang_increment;// radian format
doube Angle = current_angle*180/M_PI;//Angle fomat
Upgrade Log
---------------
2019-08-29 version 1.4.2
1.offset angle.
2019-08-12 version 1.4.2
1.support G2 G2A G2C.
2019-05-10 version:1.4.1
1.fix memory leak.
2019-03-25 version:1.4.0
1.fix Large motor resistance at startup issues.
2.fix ascendScanData timestamp issues.
3.check lidar abnormality when turn on lidar.
4.only support G4 lidar
5.Remove other lidar model interfaces functions.
6.fix turnOn function.
2018-12-07 version:1.3.9
1.Remove other lidar model interfaces functions.
2.Remove heartbeat
2018-11-24 version:1.3.8
1.Reduce abnormal situation recovery time.
2.fix timestamp from zero.
2018-10-26 version:1.3.7
1.add input angle calibration file.
2.remove network.
2018-10-15 version:1.3.6
1.add network support.
2018-05-23 version:1.3.4
1.add automatic reconnection if there is an exception
2.add serial file lock.
2018-05-14 version:1.3.3
1.add the heart function constraint.
2.add packet type with scan frequency support.
2018-04-16 version:1.3.2
1.add multithreading support.
2018-04-16 version:1.3.1
1.Compensate for each laser point timestamp.
Contact EAI
---------------
If you have any extra questions, please feel free to [contact us](http://www.ydlidar.cn/cn/contact)

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR SDK: include/ChannelDevice.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR SDK
&#160;<span id="projectnumber">V1.3.6</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ChannelDevice.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;v8stdint.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="class_channel_device.html"> 4</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_channel_device.html">ChannelDevice</a></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_channel_device.html">ChannelDevice</a>(){}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_channel_device.html">ChannelDevice</a>(){}</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> bindport(<span class="keyword">const</span> <span class="keywordtype">char</span>*, uint32_t ) = 0;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> open() = 0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isOpen() = 0;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> closePort() = 0;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> flush() = 0;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> waitfordata(<span class="keywordtype">size_t</span> data_count,uint32_t timeout = -1, <span class="keywordtype">size_t</span> * returned_size = NULL) = 0;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> writeData(<span class="keyword">const</span> uint8_t * data, <span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> readData(uint8_t * data, <span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setDTR(<span class="keywordtype">bool</span> level = <span class="keyword">true</span>) {<span class="keywordflow">return</span> <span class="keyword">true</span>;}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> getByteTime() { <span class="keywordflow">return</span> 0;}</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReleasePort() {<span class="keywordflow">return</span>;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="ttc" id="class_channel_device_html"><div class="ttname"><a href="class_channel_device.html">ChannelDevice</a></div><div class="ttdef"><b>Definition:</b> ChannelDevice.h:4</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,151 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceserial.html" target="_self">serial</a></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classserial_1_1_millisecond_timer.html" target="_self">MillisecondTimer</a></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structserial_1_1_port_info.html" target="_self">PortInfo</a></td><td class="desc"></td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="toggleFolder('0_2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classserial_1_1_serial.html" target="_self">Serial</a></td><td class="desc"></td></tr>
<tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classserial_1_1_serial_1_1_scoped_read_lock.html" target="_self">ScopedReadLock</a></td><td class="desc"></td></tr>
<tr id="row_0_2_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classserial_1_1_serial_1_1_scoped_write_lock.html" target="_self">ScopedWriteLock</a></td><td class="desc"></td></tr>
<tr id="row_0_2_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classserial_1_1_serial_1_1_serial_impl.html" target="_self">SerialImpl</a></td><td class="desc"></td></tr>
<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structserial_1_1termios2.html" target="_self">termios2</a></td><td class="desc"></td></tr>
<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structserial_1_1_timeout.html" target="_self">Timeout</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>ydlidar</b></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classydlidar_1_1_y_dlidar_driver.html" target="_self">YDlidarDriver</a></td><td class="desc"></td></tr>
<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcmd__packet.html" target="_self">cmd_packet</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_simple_ini_templ.html" target="_self">CSimpleIniTempl</a></td><td class="desc"></td></tr>
<tr id="row_3_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_simple_ini_templ_1_1_converter.html" target="_self">Converter</a></td><td class="desc"></td></tr>
<tr id="row_3_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_1_" class="arrow" onclick="toggleFolder('3_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_simple_ini_templ_1_1_entry.html" target="_self">Entry</a></td><td class="desc"></td></tr>
<tr id="row_3_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_simple_ini_templ_1_1_entry_1_1_key_order.html" target="_self">KeyOrder</a></td><td class="desc"></td></tr>
<tr id="row_3_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_simple_ini_templ_1_1_entry_1_1_load_order.html" target="_self">LoadOrder</a></td><td class="desc"></td></tr>
<tr id="row_3_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html" target="_self">FileWriter</a></td><td class="desc"></td></tr>
<tr id="row_3_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html" target="_self">OutputWriter</a></td><td class="desc"></td></tr>
<tr id="row_3_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_simple_ini_templ_1_1_string_writer.html" target="_self">StringWriter</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_yd_lidar.html" target="_self">CYdLidar</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structdevice__health.html" target="_self">device_health</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structdevice__info.html" target="_self">device_info</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_event.html" target="_self">Event</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfunction__state.html" target="_self">function_state</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_laser_config.html" target="_self">LaserConfig</a></td><td class="desc">A struct for returning configuration from the YDLIDAR </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_laser_scan.html" target="_self">LaserScan</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlidar__ans__header.html" target="_self">lidar_ans_header</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_locker.html" target="_self">Locker</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structnode__info.html" target="_self">node_info</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structnode__package.html" target="_self">node_package</a></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structnode__packages.html" target="_self">node_packages</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structoffset__angle.html" target="_self">offset_angle</a></td><td class="desc"></td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_package_node.html" target="_self">PackageNode</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structsampling__rate.html" target="_self">sampling_rate</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structscan__exposure.html" target="_self">scan_exposure</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structscan__frequency.html" target="_self">scan_frequency</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structscan__heart__beat.html" target="_self">scan_heart_beat</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structscan__points.html" target="_self">scan_points</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structscan__rotation.html" target="_self">scan_rotation</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_scoped_locker.html" target="_self">ScopedLocker</a></td><td class="desc"></td></tr>
<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_s_i___convert_a.html" target="_self">SI_ConvertA</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_s_i___convert_w.html" target="_self">SI_ConvertW</a></td><td class="desc"></td></tr>
<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_i___generic_case.html" target="_self">SI_GenericCase</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_i___generic_no_case.html" target="_self">SI_GenericNoCase</a></td><td class="desc"></td></tr>
<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_thread.html" target="_self">Thread</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@ -0,0 +1,144 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#af878d0a2aa780255b621e95f58f691d8">CSimpleIniTempl</a>(bool a_bIsUtf8=false, bool a_bMultiKey=false, bool a_bMultiLine=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa5c1cdd0b306434d9e9f1422888049da">Delete</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, bool a_bRemoveEmpty=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a04551ae6c3e92475b2a823d2729652d6">DeleteValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, const SI_CHAR *a_pValue, bool a_bRemoveEmpty=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a8cf1357d78d28653b68790ab5d5b45f1">GetAllKeys</a>(const SI_CHAR *a_pSection, TNamesDepend &amp;a_names) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a65b01b5bf88d0dfe3ba51f12278cbcb8">GetAllSections</a>(TNamesDepend &amp;a_names) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a263c85a8cd839c315fefc078e048257b">GetAllValues</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, TNamesDepend &amp;a_values) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#af0a8cffb0b7f6ca04e3eed9ab4660666">GetBoolValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, bool a_bDefault=false, bool *a_pHasMultiple=NULL) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a98442d01db35187f2770f0a91042cce8">GetConverter</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a6ce7c77a1d5d64dc289927a5c2659e78">GetDoubleValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, double a_nDefault=0, bool *a_pHasMultiple=NULL) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a994c6b29bb8b4c16a4b1a7f4c8b2b3f4">GetLongValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, long a_nDefault=0, bool *a_pHasMultiple=NULL) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a795e2fcbad3472055aedfe188f4f8d33">GetSection</a>(const SI_CHAR *a_pSection) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a2e612d67d1e1631c157af6291ac8c348">GetSectionSize</a>(const SI_CHAR *a_pSection) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a39999339113e9395d5e2c6b02ef5c618">GetValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, const SI_CHAR *a_pDefault=NULL, bool *a_pHasMultiple=NULL) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#acaada2b1ab734fc7dd8780ba7f376c26">IsEmpty</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a8069b3c574949b78fe0274ae803f0685">IsMultiKey</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a805dba3689efd63f8c4485a5f2e89090">IsMultiLine</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa18f29d67107392a9e9f361def892c71">IsUnicode</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a174244fd3e09ff78da05fe46be86e714">LoadData</a>(const std::string &amp;a_strData)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa797cf47cec05906f07d5065882af4d3">LoadData</a>(const char *a_pData, size_t a_uDataLen)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aebb6e5fff76efc05ca6cc4b7b56481a3">LoadFile</a>(const char *a_pszFile)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a7ccb65e82fa347b42b59330968f826ae">LoadFile</a>(FILE *a_fpFile)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a89b34d38be4518e9ed91c634a41b8055">Reset</a>()</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a5fea5d590edbb5eef694991c7c355915">Save</a>(OutputWriter &amp;a_oOutput, bool a_bAddSignature=false) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#af944674fb44473ede150a3bcdc103d63">Save</a>(std::string &amp;a_sBuffer, bool a_bAddSignature=false) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a1449e083d968790ef7479de24edddba0">SaveFile</a>(const char *a_pszFile, bool a_bAddSignature=true) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#af3f26b331a0f9d7f071d7b4aa8038758">SaveFile</a>(FILE *a_pFile, bool a_bAddSignature=false) const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a48ae136fa20c5d7eb7ab0b75342b27cf">SetBoolValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, bool a_bValue, const SI_CHAR *a_pComment=NULL, bool a_bForceReplace=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#af92ba0b8067553ab693c62a370de6534">SetDoubleValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, double a_nValue, const SI_CHAR *a_pComment=NULL, bool a_bForceReplace=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#ab2238be407232e4bba0f1343e4793e4e">SetLongValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, long a_nValue, const SI_CHAR *a_pComment=NULL, bool a_bUseHex=false, bool a_bForceReplace=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#ac3cfaf072a64f960bdcb7ddf2edc52b6">SetMultiKey</a>(bool a_bAllowMultiKey=true)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa7214b76600790053a5c715e9730aab0">SetMultiLine</a>(bool a_bAllowMultiLine=true)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#ae3c0eae2dcd84a42c99bb86ae103662c">SetSpaces</a>(bool a_bSpaces=true)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa9a15a66de893571014f661f89cb4d4b">SetUnicode</a>(bool a_bIsUtf8=true)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#aa2014a3dc8fdd638316cf1d3611796ab">SetValue</a>(const SI_CHAR *a_pSection, const SI_CHAR *a_pKey, const SI_CHAR *a_pValue, const SI_CHAR *a_pComment=NULL, bool a_bForceReplace=false)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SI_CHAR_T</b> typedef (defined in <a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a568d70ad0c08d7a0f9ae5dae0b8372b9">TKeyVal</a> typedef</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a391b3f3751e06cd9e9de4fb16ac14342">TNamesDepend</a> typedef</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a31bef7b63de3d584e9a42cd1b526ec76">TSection</a> typedef</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a9c967faf796cf5babea67e97975bed9b">UsingSpaces</a>() const </td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_simple_ini_templ.html#a8c933adc1d46bb663caeb6f9dee5aa12">~CSimpleIniTempl</a>()</td><td class="entry"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,113 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">Converter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Converter</b>(bool a_bStoreIsUtf8) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Converter</b>(const Converter &amp;rhs) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ConvertToStore</b>(const SI_CHAR *a_pszString) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Data</b>() (defined in <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Converter &amp;rhs) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,147 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_converter.html">Converter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_c_simple_ini_templ_1_1_converter-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_simple_ini_templ_1_1_converter__inherit__graph.png" border="0" usemap="#_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_converter_inherit__map" alt="Inheritance graph"/></div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_simple_ini_templ_1_1_converter__coll__graph.png" border="0" usemap="#_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_converter_coll__map" alt="Collaboration graph"/></div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab8e740b211e4ece127d4d25773ba7e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8e740b211e4ece127d4d25773ba7e42"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Converter</b> (bool a_bStoreIsUtf8)</td></tr>
<tr class="separator:ab8e740b211e4ece127d4d25773ba7e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6e993014ed5d60c6e890e55beb0805"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f6e993014ed5d60c6e890e55beb0805"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Converter</b> (const <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">Converter</a> &amp;rhs)</td></tr>
<tr class="separator:a2f6e993014ed5d60c6e890e55beb0805"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af858c01c6a7e4ce9fafd18abc9e0ac1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af858c01c6a7e4ce9fafd18abc9e0ac1b"></a>
<a class="el" href="class_c_simple_ini_templ_1_1_converter.html">Converter</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_c_simple_ini_templ_1_1_converter.html">Converter</a> &amp;rhs)</td></tr>
<tr class="separator:af858c01c6a7e4ce9fafd18abc9e0ac1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e4186867214b54326cf622e323c9f2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e4186867214b54326cf622e323c9f2f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ConvertToStore</b> (const SI_CHAR *a_pszString)</td></tr>
<tr class="separator:a4e4186867214b54326cf622e323c9f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a918bbd4f861a2872e148bc9481ac80bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a918bbd4f861a2872e148bc9481ac80bb"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> ()</td></tr>
<tr class="separator:a918bbd4f861a2872e148bc9481ac80bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class SI_CHAR, class SI_STRLESS, class SI_CONVERTER&gt;<br />
class CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter</h3>
<p>Characterset conversion utility class to convert strings to the same format as is used for the storage. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,2 @@
<map id="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter" name="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter">
</map>

View File

@ -0,0 +1 @@
5f823c90e060b53c5691f7ab80bfcd11

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -0,0 +1,2 @@
<map id="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter" name="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::Converter">
</map>

View File

@ -0,0 +1 @@
5f823c90e060b53c5691f7ab80bfcd11

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -0,0 +1,112 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">FileWriter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FileWriter</b>(FILE *a_file) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>OutputWriter</b>() (defined in <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Write</b>(const char *a_pBuf) (defined in <a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~OutputWriter</b>() (defined in <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,144 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_file_writer.html">FileWriter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_c_simple_ini_templ_1_1_file_writer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_simple_ini_templ_1_1_file_writer__inherit__graph.png" border="0" usemap="#_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_inherit__map" alt="Inheritance graph"/></div>
<map name="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_inherit__map" id="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_inherit__map">
<area shape="rect" id="node2" href="class_c_simple_ini_templ_1_1_output_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::OutputWriter" alt="" coords="5,5,213,61"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_simple_ini_templ_1_1_file_writer__coll__graph.png" border="0" usemap="#_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_coll__map" alt="Collaboration graph"/></div>
<map name="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_coll__map" id="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_file_writer_coll__map">
<area shape="rect" id="node2" href="class_c_simple_ini_templ_1_1_output_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::OutputWriter" alt="" coords="5,5,213,61"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aecd4d79480c9b4e70b598c10014856f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecd4d79480c9b4e70b598c10014856f8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>FileWriter</b> (FILE *a_file)</td></tr>
<tr class="separator:aecd4d79480c9b4e70b598c10014856f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8885b97884ef9dd5bf074bc4f011373"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8885b97884ef9dd5bf074bc4f011373"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Write</b> (const char *a_pBuf)</td></tr>
<tr class="separator:ae8885b97884ef9dd5bf074bc4f011373"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class SI_CHAR, class SI_STRLESS, class SI_CONVERTER&gt;<br />
class CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter</h3>
<p><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">OutputWriter</a> class to write the INI data to a file </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,3 @@
<map id="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter" name="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter">
<area shape="rect" id="node2" href="$class_c_simple_ini_templ_1_1_output_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::OutputWriter" alt="" coords="5,5,213,61"/>
</map>

View File

@ -0,0 +1 @@
73389863825c78ab79aa53773af61799

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,3 @@
<map id="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter" name="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::FileWriter">
<area shape="rect" id="node2" href="$class_c_simple_ini_templ_1_1_output_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::OutputWriter" alt="" coords="5,5,213,61"/>
</map>

View File

@ -0,0 +1 @@
73389863825c78ab79aa53773af61799

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">OutputWriter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OutputWriter</b>() (defined in <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Write</b>(const char *a_pBuf)=0 (defined in <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~OutputWriter</b>() (defined in <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a>)</td><td class="entry"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,134 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>YDLIDAR-SS SDK: CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ydliar.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">YDLIDAR-SS SDK
&#160;<span id="projectnumber">V2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="class_c_simple_ini_templ.html">CSimpleIniTempl</a></li><li class="navelem"><a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">OutputWriter</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_c_simple_ini_templ_1_1_output_writer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_simple_ini_templ_1_1_output_writer__inherit__graph.png" border="0" usemap="#_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_output_writer_inherit__map" alt="Inheritance graph"/></div>
<map name="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_output_writer_inherit__map" id="_c_simple_ini_templ_3_01_s_i___c_h_a_r_00_01_s_i___s_t_r_l_e_s_s_00_01_s_i___c_o_n_v_e_r_t_e_r_01_4_1_1_output_writer_inherit__map">
<area shape="rect" id="node2" href="class_c_simple_ini_templ_1_1_file_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::FileWriter" alt="" coords="267,5,458,61"/>
<area shape="rect" id="node3" href="class_c_simple_ini_templ_1_1_string_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::StringWriter" alt="" coords="261,85,464,141"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a48e5905a9defbe96d14f3068a383463d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48e5905a9defbe96d14f3068a383463d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Write</b> (const char *a_pBuf)=0</td></tr>
<tr class="separator:a48e5905a9defbe96d14f3068a383463d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class SI_CHAR, class SI_STRLESS, class SI_CONVERTER&gt;<br />
class CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter</h3>
<p>interface definition for the <a class="el" href="class_c_simple_ini_templ_1_1_output_writer.html">OutputWriter</a> object to pass to <a class="el" href="class_c_simple_ini_templ.html#a5fea5d590edbb5eef694991c7c355915">Save()</a> in order to output the INI file data. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/<a class="el" href="_simple_ini_8h_source.html">SimpleIni.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>

View File

@ -0,0 +1,4 @@
<map id="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter" name="CSimpleIniTempl&lt; SI_CHAR, SI_STRLESS, SI_CONVERTER &gt;::OutputWriter">
<area shape="rect" id="node2" href="$class_c_simple_ini_templ_1_1_file_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::FileWriter" alt="" coords="267,5,458,61"/>
<area shape="rect" id="node3" href="$class_c_simple_ini_templ_1_1_string_writer.html" title="CSimpleIniTempl\&lt; SI\l_CHAR, SI_STRLESS, SI\l_CONVERTER \&gt;::StringWriter" alt="" coords="261,85,464,141"/>
</map>

View File

@ -0,0 +1 @@
fdd7c2cbc4fe2e5c9c9956705105e193

Some files were not shown because too many files have changed in this diff Show More