コード例 #1
0
    def get_robot_data(robot_id):
        robot_smart_wheel_count = config.get_robot_smart_wheel_count(robot_id)

        while True:
            data_msg = zyre_communicator.get_query_data(
                robot_data_query_msgs[robot_id])
            variables, data = DataUtils.parse_bb_latest_data_msg(data_msg)

            short_vel_vars = [
                cmd_vel_var_name_mapping[x] for x in cmd_vel_vars
            ]
            wheel_data = []
            for i in range(robot_smart_wheel_count):
                wheel_data.append({})
                for var in wheel_vars:
                    expanded_var_name = var.replace('*', str(i))
                    wheel_data[i][expanded_var_name] = None

            vel_data = list()
            if variables:
                try:
                    for i in range(robot_smart_wheel_count):
                        for var in wheel_vars:
                            expanded_var_name = var.replace('*', str(i))
                            wheel_data[i][expanded_var_name] = data[
                                variables.index(expanded_var_name)]
                    socketio.emit('wheel_data',
                                  json.dumps({
                                      'variables':
                                      robot_wheel_var_name_mapping[robot_id],
                                      'data':
                                      wheel_data
                                  }),
                                  namespace='/real_time_monitoring')
                except ValueError as exc:
                    print('[real_time_monitoring] Smart wheel data error')
                    print(str(exc))

                try:
                    vel_data = [data[variables.index(x)] for x in cmd_vel_vars]
                    socketio.emit('cmd_vel_data',
                                  json.dumps({
                                      'variables': short_vel_vars,
                                      'data': vel_data
                                  }),
                                  namespace='/real_time_monitoring')
                except ValueError as exc:
                    print('[real_time_monitoring] Velocity data error')
                    print(str(exc))

            socketio.sleep(1)