Go to the documentation of this file.00001 from BAL.Header.Response.ParamBuildResponse import EngineCL
00002
00003 __author__ = 'tom1231'
00004 from rospy import Service
00005 from threading import Thread
00006 from ric_board.msg import DevStatus, MonitorDevs
00007 from ric_board.srv._get_devs import get_devs
00008 from ric_board.srv._setParam import setParam
00009
00010
00011 BUF_SIZE = 1024
00012 PORT = 1900
00013
00014 class Server:
00015 def __init__(self, devs, params):
00016 statusDevs = []
00017 self._devs = devs
00018
00019 for dev in devs['motorsCl']:
00020 motor = DevStatus()
00021 motor.devName = dev.getName()
00022 motor.type = EngineCL
00023 motor.values = [dev.getKp(), dev.getKi(), dev.getKd()]
00024 statusDevs.append(motor)
00025
00026 self._monitor = MonitorDevs()
00027 self._monitor.devs = statusDevs
00028 Service('/devsOnline', get_devs, self.getDevsOnline)
00029 Service('/devsSetParam', setParam, self.setParam)
00030
00031 def getDevsOnline(self, req):
00032 devs = MonitorDevs()
00033
00034 if req.req:
00035 devs = self._monitor
00036 index = 0
00037 for dev in devs.devs:
00038 motor = self._devs['motorsCl'][index]
00039 dev.values = [motor.getKp(), motor.getKi(), motor.getKd()]
00040 index += 1
00041
00042 return {'devs': devs}
00043
00044 def setParam(self, request):
00045 for motor in self._devs['motorsCl']:
00046 if request.dev.devName == motor.getName():
00047 motor.sendSetParam(request.dev.values)
00048 break
00049 return {'ack': True}
00050