Ejemplo n.º 1
0
def parse_rosrpc_uri(uri):
    """
    utility function for parsing ROS-RPC URIs
    @param uri: ROSRPC URI
    @type  uri: str
    @return: address, port
    @rtype: (str, int)
    @raise ParameterInvalid: if uri is not a valid ROSRPC URI
    """
    if uri.startswith(ROSRPC):
        dest_addr = uri[len(ROSRPC):]            
    else:
        raise ParameterInvalid("Invalid protocol for ROS service URL: %s"%uri)
    try:
        if '/' in dest_addr:
            dest_addr = dest_addr[:dest_addr.find('/')]
        dest_addr, dest_port = dest_addr.split(':')
        dest_port = int(dest_port)
    except:
        raise ParameterInvalid("ROS service URL is invalid: %s"%uri)
    return dest_addr, dest_port
Ejemplo n.º 2
0
 def test_ParameterInvalid(self):
     # not really testing anything here other than typos
     from rospy.impl.validators import ParameterInvalid
     self.assert_(isinstance(ParameterInvalid('param'), Exception))
Ejemplo n.º 3
0
 def validator(param_value, caller_id):
     v = valid_name_validator_resolved(param_name, param_value, caller_id)
     if param_value == '/':
         raise ParameterInvalid("ERROR: parameter [%s] cannot be the global namespace"%param_name)            
     return v