Source code for python_models8.neuron.neuron_models.my_neuron_model

from spinn_utilities.overrides import overrides
from spinn_utilities.ranged import RangeDictionary
from spinn_front_end_common.interface.ds import DataType
from spynnaker.pyNN.models.neuron.implementations import (
    AbstractStandardNeuronComponent)
from spynnaker.pyNN.utilities.struct import Struct

# TODO: create constants to match the parameter names
I_OFFSET = "i_offset"
MY_NEURON_PARAMETER = "my_neuron_parameter"
V = "v"


[docs] class MyNeuronModel(AbstractStandardNeuronComponent): def __init__( self, # TODO: update the parameters and state variables i_offset, my_neuron_parameter, v): # TODO: Update the data types - this must match the structs exactly super().__init__( [Struct([ (DataType.S1615, V), (DataType.S1615, I_OFFSET), (DataType.S1615, MY_NEURON_PARAMETER)])], {I_OFFSET: "nA", MY_NEURON_PARAMETER: "mV", V: "mV"}) # TODO: Store any parameters and state variables self._i_offset = i_offset self._my_neuron_parameter = my_neuron_parameter self._v = v # TODO: Add getters and setters for the parameters @property def i_offset(self): return self._i_offset @i_offset.setter def i_offset(self, i_offset): self._i_offset = i_offset @property def my_neuron_parameter(self): return self._my_neuron_parameter @my_neuron_parameter.setter def my_neuron_parameter(self, my_neuron_parameter): self._my_neuron_parameter = my_neuron_parameter @property def v(self): return self._v @v.setter def v(self, v): self._v = v
[docs] @overrides(AbstractStandardNeuronComponent.add_parameters) def add_parameters(self, parameters: RangeDictionary[float]) -> None: # TODO: Add initial values of the parameters that the user can change parameters[I_OFFSET] = self._i_offset parameters[MY_NEURON_PARAMETER] = self._my_neuron_parameter
[docs] @overrides(AbstractStandardNeuronComponent.add_state_variables) def add_state_variables( self, state_variables: RangeDictionary[float]) -> None: # TODO: Add initial values of the state variables that the user can # change state_variables[V] = self._v