RiCPPM.py
Go to the documentation of this file.
00001 import re
00002 from threading import Thread
00003 import rostopic
00004 from BAL.Handlers.keepAliveHandler import KeepAliveHandler
00005 from BAL.Header.Requests.PublishRequest import PublishRequest
00006 
00007 __author__ = 'tom1231'
00008 import rospy
00009 from rospy import Publisher
00010 from ric_board.msg import PPM
00011 from BAL.Interfaces.Device import Device
00012 
00013 
00014 class RiCPPM(Device):
00015     def __init__(self, param, output):
00016         Device.__init__(self, param.getPPMName(), output)
00017         self._pub = Publisher('%s' % self._name, PPM, queue_size=param.getPPMPubHz())
00018         self._haveRightToPublish = False
00019         #KeepAliveHandler(self._name, PPM)
00020 
00021     def getType(self): return PPM
00022 
00023     def publish(self, data):
00024         msg = PPM()
00025         msg.channels = data.getChannels()
00026         self._pub.publish(msg)
00027 
00028     def checkForSubscribers(self):
00029         try:
00030             subCheck = re.search('Subscribers:.*', rostopic.get_info_text(self._pub.name)).group(0).split(': ')[1]
00031 
00032             if not self._haveRightToPublish and subCheck == '':
00033                 self._output.write(PublishRequest(7, 0, True).dataTosend())
00034                 self._haveRightToPublish = True
00035 
00036             elif self._haveRightToPublish and subCheck == 'None':
00037                 self._output.write(PublishRequest(7, 0, False).dataTosend())
00038                 self._haveRightToPublish = False
00039         except: pass


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