boschglobal / locator_ros_bridge

ROS interface to Rexroth ROKIT Locator
Apache License 2.0
6 stars 12 forks source link

IP validity check #43

Closed thkfighter closed 1 year ago

thkfighter commented 1 year ago

branch: noetic The other branches should have the same problem. In bridge.launch, if you edit argument bridge_ip to an invalid IP, like 127.17.01 (yes, very abnormal IP address from our customer's misoperation), and run roslaunch bosch_locator_bridge bridge.launch, this invalid IP address will be configured at three places of ROKIT Locator, namely two laser addresses and one odometry address. No exceptions are raised. This will not happen in aXessor because it checks IP address before you save. Then if you want to edit any configuration of Locator through aXessor, you'll find the save button unavailable; when you exit the the configuring page of aXessor, it will throw an error window, saying "invalid parameters". I guess the reason is that aXessor checks every parameters when you press the save button or leave the configuring page, you cannot edit parameters located on different pages at one time, and there are three invalid IP addresses set by bosch_locator_bridge located on different pages. This problem can be fixed by giving bridge_ip a valid address and re-run roslaunch to fix all three invalid addresses in Locator at one time.

So, it's best to add a function to check IP validity for launch files of bosch_locator_bridge.

syyuen commented 1 year ago

The bridge_ip is used to create the ClientSensor.odometryAddress, ClientSensor.laser.address, ClientSensor.laser2.address. According to the API document these addresses have the type NetworkAddress, which is defined as "a non-empty string representing a valid network address (IP address or hostname)". Therefore in your case a wrong IP like 127.17.01 passed the schema validation since it is interpreted as a string.