A lot of fixes. Changed name
to key
in value annotations
This commit is contained in:
parent
db378c4158
commit
caf875da84
@ -53,8 +53,8 @@ import java.util.*
|
||||
RoleDef(name = Roles.STORAGE_ROLE),
|
||||
RoleDef(name = Roles.VIEW_ROLE)
|
||||
)
|
||||
@ValueDef(name = "port", def = "virtual", info = "The name of the port for this PKT8")
|
||||
@StateDef(value = ValueDef(name = "storing", info = "Define if this device is currently writes to storage"), writable = true)
|
||||
@ValueDef(key = "port", def = "virtual", info = "The name of the port for this PKT8")
|
||||
@StateDef(value = ValueDef(key = "storing", info = "Define if this device is currently writes to storage"), writable = true)
|
||||
@DeviceView(PKT8Display::class)
|
||||
class PKT8Device(context: Context, meta: Meta) : PortSensor(context, meta) {
|
||||
/**
|
||||
|
@ -21,7 +21,7 @@ import java.util.*
|
||||
import java.util.stream.Stream
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
@StateDef(value = ValueDef(name = "address", type = arrayOf(ValueType.NUMBER), info = "Current active magnet"))
|
||||
@StateDef(value = ValueDef(key = "address", type = arrayOf(ValueType.NUMBER), info = "Current active magnet"))
|
||||
@DeviceView(LambdaHubDisplay::class)
|
||||
class LambdaHub(context: Context, meta: Meta) : DeviceHub, AbstractDevice(context, meta) {
|
||||
|
||||
|
@ -42,16 +42,16 @@ import java.util.concurrent.Future
|
||||
*/
|
||||
|
||||
@StateDefs(
|
||||
StateDef(value = ValueDef(name = "current", type = arrayOf(NUMBER), def = "-1", info = "Current current")),
|
||||
StateDef(value = ValueDef(name = "voltage", type = arrayOf(NUMBER), def = "-1", info = "Current voltage")),
|
||||
StateDef(value = ValueDef(name = "outCurrent", type = arrayOf(NUMBER), def = "0", info = "Target current"), writable = true),
|
||||
StateDef(value = ValueDef(name = "outVoltage", type = arrayOf(NUMBER), def = "5.0", info = "Target voltage"), writable = true),
|
||||
StateDef(value = ValueDef(name = "output", type = arrayOf(BOOLEAN), def = "false", info = "Weather output on or off"), writable = true),
|
||||
StateDef(value = ValueDef(name = "lastUpdate", type = arrayOf(TIME), def = "0", info = "Time of the last update"), writable = true),
|
||||
StateDef(value = ValueDef(name = "updating", type = arrayOf(BOOLEAN), def = "false", info = "Shows if current ramping in progress"), writable = true),
|
||||
StateDef(value = ValueDef(name = "monitoring", type = arrayOf(BOOLEAN), def = "false", info = "Shows if monitoring task is running"), writable = true),
|
||||
StateDef(value = ValueDef(name = "speed", type = arrayOf(NUMBER), def = "5", info = "Current change speed in Ampere per minute"), writable = true),
|
||||
StateDef(ValueDef(name = "status", type = [STRING], def = "INIT", enumeration = LambdaMagnet.MagnetStatus::class, info = "Current state of magnet operation"))
|
||||
StateDef(value = ValueDef(key = "current", type = arrayOf(NUMBER), def = "-1", info = "Current current")),
|
||||
StateDef(value = ValueDef(key = "voltage", type = arrayOf(NUMBER), def = "-1", info = "Current voltage")),
|
||||
StateDef(value = ValueDef(key = "outCurrent", type = arrayOf(NUMBER), def = "0", info = "Target current"), writable = true),
|
||||
StateDef(value = ValueDef(key = "outVoltage", type = arrayOf(NUMBER), def = "5.0", info = "Target voltage"), writable = true),
|
||||
StateDef(value = ValueDef(key = "output", type = arrayOf(BOOLEAN), def = "false", info = "Weather output on or off"), writable = true),
|
||||
StateDef(value = ValueDef(key = "lastUpdate", type = arrayOf(TIME), def = "0", info = "Time of the last update"), writable = true),
|
||||
StateDef(value = ValueDef(key = "updating", type = arrayOf(BOOLEAN), def = "false", info = "Shows if current ramping in progress"), writable = true),
|
||||
StateDef(value = ValueDef(key = "monitoring", type = arrayOf(BOOLEAN), def = "false", info = "Shows if monitoring task is running"), writable = true),
|
||||
StateDef(value = ValueDef(key = "speed", type = arrayOf(NUMBER), def = "5", info = "Current change speed in Ampere per minute"), writable = true),
|
||||
StateDef(ValueDef(key = "status", type = [STRING], def = "INIT", enumeration = LambdaMagnet.MagnetStatus::class, info = "Current state of magnet operation"))
|
||||
)
|
||||
@DeviceView(MagnetDisplay::class)
|
||||
class LambdaMagnet(private val controller: LambdaPortController, meta: Meta) : AbstractDevice(controller.context, meta) {
|
||||
|
@ -52,13 +52,13 @@ import java.util.*
|
||||
RoleDef(name = Roles.VIEW_ROLE)
|
||||
)
|
||||
@StateDefs(
|
||||
StateDef(value = ValueDef(name = "controlled", info = "Connection with the device itself"), writable = true),
|
||||
StateDef(ValueDef(name = SELECTED_STATE)),
|
||||
StateDef(value = ValueDef(name = "storing", info = "Define if this device is currently writes to storage"), writable = true),
|
||||
StateDef(value = ValueDef(name = "filament", info = "The number of filament in use"), writable = true),
|
||||
StateDef(value = ValueDef(name = "filamentOn", info = "Mass-spectrometer filament on"), writable = true),
|
||||
StateDef(ValueDef(name = "filamentStatus", info = "Filament status")),
|
||||
StateDef(ValueDef(name = "peakJump.zero", type = [ValueType.NUMBER], info = "Peak jump zero reading"))
|
||||
StateDef(value = ValueDef(key = "controlled", info = "Connection with the device itself"), writable = true),
|
||||
StateDef(ValueDef(key = SELECTED_STATE)),
|
||||
StateDef(value = ValueDef(key = "storing", info = "Define if this device is currently writes to storage"), writable = true),
|
||||
StateDef(value = ValueDef(key = "filament", info = "The number of filament in use"), writable = true),
|
||||
StateDef(value = ValueDef(key = "filamentOn", info = "Mass-spectrometer filament on"), writable = true),
|
||||
StateDef(ValueDef(key = "filamentStatus", info = "Filament status")),
|
||||
StateDef(ValueDef(key = "peakJump.zero", type = [ValueType.NUMBER], info = "Peak jump zero reading"))
|
||||
)
|
||||
@DeviceView(MspDisplay::class)
|
||||
class MspDevice(context: Context, meta: Meta) : PortSensor(context, meta) {
|
||||
|
@ -20,9 +20,9 @@ import inr.numass.control.DeviceView
|
||||
/**
|
||||
* @author Alexander Nozik
|
||||
*/
|
||||
@ValueDef(name = "channel")
|
||||
@ValueDef(key = "channel")
|
||||
@DeviceView(VacDisplay::class)
|
||||
@StateDef(value = ValueDef(name = "channel", type = [ValueType.NUMBER], def = "2"), writable = true)
|
||||
@StateDef(value = ValueDef(key = "channel", type = [ValueType.NUMBER], def = "2"), writable = true)
|
||||
class MKSBaratronDevice(context: Context, meta: Meta) : PortSensor(context, meta) {
|
||||
|
||||
var channel by valueState("channel").intDelegate
|
||||
|
@ -26,12 +26,12 @@ import java.util.regex.Pattern
|
||||
* @author Alexander Nozik
|
||||
*/
|
||||
@ValueDefs(
|
||||
ValueDef(name = "address", def = "253"),
|
||||
ValueDef(name = "channel", def = "5"),
|
||||
ValueDef(name = "powerButton", type = arrayOf(BOOLEAN), def = "true")
|
||||
ValueDef(key = "address", def = "253"),
|
||||
ValueDef(key = "channel", def = "5"),
|
||||
ValueDef(key = "powerButton", type = arrayOf(BOOLEAN), def = "true")
|
||||
)
|
||||
@StateDefs(
|
||||
StateDef(value = ValueDef(name = "power", info = "Device powered up"), writable = true)
|
||||
StateDef(value = ValueDef(key = "power", info = "Device powered up"), writable = true)
|
||||
// StateDef(value = ValueDef(name = "channel", info = "Measurement channel", type = arrayOf(NUMBER), def = "5"), writable = true)
|
||||
)
|
||||
@DeviceView(VacDisplay::class)
|
||||
|
@ -23,7 +23,7 @@ import java.util.regex.Pattern
|
||||
/**
|
||||
* @author Alexander Nozik
|
||||
*/
|
||||
@StateDef(value = ValueDef(name = "address", type = [NUMBER], def = "1", info = "A modbus address"), writable = true)
|
||||
@StateDef(value = ValueDef(key = "address", type = [NUMBER], def = "1", info = "A modbus address"), writable = true)
|
||||
class MeradatVacDevice(context: Context, meta: Meta) : PortSensor(context, meta) {
|
||||
|
||||
var address by valueState("address").intDelegate
|
||||
|
@ -42,7 +42,7 @@ import java.util.stream.Stream
|
||||
* @author [Alexander Nozik](mailto:altavir@gmail.com)
|
||||
*/
|
||||
@RoleDef(name = Roles.STORAGE_ROLE, objectType = StorageConnection::class, info = "Storage for acquired points")
|
||||
@StateDef(value = ValueDef(name = "storing", info = "Define if this device is currently writes to storage"), writable = true)
|
||||
@StateDef(value = ValueDef(key = "storing", info = "Define if this device is currently writes to storage"), writable = true)
|
||||
@DeviceView(VacCollectorDisplay::class)
|
||||
class VacCollectorDevice(context: Context, meta: Meta, val sensors: Collection<Sensor>) : Sensor(context, meta), DeviceHub {
|
||||
|
||||
|
@ -45,11 +45,14 @@ import kotlin.streams.toList
|
||||
* An analyzer which uses time information from events
|
||||
* Created by darksnake on 11.07.2017.
|
||||
*/
|
||||
class TimeAnalyzer @JvmOverloads constructor(private val processor: SignalProcessor? = null) : AbstractAnalyzer(processor) {
|
||||
@ValueDefs(
|
||||
ValueDef(key = "separateParallelBlocks", type = [ValueType.BOOLEAN], info = "If true, then parallel blocks will be forced to be evaluated separately")
|
||||
)
|
||||
class TimeAnalyzer(processor: SignalProcessor? = null) : AbstractAnalyzer(processor) {
|
||||
|
||||
override fun analyze(block: NumassBlock, config: Meta): Values {
|
||||
//In case points inside points
|
||||
if (block is ParentBlock && config.getBoolean("separateBlocks", false)) {
|
||||
if (block is ParentBlock && (block.isSequential || config.getBoolean("separateParallelBlocks", false))) {
|
||||
return analyzeParent(block, config)
|
||||
}
|
||||
|
||||
@ -130,9 +133,9 @@ class TimeAnalyzer @JvmOverloads constructor(private val processor: SignalProces
|
||||
}
|
||||
|
||||
@ValueDefs(
|
||||
ValueDef(name = "t0", type = arrayOf(ValueType.NUMBER), info = "Constant t0 cut"),
|
||||
ValueDef(name = "t0.crFraction", type = arrayOf(ValueType.NUMBER), info = "The relative fraction of events that should be removed by time cut"),
|
||||
ValueDef(name = "t0.min", type = arrayOf(ValueType.NUMBER), def = "0", info = "Minimal t0")
|
||||
ValueDef(key = "t0", type = arrayOf(ValueType.NUMBER), info = "Constant t0 cut"),
|
||||
ValueDef(key = "t0.crFraction", type = arrayOf(ValueType.NUMBER), info = "The relative fraction of events that should be removed by time cut"),
|
||||
ValueDef(key = "t0.min", type = arrayOf(ValueType.NUMBER), def = "0", info = "Minimal t0")
|
||||
)
|
||||
private fun getT0(block: NumassBlock, meta: Meta): Int {
|
||||
return if (meta.hasValue("t0")) {
|
||||
@ -168,7 +171,15 @@ class TimeAnalyzer @JvmOverloads constructor(private val processor: SignalProces
|
||||
*/
|
||||
fun getEventsWithDelay(block: NumassBlock, config: Meta): Sequence<Pair<NumassEvent, Long>> {
|
||||
val inverted = config.getBoolean("inverted", true)
|
||||
return super.getEvents(block, config).asSequence().zipWithNext { prev, next ->
|
||||
val events: Stream<NumassEvent> = super.getEvents(block, config).let {
|
||||
if (block is ParentBlock && !block.isSequential) {
|
||||
it.sorted(compareBy { it.timeOffset })
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
|
||||
return events.asSequence().zipWithNext { prev, next ->
|
||||
val delay = Math.max(next.timeOffset - prev.timeOffset, 0)
|
||||
if (inverted) {
|
||||
Pair(next, delay)
|
||||
|
@ -6,6 +6,12 @@ import java.util.stream.Stream
|
||||
|
||||
interface ParentBlock : NumassBlock {
|
||||
val blocks: List<NumassBlock>
|
||||
|
||||
/**
|
||||
* If true, the sub-blocks a considered to be isSequential, if not, the sub-blocks are parallel
|
||||
*/
|
||||
val isSequential: Boolean
|
||||
get() = true
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -107,6 +107,10 @@ interface NumassPoint : Metoid, ParentBlock, Provider {
|
||||
override val frames: Stream<NumassFrame>
|
||||
get() = blocks.stream().flatMap { it.frames }
|
||||
|
||||
|
||||
override val isSequential: Boolean
|
||||
get() = channels.size == 1
|
||||
|
||||
companion object {
|
||||
const val NUMASS_BLOCK_TARGET = "block"
|
||||
const val NUMASS_CHANNEL_TARGET = "channel"
|
||||
|
@ -56,7 +56,6 @@ class ProtoNumassPoint(override val meta: Meta, val protoBuilder: () -> NumassPr
|
||||
super.length
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
fun readFile(path: Path): ProtoNumassPoint {
|
||||
return fromEnvelope(NumassFileEnvelope.open(path, true))
|
||||
@ -102,7 +101,7 @@ class ProtoBlock(val channel: Int, private val block: NumassProto.Point.Channel.
|
||||
override val events: Stream<NumassEvent>
|
||||
get() = if (block.hasEvents()) {
|
||||
val events = block.events
|
||||
if(events.timesCount!= events.amplitudesCount){
|
||||
if (events.timesCount != events.amplitudesCount) {
|
||||
LoggerFactory.getLogger(javaClass).error("The block is broken. Number of times is ${events.timesCount} and number of amplitudes is ${events.amplitudesCount}")
|
||||
}
|
||||
IntStream.range(0, events.timesCount).mapToObj { i -> NumassEvent(events.getAmplitudes(i).toShort(), events.getTimes(i), this) }
|
||||
|
@ -38,7 +38,7 @@ import java.util.stream.StreamSupport;
|
||||
* @author darksnake
|
||||
*/
|
||||
@TypedActionDef(name = "plotFit", info = "Plot fit result", inputType = FitState.class, outputType = FitState.class)
|
||||
@NodeDef(name = "adapter", info = "adapter for DataSet being fitted. By default is taken from model.")
|
||||
@NodeDef(key = "adapter", info = "adapter for DataSet being fitted. By default is taken from model.")
|
||||
public class PlotFitResultAction extends OneToOneAction<FitResult, FitResult> {
|
||||
|
||||
@Override
|
||||
|
@ -19,8 +19,8 @@ import inr.numass.data.api.NumassSet
|
||||
*/
|
||||
@TypedActionDef(name = "numass.analyze", inputType = NumassSet::class, outputType = Table::class)
|
||||
@ValueDefs(
|
||||
ValueDef(name = "window.lo", type = arrayOf(NUMBER, STRING), def = "0", info = "Lower bound for window"),
|
||||
ValueDef(name = "window.up", type = arrayOf(NUMBER, STRING), def = "10000", info = "Upper bound for window")
|
||||
ValueDef(key = "window.lo", type = arrayOf(NUMBER, STRING), def = "0", info = "Lower bound for window"),
|
||||
ValueDef(key = "window.up", type = arrayOf(NUMBER, STRING), def = "10000", info = "Upper bound for window")
|
||||
)
|
||||
class AnalyzeDataAction : OneToOneAction<NumassSet, Table>() {
|
||||
override fun execute(context: Context, name: String, input: NumassSet, inputMeta: Laminate): Table {
|
||||
|
@ -38,7 +38,7 @@ import java.util.*
|
||||
* @author Darksnake
|
||||
*/
|
||||
@TypedActionDef(name = "numass.merge", inputType = Table::class, outputType = Table::class, info = "Merge different numass data files into one.")
|
||||
@NodeDef(name = "grouping", info = "The definition of grouping rule for this merge", from = "method::hep.dataforge.actions.GroupBuilder.byMeta")
|
||||
@NodeDef(key = "grouping", info = "The definition of grouping rule for this merge", from = "method::hep.dataforge.actions.GroupBuilder.byMeta")
|
||||
class MergeDataAction : ManyToOneAction<Table, Table>() {
|
||||
|
||||
private val parnames = arrayOf(NumassPoint.HV_KEY, NumassPoint.LENGTH_KEY, NumassAnalyzer.COUNT_KEY, NumassAnalyzer.COUNT_RATE_KEY, NumassAnalyzer.COUNT_RATE_ERROR_KEY)
|
||||
|
@ -38,7 +38,7 @@ import kotlin.collections.ArrayList
|
||||
* @author Darksnake
|
||||
*/
|
||||
@TypedActionDef(name = "summary", inputType = FitState::class, outputType = Table::class, info = "Generate summary for fit results of different datasets.")
|
||||
@ValueDef(name = "parnames", multiple = true, required = true, info = "List of names of parameters for which summary should be done")
|
||||
@ValueDef(key = "parnames", multiple = true, required = true, info = "List of names of parameters for which summary should be done")
|
||||
object SummaryAction : ManyToOneAction<FitState, Table>() {
|
||||
|
||||
const val SUMMARY_NAME = "sumName"
|
||||
|
@ -22,16 +22,16 @@ import kotlin.streams.asStream
|
||||
* Plot time analysis graphics
|
||||
*/
|
||||
@ValueDefs(
|
||||
ValueDef(name = "normalize", type = arrayOf(ValueType.BOOLEAN), def = "true", info = "Normalize t0 dependencies"),
|
||||
ValueDef(name = "t0", type = arrayOf(ValueType.NUMBER), def = "30e3", info = "The default t0 in nanoseconds"),
|
||||
ValueDef(name = "window.lo", type = arrayOf(ValueType.NUMBER), def = "0", info = "Lower boundary for amplitude window"),
|
||||
ValueDef(name = "window.up", type = arrayOf(ValueType.NUMBER), def = "10000", info = "Upper boundary for amplitude window"),
|
||||
ValueDef(name = "binNum", type = arrayOf(ValueType.NUMBER), def = "1000", info = "Number of bins for time histogram"),
|
||||
ValueDef(name = "binSize", type = arrayOf(ValueType.NUMBER), info = "Size of bin for time histogram. By default is defined automatically")
|
||||
ValueDef(key = "normalize", type = arrayOf(ValueType.BOOLEAN), def = "true", info = "Normalize t0 dependencies"),
|
||||
ValueDef(key = "t0", type = arrayOf(ValueType.NUMBER), def = "30e3", info = "The default t0 in nanoseconds"),
|
||||
ValueDef(key = "window.lo", type = arrayOf(ValueType.NUMBER), def = "0", info = "Lower boundary for amplitude window"),
|
||||
ValueDef(key = "window.up", type = arrayOf(ValueType.NUMBER), def = "10000", info = "Upper boundary for amplitude window"),
|
||||
ValueDef(key = "binNum", type = arrayOf(ValueType.NUMBER), def = "1000", info = "Number of bins for time histogram"),
|
||||
ValueDef(key = "binSize", type = arrayOf(ValueType.NUMBER), info = "Size of bin for time histogram. By default is defined automatically")
|
||||
)
|
||||
@NodeDefs(
|
||||
NodeDef(name = "histogram", info = "Configuration for histogram plots"),
|
||||
NodeDef(name = "plot", info = "Configuration for stat plots")
|
||||
NodeDef(key = "histogram", info = "Configuration for histogram plots"),
|
||||
NodeDef(key = "plot", info = "Configuration for stat plots")
|
||||
)
|
||||
@TypedActionDef(name = "timeSpectrum", inputType = NumassPoint::class, outputType = Table::class)
|
||||
class TimeAnalyzerAction : OneToOneAction<NumassPoint, Table>() {
|
||||
@ -54,7 +54,7 @@ class TimeAnalyzerAction : OneToOneAction<NumassPoint, Table>() {
|
||||
.fill(analyzer
|
||||
.getEventsWithDelay(input, inputMeta)
|
||||
.asStream()
|
||||
.mapToDouble { it.second / 1000.0 }
|
||||
.mapToDouble { it.second.toDouble() / 1000.0 }
|
||||
).asTable()
|
||||
|
||||
//.histogram(input, loChannel, upChannel, binSize, binNum).asTable();
|
||||
@ -88,7 +88,7 @@ class TimeAnalyzerAction : OneToOneAction<NumassPoint, Table>() {
|
||||
|
||||
histPlot.add(
|
||||
XYFunctionPlot.plot(name + "_theory", 0.0, binSize * binNum) {
|
||||
trueCR * Math.exp(-it * trueCR / 1e6) * binSize
|
||||
trueCR/1e6 * initialEstimate.getInt(NumassAnalyzer.COUNT_KEY) * Math.exp( - it * trueCR / 1e6)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -21,16 +21,16 @@ import kotlin.streams.asStream
|
||||
* Plot time analysis graphics
|
||||
*/
|
||||
@ValueDefs(
|
||||
ValueDef(name = "normalize", type = arrayOf(ValueType.BOOLEAN), def = "true", info = "Normalize t0 dependencies"),
|
||||
ValueDef(name = "t0", type = arrayOf(ValueType.NUMBER), def = "30e3", info = "The default t0 in nanoseconds"),
|
||||
ValueDef(name = "window.lo", type = arrayOf(ValueType.NUMBER), def = "500", info = "Lower boundary for amplitude window"),
|
||||
ValueDef(name = "window.up", type = arrayOf(ValueType.NUMBER), def = "10000", info = "Upper boundary for amplitude window"),
|
||||
ValueDef(name = "binNum", type = arrayOf(ValueType.NUMBER), def = "1000", info = "Number of bins for time histogram"),
|
||||
ValueDef(name = "binSize", type = arrayOf(ValueType.NUMBER), info = "Size of bin for time histogram. By default is defined automatically")
|
||||
ValueDef(key = "normalize", type = arrayOf(ValueType.BOOLEAN), def = "true", info = "Normalize t0 dependencies"),
|
||||
ValueDef(key = "t0", type = arrayOf(ValueType.NUMBER), def = "30e3", info = "The default t0 in nanoseconds"),
|
||||
ValueDef(key = "window.lo", type = arrayOf(ValueType.NUMBER), def = "500", info = "Lower boundary for amplitude window"),
|
||||
ValueDef(key = "window.up", type = arrayOf(ValueType.NUMBER), def = "10000", info = "Upper boundary for amplitude window"),
|
||||
ValueDef(key = "binNum", type = arrayOf(ValueType.NUMBER), def = "1000", info = "Number of bins for time histogram"),
|
||||
ValueDef(key = "binSize", type = arrayOf(ValueType.NUMBER), info = "Size of bin for time histogram. By default is defined automatically")
|
||||
)
|
||||
@NodeDefs(
|
||||
NodeDef(name = "histogram", info = "Configuration for histogram plots"),
|
||||
NodeDef(name = "plot", info = "Configuration for stat plots")
|
||||
NodeDef(key = "histogram", info = "Configuration for histogram plots"),
|
||||
NodeDef(key = "plot", info = "Configuration for stat plots")
|
||||
)
|
||||
@TypedActionDef(name = "numass.timeSpectrum", inputType = NumassPoint::class, outputType = Table::class)
|
||||
class TimeSpectrumAction : OneToOneAction<NumassPoint, Table>() {
|
||||
|
@ -31,10 +31,10 @@ import java.util.*
|
||||
*/
|
||||
@TypedActionDef(name = "numass.transform", inputType = Table::class, outputType = Table::class)
|
||||
@ValueDefs(
|
||||
ValueDef(name = "correction", info = "An expression to correct count number depending on potential `U`, point length `T` and point itself as `point`"),
|
||||
ValueDef(name = "utransform", info = "Expression for voltage transformation. Uses U as input")
|
||||
ValueDef(key = "correction", info = "An expression to correct count number depending on potential `U`, point length `T` and point itself as `point`"),
|
||||
ValueDef(key = "utransform", info = "Expression for voltage transformation. Uses U as input")
|
||||
)
|
||||
@NodeDef(name = "correction", multiple = true, from = "method::inr.numass.actions.TransformDataAction.makeCorrection")
|
||||
@NodeDef(key = "correction", multiple = true, from = "method::inr.numass.actions.TransformDataAction.makeCorrection")
|
||||
class TransformDataAction : OneToOneAction<Table, Table>() {
|
||||
|
||||
override fun execute(context: Context, name: String, input: Table, meta: Laminate): Table {
|
||||
@ -109,8 +109,8 @@ class TransformDataAction : OneToOneAction<Table, Table>() {
|
||||
|
||||
|
||||
@ValueDefs(
|
||||
ValueDef(name = "value", type = arrayOf(NUMBER, STRING), info = "Value or function to multiply count rate"),
|
||||
ValueDef(name = "err", type = arrayOf(NUMBER, STRING), info = "error of the value")
|
||||
ValueDef(key = "value", type = arrayOf(NUMBER, STRING), info = "Value or function to multiply count rate"),
|
||||
ValueDef(key = "err", type = arrayOf(NUMBER, STRING), info = "error of the value")
|
||||
)
|
||||
private fun makeCorrection(corrMeta: Meta): Correction {
|
||||
val expr = corrMeta.getString("value")
|
||||
|
@ -28,12 +28,12 @@ import inr.numass.utils.NumassIntegrator
|
||||
* @author Alexander Nozik
|
||||
*/
|
||||
@NodeDefs(
|
||||
NodeDef(name = "resolution"),
|
||||
NodeDef(name = "transmission")
|
||||
NodeDef(key = "resolution"),
|
||||
NodeDef(key = "transmission")
|
||||
)
|
||||
@ValueDefs(
|
||||
ValueDef(name = "fssFile", info = "The name for external FSS file. By default internal FSS file is used"),
|
||||
ValueDef(name = "useFSS", type = arrayOf(BOOLEAN))
|
||||
ValueDef(key = "fssFile", info = "The name for external FSS file. By default internal FSS file is used"),
|
||||
ValueDef(key = "useFSS", type = arrayOf(BOOLEAN))
|
||||
)
|
||||
|
||||
/**
|
||||
|
@ -19,15 +19,14 @@ fun main(args: Array<String>) {
|
||||
dataDir = "D:\\Work\\Numass\\data\\2018_04"
|
||||
}
|
||||
|
||||
val storage = NumassStorageFactory.buildLocal(context, "Fill_2", true, false);
|
||||
val storage = NumassStorageFactory.buildLocal(context, "Fill_4", true, false);
|
||||
|
||||
val meta = buildMeta {
|
||||
"t0" to 3000
|
||||
"binNum" to 200
|
||||
"t0Step" to 100
|
||||
"chunkSize" to 3000
|
||||
"sort" to true
|
||||
// "separateBlocks" to true
|
||||
// "separateParallelBlocks" to true
|
||||
node("window") {
|
||||
"lo" to 0
|
||||
"up" to 4000
|
||||
|
@ -66,8 +66,8 @@ val analyzeTask = task("analyze") {
|
||||
}
|
||||
|
||||
@ValueDefs(
|
||||
ValueDef(name = "showPlot", type = [ValueType.BOOLEAN], info = "Show plot after complete"),
|
||||
ValueDef(name = "monitorVoltage", type = [ValueType.NUMBER], info = "The voltage for monitor point")
|
||||
ValueDef(key = "showPlot", type = [ValueType.BOOLEAN], info = "Show plot after complete"),
|
||||
ValueDef(key = "monitorVoltage", type = [ValueType.NUMBER], info = "The voltage for monitor point")
|
||||
)
|
||||
val monitorTableTask = task("monitor") {
|
||||
model { meta ->
|
||||
|
Loading…
Reference in New Issue
Block a user