36 PKG = 
'pr2_power_board' 
   39 roslib.load_manifest(PKG)
 
   49 if wxversion.checkInstalled(WXVER):
 
   50     wxversion.select(WXVER)
 
   52     print(
'This application requires wxPython version %s' % (WXVER), file=sys.stderr)
 
   58 import threading, time
 
   62         wx.Panel.__init__(self, parent, wx.ID_ANY)
 
   66         xrc_path = roslib.packages.get_pkg_dir(PKG) + 
'/ui/pr2_power_board_panel.xrc' 
   68         self.
_xrc = xrc.XmlResource(xrc_path)
 
   71         serialBoxSizer = wx.BoxSizer(wx.HORIZONTAL)
 
   72         self.
myList = wx.ComboBox(self, -1, size=(150,30), style=wx.CB_READONLY)
 
   74         serialBoxSizer.Add( wx.StaticText( self, -1, 
"Board ") )
 
   75         serialBoxSizer.Add( self.
myList )
 
   76         serialBoxSizer.Add( wx.StaticText( self, -1, 
"Serial ") )
 
   82         sizer = wx.BoxSizer(wx.VERTICAL)
 
   83         sizer.Add( serialBoxSizer, 0, wx.TOP)
 
  107         self.
power_control = rospy.ServiceProxy(
'power_board/control', PowerBoardCommand)
 
  134         self.
myList.SetValue(
"none")
 
  144         name = str(status.name)
 
  146         for strvals 
in status.values:
 
  147             if (strvals.key == 
"Serial Number"):
 
  148                 serial = int(strvals.value)
 
  149         rospy.logerr(
"Adding: %s serial=%d" %(name,serial))
 
  153         if self.
myList.Count == 1:
 
  154             self.
myList.SetSelection(0)
 
  175             for status 
in message.status:
 
  176                 if( (status.name.startswith(
"Power board") & (self.
myList.FindString( status.name ) == wx.NOT_FOUND)) ):
 
  181                     if( status.level == 0 ):
 
  184                     elif (status.level == 0):
 
  190                     for value 
in status.values:
 
  191                         if (value.key == 
"Breaker 0 Voltage"):
 
  193                         if (value.key == 
"Breaker 1 Voltage"):
 
  195                         if (value.key == 
"Breaker 2 Voltage"):
 
  197                         if (value.key == 
"RunStop Button Status"):
 
  199                         if (value.key == 
"RunStop Status"):
 
  202                     for strvals 
in status.values:
 
  203                         if (re.match(
'Breaker 0',strvals.key,re.IGNORECASE)):
 
  205                         if (re.match(
'Breaker 1',strvals.key,re.IGNORECASE)):
 
  207                         if (re.match(
'Breaker 2',strvals.key,re.IGNORECASE)):
 
  240                         estop_status_temp = 
"Stop" 
  243                         estop_status_temp = 
"Run" 
  260         except rospy.ServiceException 
as e:
 
  261             rospy.logerr(
"Service Call Failed: %s"%e)
 
  266         except rospy.ServiceException 
as e:
 
  267             rospy.logerr(
"Service Call Failed: %s"%e)
 
  272         except rospy.ServiceException 
as e:
 
  273             rospy.logerr(
"Service Call Failed: %s"%e)
 
  279         except rospy.ServiceException 
as e:
 
  280             rospy.logerr(
"Service Call Failed: %s"%e)
 
  285         except rospy.ServiceException 
as e:
 
  286             rospy.logerr(
"Service Call Failed: %s"%e)
 
  291         except rospy.ServiceException 
as e:
 
  292             rospy.logerr(
"Service Call Failed: %s"%e)
 
  298         except rospy.ServiceException 
as e:
 
  299             rospy.logerr(
"Service Call Failed: %s"%e)
 
  304         except rospy.ServiceException 
as e:
 
  305             rospy.logerr(
"Service Call Failed: %s"%e)
 
  310         except rospy.ServiceException 
as e:
 
  311             rospy.logerr(
"Service Call Failed: %s"%e)
 
  317         except rospy.ServiceException 
as e:
 
  318             rospy.logerr(
"Service Call Failed: %s"%e)
 
  323         except rospy.ServiceException 
as e:
 
  324             rospy.logerr(
"Service Call Failed: %s"%e)
 
  329         except rospy.ServiceException 
as e:
 
  330             rospy.logerr(
"Service Call Failed: %s"%e)
 
  336         except rospy.ServiceException 
as e:
 
  337             rospy.logerr(
"Service Call Failed: %s"%e)
 
  341         except rospy.ServiceException 
as e:
 
  342             rospy.logerr(
"Service Call Failed: %s"%e)