MechanismStandard

classes
   action         in             panel          
   count          name           save           
   get            out            set            

SYNTAX

ms = new MechanismStandard("name")
ms = new MechanismStandard("name", vartype)

DESCRIPTION

With no vartype or vartype = 1, this provides storage for parameter values of a membrane mechanism or point process. This class is useful in maintaining a default set of parameters and can be used to specify values for a set of sections.

name is a density mechanism such as hh or a point process such as VClamp. A MechanismStandard instance, when created, contains default values for all parameters associated with the mechanism.

In combination with the MechanismType class it is possible to create generic graphical interface widgets that are independent of the particular mechanism and parameter names.

If vartype = 1, 2, or 3, the storage is for PARAMETER, ASSIGNED, or STATE variables respectively. If vartype = 0, the storage is for all three types.

If vartype = -1, the count and names (and array size) of the GLOBAL variables are accessible, but any other method will generate an error message.

EXAMPLES

execute following example
objref ms1, ms2
ms1 = new MechanismStandard("hh")
ms2 = new MechanismStandard("AlphaSynapse")
ms2.set("gmax", .3)
ms1.panel()
ms2.panel()

The following example prints all the names associated with POINT_PROCESS and SUFFIX mechanisms. execute following example

create soma
access soma

objref ms, mt
strdef s, msname
proc pname() {local i, j, k
	for i=-1,3 {
		ms = new MechanismStandard($s1, i)
		print "\n", $s1, "  vartype=", i
		for j=0, ms.count()-1 {
			k = ms.name(s, j)
			print j, s, " size=", k
		}
	}
}

proc ptype() {local i, j
	for i=0,1 {
		mt = new MechanismType(i)
		for j=0, mt.count-1 {
			mt.select(j)
			mt.selected(msname)
print "\n\n", msname, " mechanismtype=", j
			pname(msname)
		}
	}
}

ptype()

SEE ALSO

MechanismType


panel

MechanismStandard

SYNTAX

ms.panel()
ms.panel("string")

DESCRIPTION

Popup a panel of parameters for this mechanism. It's a good idea to set the default values before generating the panel.

With no argument the first item in the panel will be the name of the mechanism. Otherwise the string is used as the first item label.

SEE ALSO

nrnglobalmechmenu , nrnmechmenu , nrnpointmenu


action

MechanismStandard

SYNTAX

ms.action("statement")

DESCRIPTION

action to be executed when any variable is changed in the panel. The hoc variable hoc_ac_ is set to the index of the variable (0 to count-1).

EXAMPLES

execute following example
create soma, axon, dend[3]
forsec "a" insert hh
forsec "d" insert pas
xpanel("Updated when MechanismStandard is changed")
xvalue("dend[0].g_pas")
xvalue("dend[1].g_pas")
xvalue("dend[2].g_pas")
xpanel()
objref ms
ms = new MechanismStandard("pas")
ms.action("change_pas()")
ms.panel()

proc change_pas() {
	forall if(ismembrane("pas")) {
		ms.out()
	}
}


in

MechanismStandard

SYNTAX

ms.in()
ms.in(x)
ms.in(pointprocess)
ms.in(mechanismstandard)

DESCRIPTION

copies parameter values into this mechanism standard from ...
ms.in()
the mechanism located in first segment of the currently accessed section.
ms.in(x)
the mechanism located in the segment containing x of the currently accessed section. (Note that x=0 and 1 are considered to lie in the 0+ and 1- segments respectively so a proper iteration uses for(x, 0). See for .
ms.in(pointprocess)
the point process object
ms.in(mechanismstandard)
another mechanism standard
If the source is not the same type as the standard then nothing happens.


out

MechanismStandard

SYNTAX

ms.out()
ms.out(x)
ms.out(pointprocess)
ms.out(mechanismstandard)

DESCRIPTION

copies parameter values from this mechanism standard to ...
ms.out()
the mechanism located in the currently accessed section (all segments).
ms.out(x)
the mechanism located in the currently accessed section in the segment containing x.(Note that x=0 and 1 are considered to lie in the 0+ and 1- segments respectively)
ms.out(pointprocess)
the point process argument
ms.out(mechanismstandard)
another mechanism standard
If the target is not the same type as the standard then nothing happens.


set

MechanismStandard

SYNTAX

ms.set("varname", val [, arrayindex])

DESCRIPTION

sets the parameter in the standard to val. If the variable is an array, then the optional index can be specified.


get

MechanismStandard

SYNTAX

val = ms.get("varname" [, arrayindex])

DESCRIPTION

returns the value of the parameter. If the variable is acutually a POINTER and it is nil, then return -1e300.


save

MechanismStandard

SYNTAX

.save("name")

DESCRIPTION

For saving the state of a MechanismStandard to a session file. The name will be the objectvar that the instance gets assigned to when the session file is read. See pointman.hoc for an example of usage.


count

MechanismStandard

SYNTAX

cnt = ms.count()

DESCRIPTION

Returns the number of parameter names of the mechanism represented by the MechanismStandard.


name

MechanismStandard

SYNTAX

ms.name(strdef)
size = ms.name(strdef, i)

DESCRIPTION

The single arg form assigns the name of the mechanism to the strdef variable.

When the i parameter is present (i ranges from 0 to ms.count()-1) the strdef parameter gets assigned the ith name of the mechanism represented by the MechanismStandard. In addition the return value is the array size of that parameter (1 for a scalar).


neuron/neuron/classes/mechstan.hel : May 13 2012