Revision 2126781b client/python/hlrc_client/MiddlewareROS.py

View differences:

client/python/hlrc_client/MiddlewareROS.py
32 32
import rospy
33 33
import actionlib
34 34
from hlrc_server.msg import *
35
from actionlib_msgs.msg import GoalStatus
35 36

  
36 37
class MiddlewareROS(Middleware):
37 38
    #default timeout to wait in case of blocking calls
......
113 114
            client = self.current_emotion_client
114 115

  
115 116
        #send the goal to the server
116
        client.send_goal(goal)
117

  
118
        #wait for the server to finish
119 117
        if (blocking):
120
            timed_out = client.wait_for_result(rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
121
            if (timed_out):
122
                self.logger.error("%s timed out waiting for result" % (sys._getframe().f_code.co_name))
118
            #send and wait:
119
            state = client.send_goal_and_wait(goal, execute_timeout = rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
120
            if (state != GoalStatus.SUCCEEDED):
121
                self.logger.error("%s timed out waiting for result or soemthing else went wrong" % (sys._getframe().f_code.co_name))
122
        else:
123
            #non blocking, fire & forget
124
            client.send_goal(goal)
125

  
126
        self.logger.debug("emotion rpc done")
123 127

  
124 128
    def publish_default_emotion(self, emotion, blocking):
125 129
        self.publish_emotion(RobotEmotion.TYPE_DEFAULT, emotion, blocking)
......
142 146
        goal.scale = animation.scale
143 147

  
144 148
        #send the goal to the server
145
        self.animation_client.send_goal(goal)
146

  
147
        #wait for the server to finish
148 149
        if (blocking):
149
            timed_out = self.animation_client.wait_for_result(rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
150
            if (timed_out):
151
                self.logger.error("%s timed out waiting for result" % (sys._getframe().f_code.co_name))
150
            #send and wait:
151
            state = self.animation_client.send_goal_and_wait(goal, execute_timeout = rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
152
            if (state != GoalStatus.SUCCEEDED):
153
                self.logger.error("%s timed out waiting for result or soemthing else went wrong" % (sys._getframe().f_code.co_name))
154
        else:
155
            #non blocking, fire & forget
156
            self.animation_client.send_goal(goal)
152 157

  
153 158
        self.logger.debug("animation rpc done")
154 159

  
......
177 182
        goal.gaze_timestamp = rospy.Time.from_sec(gaze.timestamp)
178 183

  
179 184
        #send the goal to the server
180
        self.gazetarget_client.send_goal(goal)
181

  
182
        #wait for the server to finish
183 185
        if (blocking):
184
            timed_out = self.gazetarget_client.wait_for_result(rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
185
            if (timed_out):
186
                self.logger.error("%s timed out waiting for result" % (sys._getframe().f_code.co_name))
187

  
186
            #send and wait:
187
            state = self.gazetarget_client.send_goal_and_wait(goal, execute_timeout = rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
188
            if (state != GoalStatus.SUCCEEDED):
189
                self.logger.error("%s timed out waiting for result or soemthing else went wrong" % (sys._getframe().f_code.co_name))
190
        else:
191
            #non blocking, fire & forget
192
            self.gazetarget_client.send_goal(goal)
188 193

  
189 194
        self.logger.debug("gaze rpc done")
190 195

  
......
205 210
        goal.position_right = mouth.position_right
206 211

  
207 212
        #send the goal to the server
208
        self.mouthtarget_client.send_goal(goal)
209

  
210
        #wait for the server to finish
211 213
        if (blocking):
212
            timed_out = self.mouthtarget_client.wait_for_result(rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
213
            if (timed_out):
214
                self.logger.error("%s timed out waiting for result" % (sys._getframe().f_code.co_name))
214
            #send and wait:
215
            state = self.mouthtarget_client.send_goal_and_wait(goal, execute_timeout = rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
216
            if (state != GoalStatus.SUCCEEDED):
217
                self.logger.error("%s timed out waiting for result or soemthing else went wrong" % (sys._getframe().f_code.co_name))
218
        else:
219
            #non blocking, fire & forget
220
            self.mouthtarget_client.send_goal(goal)
215 221

  
216 222
        self.logger.debug("mouth rpc done")
217 223

  
......
226 232
        goal = speechGoal(text=text_)
227 233

  
228 234
        #send the goal to the server
229
        self.speech_client.send_goal(goal)
230

  
231
        #wait for the server to finish
232 235
        if (blocking):
233
            timed_out = self.speech_client.wait_for_result(rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
234
            if (timed_out):
235
                self.logger.error("%s timed out waiting for result" % (sys._getframe().f_code.co_name))
236
            #send and wait:
237
            state = self.speech_client.send_goal_and_wait(goal, execute_timeout = rospy.Duration.from_sec(MiddlewareROS.ROS_ACTION_CALL_TIMEOUT))
238
            if (state != GoalStatus.SUCCEEDED):
239
                self.logger.error("%s timed out waiting for result or soemthing else went wrong" % (sys._getframe().f_code.co_name))
240
        else:
241
            #non blocking, fire & forget
242
            self.speech_client.send_goal(goal)
236 243

  
237 244
        self.logger.debug("speech rpc done")
238 245

  

Also available in: Unified diff