/* * spike_exporter.sli * * This file is part of NEST. * * Copyright (C) 2004 The NEST Initiative * * NEST is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * NEST is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NEST. If not, see <http://www.gnu.org/licenses/>. * */ % spike exporter % send spikes generated by a group of spike_generators/parrot_neurons % to a MUSIC port % author: Moritz Helias % data: 2008-10-16 21.0 /T Set % total simulation time [0] << /resolution 0.1 >> SetStatus 10 /N Set % number of spike generators % create a subnet containing N parrot_neurons % these are the dummy population to send data to the % music port /subnet Create /SN Set SN ChangeSubnet /parrot_neuron N Create pop [0] ChangeSubnet SN GetNodes /parrots Set % create N spike generators each to feed one of the N parrots /subnet Create /SNG Set SNG ChangeSubnet /spike_generator N Create pop [0] ChangeSubnet SNG GetNodes /generators Set % let the spike generator i % produce a spike at 1.0 + 2.0*i ms % connect it to parrot neuron i generators { /i Set /sg Set sg << /spike_times [0.5 i 2.0 mul add] >> SetStatus sg parrots i get Connect } forallindexed % create a music_event_out_proxy % for the port named "spikes_out" /music_event_out_proxy Create /mo Set mo << /port_name (spikes_out) >> SetStatus % connect the parrot neuron i % to the music_event_out_proxy on receiver port (channel) i parrots { /i Set /src Set src GetStatus /local get { src mo << /receptor_type i >> Connect } if } forallindexed % print the indexmap % mapping from local index to % global MUSIC index for each process cout (rank=) <- Rank <- ( ) <- pop mo GetStatus /index_map get == % simulate T Simulate