RiCBattery.py
Go to the documentation of this file.
00001 
00002 from threading import Thread
00003 import time
00004 import rospy
00005 import rostopic
00006 from BAL.Header.Requests.PublishRequest import PublishRequest
00007 from BAL.Header.Response.ParamBuildResponse import Battery
00008 
00009 __author__ = 'tom1231'
00010 import re
00011 from rospy import Publisher
00012 from ric_board.msg import Battery
00013 from BAL.Interfaces.Device import Device
00014 from BAL.Handlers.keepAliveHandler import KeepAliveHandler
00015 from BAL.RiCParam.RiCParam import RiCParam
00016 class RiCBattery(Device):
00017     def __init__(self, param, output):
00018         """
00019 
00020         :param param:
00021         :type param: RiCParam
00022         :param output:
00023         :return:
00024         """
00025         Device.__init__(self, param.getBatteryName(), output)
00026         self._pub = Publisher('%s' % self._name, Battery, queue_size=param.getBatteryPubHz())
00027         self._haveRightToPublish = False
00028 
00029         self._min = param.getBatteryMin()
00030         self._max = param.getBatteryMax()
00031 
00032         #KeepAliveHandler(self._name, Float32)
00033 
00034     def publish(self, data):
00035         msg = Battery()
00036         msg.data = data
00037         msg.min = self._min
00038         msg.max = self._max
00039 
00040         self._pub.publish(msg)
00041 
00042     def getType(self): return Battery
00043 
00044     def checkForSubscribers(self):
00045         try:
00046             subCheck = re.search('Subscribers:.*', rostopic.get_info_text(self._pub.name)).group(0).split(': ')[1]
00047 
00048             if not self._haveRightToPublish and subCheck == '':
00049                 self._output.write(PublishRequest(Battery, 0, True).dataTosend())
00050                 self._haveRightToPublish = True
00051 
00052             elif self._haveRightToPublish and subCheck == 'None':
00053                 self._output.write(PublishRequest(Battery, 0, False).dataTosend())
00054                 self._haveRightToPublish = False
00055         except: pass


ric_board
Author(s): RoboTiCan
autogenerated on Fri Oct 27 2017 03:02:31