Skip to content
Snippets Groups Projects
Commit 8cae2c2a authored by POLITO Guillermo Andres's avatar POLITO Guillermo Andres
Browse files

Moved Neuron events close to Neuron

parent 42f08b09
No related branches found
No related tags found
No related merge requests found
Showing
with 28 additions and 76 deletions
......@@ -9,9 +9,8 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntity.AskReference
import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.{Done, SynchronizedMessage}
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.WrapMessage
import fr.univ_lille.cristal.emeraude.n2s3.core.event.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
import fr.univ_lille.cristal.emeraude.n2s3.support.event.{Observable, ObservableMessage}
import fr.univ_lille.cristal.emeraude.n2s3.support.event.{Event, EventResponse, Observable, ObservableMessage}
import scala.collection.mutable
import scala.language.postfixOps
......@@ -162,6 +161,13 @@ object Neuron {
throw new RuntimeException("can't send message with past timestamp")
}
}
/********************************************************************************************************************
* Events
******************************************************************************************************************/
object NeuronFireEvent extends Event[NeuronFireResponse]
case class NeuronFireResponse(timestamp : Timestamp, source : NetworkEntityPath) extends EventResponse
}
trait NeuronModel {
......
package fr.univ_lille.cristal.emeraude.n2s3.core.actors
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.SynapticWeightFloat
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
......
package fr.univ_lille.cristal.emeraude.n2s3.core.event
import fr.univ_lille.cristal.emeraude.n2s3.support.event.Event
/**
* Created by guille on 10/14/16.
*/
object NeuronFireEvent extends Event[NeuronFireResponse]
\ No newline at end of file
package fr.univ_lille.cristal.emeraude.n2s3.core.event
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntityPath
import fr.univ_lille.cristal.emeraude.n2s3.support.event.EventResponse
/********************************************************************************************************
* Event triggered when a neuron fire
*******************************************************************************************************/
case class NeuronFireResponse(timestamp : Timestamp, source : NetworkEntityPath) extends EventResponse
\ No newline at end of file
package fr.univ_lille.cristal.emeraude.n2s3.core.event
import fr.univ_lille.cristal.emeraude.n2s3.support.event.{Event, EventTriggered}
/***************************************************************************************************
* Event triggered when update arise in neuron
**************************************************************************************************/
abstract class NeuronUpdateEvent extends Event[EventTriggered.type]
\ No newline at end of file
package fr.univ_lille.cristal.emeraude.n2s3.core.event
import fr.univ_lille.cristal.emeraude.n2s3.support.event.{Event, EventTriggered}
/***************************************************************************************************
* Event triggered when update arise in synapse
**************************************************************************************************/
abstract class SynapseUpdateEvent(val connectionId : Int) extends Event[EventTriggered.type]
\ No newline at end of file
......@@ -8,9 +8,9 @@ import java.io.{File, PrintWriter}
import akka.actor.Actor
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.event._
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
import fr.univ_lille.cristal.emeraude.n2s3.support.event.{Subscribe, Unsubscribe}
......
package fr.univ_lille.cristal.emeraude.n2s3.features.learning
import akka.actor.Actor
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.WrapMessage
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
import fr.univ_lille.cristal.emeraude.n2s3.support.event.Subscribe
......
......@@ -6,10 +6,10 @@ import java.nio.file.Paths
import akka.actor.Actor
import akka.util.Timeout
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitTime._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.features.logging.graph.{InputOutputGraph, NeuronsGraph, ValuesGraph}
import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.NeuronPotentialResponse
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, PropsBuilder, SinglePropsBuilder}
......@@ -124,7 +124,7 @@ class NeuronsPotentialsLogGraph(step: Int = 50, unit: TimeUnitType = MilliSecond
val graph = new ValuesGraph
var lastT = 0L
def receive = {
case NeuronPotentialResponse(timestamp, source, value) => {
case NeuronPotentialResponse(timestamp, source, value) =>
if (timestamp - lastT > step) {
graph.refreshSerie(source.path.name, convert(unit, Time(timestamp)), value)
if (!(graph isRunning()))
......@@ -133,4 +133,3 @@ class NeuronsPotentialsLogGraph(step: Int = 50, unit: TimeUnitType = MilliSecond
}
}
}
}
......@@ -3,10 +3,10 @@ package fr.univ_lille.cristal.emeraude.n2s3.features.logging
import akka.actor.{Actor, Props}
import akka.pattern.ask
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Config
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.N2S3
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.LocalActorDeploymentStrategy
import fr.univ_lille.cristal.emeraude.n2s3.support.event.Subscribe
......
......@@ -2,18 +2,16 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.bio
import fr.univ_lille.cristal.emeraude.n2s3.core
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.features.learning.{LTDUntil, LTPUntil}
import fr.univ_lille.cristal.emeraude.n2s3.models.qbg._
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
import scala.collection.mutable
import scala.math._
/**
......
......@@ -2,11 +2,10 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.bio
import fr.univ_lille.cristal.emeraude.n2s3.core
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronMessage}
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronFireEvent, NeuronFireResponse, NeuronMessage}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdFloat, SynapticWeightFloat}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
......
......@@ -2,11 +2,10 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.bio
import fr.univ_lille.cristal.emeraude.n2s3.core
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdFloat, MembraneThresholdType, MembraneThresholdTypeEnum, SynapticWeightFloat}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.models.qbg._
......
package fr.univ_lille.cristal.emeraude.n2s3.models.integrate_and_fire
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
/**
......
......@@ -6,10 +6,9 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.izhikevich
import fr.univ_lille.cristal.emeraude.n2s3.core
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.SynapticWeightFloat
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.{BackwardSpike, QBGNeuronConnection}
......
......@@ -5,11 +5,10 @@
package fr.univ_lille.cristal.emeraude.n2s3.models.qbg
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{NetworkEntityActor, ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdTypeEnum, _}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
......
......@@ -6,27 +6,17 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.ternary_synapse
import fr.univ_lille.cristal.emeraude.n2s3.core
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.Inhibition
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds, NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.WeightedSynapse
import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.{FloatSynapse, WeightedSynapse}
import fr.univ_lille.cristal.emeraude.n2s3.features.learning.{LTDUntil, LTPUntil}
import fr.univ_lille.cristal.emeraude.n2s3.features.logging.STDPImageGenerator
import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.{NeuronPotentialEvent, NeuronPotentialResponse, QBGParameters}
import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
import squants.electro.ElectricPotential
import squants.electro.ElectricPotentialConversions.ElectricPotentialConversions
import scala.math._
import scala.util.Random
object Neuron extends NeuronModel {
override def createNeuron(): Neuron = new Neuron()
......
......@@ -3,11 +3,11 @@ package fr.univ_lille.cristal.emeraude.n2s3.apps
import akka.actor.Props
import akka.pattern.ask
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Config
import fr.univ_lille.cristal.emeraude.n2s3.core.event.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.connection.types.FullConnection
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.{InputOutputGraphNetworkObserver, N2S3}
......
......@@ -5,10 +5,10 @@ import java.io.{File, PrintWriter}
import akka.actor.Props
import akka.pattern.ask
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, ShapelessSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdFloat, MembraneThresholdType, MembraneThresholdTypeEnum}
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.N2S3
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.connection.types.FullConnection
......
......@@ -5,11 +5,11 @@ import java.io.{File, PrintWriter}
import akka.actor.Props
import akka.pattern.ask
import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.Done
import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
import fr.univ_lille.cristal.emeraude.n2s3.core._
import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, ShapelessSpike}
import fr.univ_lille.cristal.emeraude.n2s3.core.event.NeuronFireEvent
import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.N2S3
import fr.univ_lille.cristal.emeraude.n2s3.features.builder.connection.types.RandomConnection
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment