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)