def handle_wait_event(self, goal):
d = datetime.datetime.fromtimestamp(rospy.get_time())
query_result_count = 0;
while query_result_count == 0 and self.wait_for_event_server.is_active() == True:
if self.wait_for_event_server.is_preempt_requested():
result = WaitForEventResult()
result.result = False
result.error_msg = 'The client cancel goal.'
self.wait_for_event_server.set_preempted(result)
return result
for i in range(len(goal.event_name)):
memory_name = goal.event_name[i]
memory_query = json.loads(goal.query[i])
memory_query['time'] = {"$gte": d}
query_result = self.collector[memory_name].find(memory_query)
query_result_count += query_result.count()
rospy.sleep(0.2)
result = WaitEventResult()
result.result = True
self.wait_for_event_server.set_succeeded(result)
评论列表
文章目录