params.py
Go to the documentation of this file.
00001 # Software License Agreement (BSD License)
00002 #
00003 # Copyright (c) 2012, Willow Garage, Inc.
00004 # All rights reserved.
00005 #
00006 # Redistribution and use in source and binary forms, with or without
00007 # modification, are permitted provided that the following conditions
00008 # are met:
00009 #
00010 #  * Redistributions of source code must retain the above copyright
00011 #    notice, this list of conditions and the following disclaimer.
00012 #  * Redistributions in binary form must reproduce the above
00013 #    copyright notice, this list of conditions and the following
00014 #    disclaimer in the documentation and/or other materials provided
00015 #    with the distribution.
00016 #  * Neither the name of Willow Garage, Inc. nor the names of its
00017 #    contributors may be used to endorse or promote products derived
00018 #    from this software without specific prior written permission.
00019 #
00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00024 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00031 # POSSIBILITY OF SUCH DAMAGE.
00032 
00033 import rospy
00034 import threading
00035 
00036 from json import loads, dumps
00037 
00038 
00039 """ Methods to interact with the param server.  Values have to be passed
00040 as JSON in order to facilitate dynamically typed SRV messages """
00041 
00042 # rospy parameter server isn't thread-safe
00043 param_server_lock = threading.RLock()
00044 
00045 def set_param(name, value):
00046     d = None
00047     try:
00048         d = loads(value)
00049     except ValueError:
00050         raise Exception("Due to the type flexibility of the ROS parameter server, the value argument to set_param must be a JSON-formatted string.")
00051     with param_server_lock:
00052         rospy.set_param(name, d)
00053     
00054     
00055 def get_param(name, default):
00056     d = None
00057     if default is not "":
00058         try:
00059             d = loads(default)
00060         except ValueError:
00061             d = default
00062     
00063     with param_server_lock:
00064         value = rospy.get_param(name, d)
00065     return dumps(value)
00066 
00067 def has_param(name):
00068     with param_server_lock:
00069         return rospy.has_param(name)
00070 
00071 
00072 def delete_param(name):
00073     with param_server_lock:
00074         if has_param(name):
00075             rospy.delete_param(name)
00076         
00077         
00078 def search_param(name):
00079     with param_server_lock:
00080         return rospy.search_param(name)
00081 
00082 def get_param_names():
00083     with param_server_lock:
00084         return rospy.get_param_names()


rosapi
Author(s): Jonathan Mace
autogenerated on Thu Aug 27 2015 14:50:38