NEURON
nrnste.h
Go to the documentation of this file.
1
#ifndef nrnste_h
2
#define nrnste_h
3
//StateTransitionEvent is a finite state machine in which a transtion occurs
4
// when the transition condition is true. For speed the transition condition
5
// is of the form *var1 > *var2 and allows second order interpolation.
6
// Transition conditions are checked only if the source state is the
7
// current state.
8
9
class
HocCommand
;
10
class
StateTransitionEvent
;
11
class
STECondition
;
12
13
class
STETransition
{
14
public
:
15
STETransition
();
16
virtual
~STETransition
();
17
void
event
();
// from STECondition::deliver
18
virtual
double
value
() {
return
*
var1_
- *
var2_
;}
19
void
activate
();
// add ste_ to watch list
20
void
deactivate
();
// remove ste_ from watch list
21
22
double
*
var1_
;
23
double
*
var2_
;
24
HocCommand
*
hc_
;
25
StateTransitionEvent
*
ste_
;
26
STECondition
*
stec_
;
27
int
dest_
;
28
bool
var1_is_time_
;
29
};
30
31
class
STEState
{
32
public
:
33
STEState
();
34
virtual
~
STEState
();
35
STETransition
* add_transition();
36
int
ntrans_
;
37
STETransition
*
transitions_
;
38
};
39
40
class
StateTransitionEvent
{
41
public
:
42
StateTransitionEvent
(
int
nstate
,
Point_process
*);
43
virtual
~
StateTransitionEvent
();
44
void
transition(
int
src,
int
dest,
double
* var1,
double
* var2,
HocCommand
*);
45
void
state(
int
i
);
// set current state -- update watch list.
46
int
state
(){
return
istate_;}
47
int
nstate
() {
return
nstate_
;}
48
void
activate
();
49
void
deactivate
();
50
51
int
nstate_
;
52
int
istate_
;
53
STEState
*
states_
;
54
Point_process
*
pnt_
;
55
int
activated_
;
56
};
57
58
59
#endif
STETransition
Definition:
nrnste.h:13
StateTransitionEvent::state
int state()
Definition:
nrnste.h:46
STETransition::STETransition
STETransition()
Definition:
nrnste.cpp:146
STETransition::value
virtual double value()
Definition:
nrnste.h:18
StateTransitionEvent::activated_
int activated_
Definition:
nrnste.h:55
STETransition::var1_is_time_
bool var1_is_time_
Definition:
nrnste.h:28
STEState::transitions_
STETransition * transitions_
Definition:
nrnste.h:37
STETransition::activate
void activate()
Definition:
netcvode.cpp:5390
STETransition::ste_
StateTransitionEvent * ste_
Definition:
nrnste.h:25
STETransition::stec_
STECondition * stec_
Definition:
nrnste.h:26
StateTransitionEvent::pnt_
Point_process * pnt_
Definition:
nrnste.h:54
StateTransitionEvent::istate_
int istate_
Definition:
nrnste.h:52
STECondition
Definition:
netcon.h:220
STETransition::var1_
double * var1_
Definition:
nrnste.h:22
STEState::ntrans_
int ntrans_
Definition:
nrnste.h:36
Point_process
Definition:
section.h:261
nstate
static int nstate
Definition:
simultan.cpp:192
nstate_
static int nstate_[MAXKINBLK]
Definition:
kinetic.cpp:107
STETransition::~STETransition
virtual ~STETransition()
Definition:
nrnste.cpp:153
STETransition::dest_
int dest_
Definition:
nrnste.h:27
StateTransitionEvent::nstate
int nstate()
Definition:
nrnste.h:47
StateTransitionEvent::nstate_
int nstate_
Definition:
nrnste.h:51
StateTransitionEvent
Definition:
nrnste.h:40
STEState
Definition:
nrnste.h:31
STETransition::deactivate
void deactivate()
Definition:
netcvode.cpp:5401
i
#define i
Definition:
md1redef.h:12
STETransition::var2_
double * var2_
Definition:
nrnste.h:23
HocCommand
Definition:
objcmd.h:15
STETransition::event
void event()
Definition:
nrnste.cpp:162
STETransition::hc_
HocCommand * hc_
Definition:
nrnste.h:24
StateTransitionEvent::states_
STEState * states_
Definition:
nrnste.h:53
src
nrniv
nrnste.h