diag_agg_pub_changing.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # Software License Agreement (BSD License)
00003 #
00004 # Copyright (c) 2009, Willow Garage, Inc.
00005 # All rights reserved.
00006 #
00007 # Redistribution and use in source and binary forms, with or without
00008 # modification, are permitted provided that the following conditions
00009 # are met:
00010 #
00011 #  * Redistributions of source code must retain the above copyright
00012 #    notice, this list of conditions and the following disclaimer.
00013 #  * Redistributions in binary form must reproduce the above
00014 #    copyright notice, this list of conditions and the following
00015 #    disclaimer in the documentation and/or other materials provided
00016 #    with the distribution.
00017 #  * Neither the name of the Willow Garage nor the names of its
00018 #    contributors may be used to endorse or promote products derived
00019 #    from this software without specific prior written permission.
00020 #
00021 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032 # POSSIBILITY OF SUCH DAMAGE.
00033 #
00034 
00035 ##\author Kevin Watts
00036 
00037 ##\brief Publishes diagnostic messages for robot monitor regression test
00038 
00039 PKG = 'robot_monitor'
00040 
00041 import roslib; roslib.load_manifest(PKG)
00042 
00043 import rospy
00044 from time import sleep
00045 
00046 from diagnostic_msgs.msg import DiagnosticArray, DiagnosticStatus
00047 
00048 if __name__ == '__main__':
00049     rospy.init_node('diag_agg_pub')
00050     pub = rospy.Publisher('diagnostics_agg', DiagnosticArray)
00051     
00052     statuses = [
00053         [
00054         DiagnosticStatus(1, '/BASE', 'OK', '', []),
00055         DiagnosticStatus(0, '/BASE/group1', 'OK', '', []),
00056         DiagnosticStatus(1, '/BASE/group1/item1', 'Warning', '', []),
00057         DiagnosticStatus(0, '/BASE/group1/item2', 'OK', '', []),
00058 
00059         DiagnosticStatus(0, '/BASE/group2', 'OK', '', []),
00060         DiagnosticStatus(0, '/BASE/group2/item1', 'OK', '', []),
00061         DiagnosticStatus(1, '/BASE/group2/item2', 'Warning', '', []),
00062 
00063         DiagnosticStatus(2, '/BASE2', 'OK', '', []),
00064         DiagnosticStatus(2, '/BASE2/group3', 'OK', '', []),
00065         DiagnosticStatus(0, '/BASE2/group3/item1', 'OK', '', []),
00066         DiagnosticStatus(2, '/BASE2/group3/item2', 'Error', '', [])
00067         ],
00068         
00069         [
00070         DiagnosticStatus(1, '/BASE', 'OK', '', []),
00071         DiagnosticStatus(1, '/BASE/group1/item1', 'Warning', '', []),
00072         DiagnosticStatus(0, '/BASE/group1/item2', 'OK', '', []),
00073 
00074         DiagnosticStatus(0, '/BASE/group2', 'OK', '', []),
00075         DiagnosticStatus(0, '/BASE/group2/item1', 'OK', '', []),
00076 
00077         DiagnosticStatus(2, '/BASE2', 'OK', '', []),
00078         DiagnosticStatus(2, '/BASE2/group3', 'OK', '', []),
00079         DiagnosticStatus(2, '/BASE2/group3/item2', 'Error', '', []),
00080 
00081         #DiagnosticStatus(0, '/BASE3', 'OK', '', []),
00082         DiagnosticStatus(0, '/BASE3/group1', 'OK', '', []),
00083         DiagnosticStatus(0, '/BASE3/group1/item2', 'Error', '', [])
00084         ]
00085     ]
00086     
00087     array = DiagnosticArray() 
00088     
00089     array.header.stamp = rospy.get_rostime()
00090 
00091     i = 0
00092     ind = 0
00093     while not rospy.is_shutdown():
00094         old_ind = ind
00095         ind = 0
00096         if (i % 10 > 5):
00097             ind = 1 
00098         i = i + 1
00099         
00100         if (old_ind != ind):
00101             print "switched", ind
00102         
00103         array.status = statuses[ind]
00104         pub.publish(array)
00105         sleep(1)


robot_monitor
Author(s): Kevin Watts (watts@willowgarage.com), Josh Faust (jfaust@willowgarage.com)
autogenerated on Sat Dec 28 2013 16:53:42