Source code for spinn_front_end_common.interface.interface_functions.tags_loader
# Copyright (c) 2015 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from spinn_utilities.progress_bar import ProgressBar
from spinnman.constants import MAX_TAG_ID
from spinn_front_end_common.data import FecDataView
[docs]def tags_loader():
"""
Loads tags onto the machine.
"""
# clear all the tags from the Ethernet connection, as nothing should
# be allowed to use it (no two apps should use the same Ethernet
# connection at the same time)
transceiver = FecDataView.get_transceiver()
progress = ProgressBar(MAX_TAG_ID, "Clearing tags")
for tag_id in progress.over(range(MAX_TAG_ID)):
transceiver.clear_ip_tag(tag_id)
# Use tags object to supply tag info if it is supplied
tags = FecDataView.get_tags()
iptags = list(tags.ip_tags)
reverse_iptags = list(tags.reverse_ip_tags)
# Load the IP tags and the Reverse IP tags
progress = ProgressBar(
len(iptags) + len(reverse_iptags), "Loading Tags")
for ip_tag in progress.over(iptags, False):
transceiver.set_ip_tag(ip_tag)
for reverse_ip_tag in progress.over(reverse_iptags, False):
transceiver.set_reverse_ip_tag(reverse_ip_tag)
progress.end()