Zero in message definitions are not accepted
kenji-miyake opened this issue · 1 comments
kenji-miyake commented
Hello, thank you for developing great tools!
When I was using rqt_multiplot
, I found an issue similar to #4.
Problem
Some message fields are not shown as candidates, and this was because variant
doesn't accept 0
in message definitions.
variant/variant_topic_tools/src/MessageDefinitionParser.cpp
Lines 35 to 42 in 508e2c4
For example, this tool can't parse the following msg because it has 0
(mobileye_560_660_msgs).
Header header
mobileye_560_660_msgs/Lane lane
Solution
Change 1-9
to 0-9
.
How to test
- Reproduce the problem
$ docker run --rm -it ros:melodic
# git clone https://github.com/kenji-miyake/variant.git -b add-test-packages-for-pr
# cd variant
# apt update
# rosdep install -y --from-paths . --ignore-src --rosdistro melodic
# apt install -y python3-colcon-common-extensions
# colcon build --symlink-install --catkin-skip-building-tests --cmake-args -DCMAKE_BUILD_TYPE=Release
# source install/setup.bash
# rosrun test_package test_package
[ INFO] [1605688556.366635179]: DataType: geometry_msgs/Quaternion
[ INFO] [1605688556.366657507]: getNumVariableMembers: 4
[ INFO] [1605688556.366662017]: member_0: x
[ INFO] [1605688556.366665324]: member_1: y
[ INFO] [1605688556.366667998]: member_2: z
[ INFO] [1605688556.366670546]: member_3: w
[ INFO] [1605688556.366741769]: DataType: test_msgs/Test
[ INFO] [1605688556.366748146]: getNumVariableMembers: 1
[ INFO] [1605688556.366751725]: member_0: header
-> member lane
is not shown
- Check if it's fixed
# git -c "user.name=test" -c "user.email=test@example.com" merge origin/allow-0-in-message-definition
# colcon build --symlink-install --catkin-skip-building-tests --cmake-args -DCMAKE_BUILD_TYPE=Release
# rosrun test_package test_package
[ INFO] [1605688585.422714139]: DataType: geometry_msgs/Quaternion
[ INFO] [1605688585.422737184]: getNumVariableMembers: 4
[ INFO] [1605688585.422741711]: member_0: x
[ INFO] [1605688585.422744748]: member_1: y
[ INFO] [1605688585.422747263]: member_2: z
[ INFO] [1605688585.422749755]: member_3: w
[ INFO] [1605688585.422904627]: DataType: test_msgs/Test
[ INFO] [1605688585.422910842]: getNumVariableMembers: 2
[ INFO] [1605688585.422928474]: member_0: header
[ INFO] [1605688585.422931243]: member_1: lane
-> member lane
is shown
Question
- Is there any reason for not accepting
0
in message definitions? - Can you change this behavior? I'll send a PR later.