//constructors public Task_CellBody(int id, TimeSpan runLength, CellBody body, DateTime start) //tested { Console.WriteLine("Task_CellBody " + id + " is created."); this.id = id; this.runLength = runLength; this.body = body; this.start = start; }
//constructors public Neuron(int cellBodyDecayFrequency, int cellBodyRestoreIncrement, TimeSpan neuronSecondaryMessengerWindow, int neuronFrequencyTrigger, int numDendritesToAddInGrowthEvent, int[] growthEventDendriteTypesList, int dendriteDecayFrequency, int dendriteProductionFrequency, int dendriteRestoreIncrement, int dendriteNumSynapsesToAddInGrowthEvent, TimeSpan dendriteSecondaryMessengerWindow, int dendriteSecondaryMessengerFrequencyTrigger, int numStartingSynapsesPerDendrite, int dendriteSignificantVoltageChange, int numStartingDendrites, int[] startingDendriteTypesList) { nextDendriteId = 0; state = 0; dendrites = new ConcurrentDictionary <int, Dendrite>(); body = new CellBody(DateTime.Now, cellBodyDecayFrequency, cellBodyRestoreIncrement); messenger = new SecondaryMessenger(DateTime.Now, neuronFrequencyTrigger, neuronSecondaryMessengerWindow); this.numDendritesToAddInGrowthEvent = numDendritesToAddInGrowthEvent; this.growthEventDendriteTypesList = growthEventDendriteTypesList; //individual dendrite characteristics this.d_DecayFrequency = dendriteDecayFrequency; this.d_RestoreIncrement = dendriteRestoreIncrement; this.d_ProductionFrequency = dendriteProductionFrequency; this.d_NumSynapsesToAddInGrowthEvent = dendriteNumSynapsesToAddInGrowthEvent; this.d_SecondaryMessengerWindow = dendriteSecondaryMessengerWindow; this.d_SecondaryMessengerFrequencyTrigger = dendriteSecondaryMessengerFrequencyTrigger; this.d_NumStartingSynapsesPerDendrite = numStartingSynapsesPerDendrite; this.d_SignificantVoltageChange = dendriteSignificantVoltageChange; //initialize dendrites AddDendrites(numStartingDendrites, startingDendriteTypesList); //add listener for ActionPotential event body.ActionPotentialEvent += ReceiveActionPotentialEvent; }