[no commit message]
This commit is contained in:
parent
70ee806674
commit
73908683b8
@ -30,7 +30,7 @@ import hep.dataforge.exceptions.MeasurementException;
|
|||||||
import hep.dataforge.exceptions.PortException;
|
import hep.dataforge.exceptions.PortException;
|
||||||
import hep.dataforge.exceptions.StorageException;
|
import hep.dataforge.exceptions.StorageException;
|
||||||
import hep.dataforge.meta.Meta;
|
import hep.dataforge.meta.Meta;
|
||||||
import hep.dataforge.points.Format;
|
import hep.dataforge.points.PointFormat;
|
||||||
import hep.dataforge.points.FormatBuilder;
|
import hep.dataforge.points.FormatBuilder;
|
||||||
import hep.dataforge.storage.api.PointLoader;
|
import hep.dataforge.storage.api.PointLoader;
|
||||||
import hep.dataforge.storage.api.Storage;
|
import hep.dataforge.storage.api.Storage;
|
||||||
@ -411,7 +411,7 @@ public class MspDevice extends SingleMeasurementDevice implements PortHandler.Po
|
|||||||
builder.addNumber(peakName);
|
builder.addNumber(peakName);
|
||||||
});
|
});
|
||||||
|
|
||||||
Format format = builder.build();
|
PointFormat format = builder.build();
|
||||||
|
|
||||||
String suffix = Integer.toString((int) Instant.now().toEpochMilli());
|
String suffix = Integer.toString((int) Instant.now().toEpochMilli());
|
||||||
PointLoader loader = LoaderFactory
|
PointLoader loader = LoaderFactory
|
||||||
|
@ -33,6 +33,7 @@ import hep.dataforge.plots.data.PlottableData;
|
|||||||
import hep.dataforge.plots.data.PlottableFunction;
|
import hep.dataforge.plots.data.PlottableFunction;
|
||||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -46,7 +47,7 @@ public class PlotFitResultAction extends OneToOneAction<FitState, FitState> {
|
|||||||
@Override
|
@Override
|
||||||
protected FitState execute(Context context,Logable log, String name, Laminate metaData, FitState input) {
|
protected FitState execute(Context context,Logable log, String name, Laminate metaData, FitState input) {
|
||||||
|
|
||||||
PointSet data = input.getDataSet();
|
PointSource data = input.getDataSet();
|
||||||
if (!(input.getModel() instanceof XYModel)) {
|
if (!(input.getModel() instanceof XYModel)) {
|
||||||
log.logError("The fit model should be instance of XYModel for this action. Action failed!");
|
log.logError("The fit model should be instance of XYModel for this action. Action failed!");
|
||||||
return input;
|
return input;
|
||||||
|
@ -17,6 +17,7 @@ import hep.dataforge.meta.Meta;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adjust errors for all numass points in the dataset
|
* Adjust errors for all numass points in the dataset
|
||||||
@ -33,7 +34,7 @@ public class AdjustErrorsAction extends OneToOneAction<PointSet, PointSet> {
|
|||||||
points.add(evalPoint(meta, dp));
|
points.add(evalPoint(meta, dp));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ListPointSet(points, input.getDataFormat());
|
return new ListPointSet(input.getFormat(), points);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DataPoint evalPoint(Meta meta, DataPoint dp) {
|
private DataPoint evalPoint(Meta meta, DataPoint dp) {
|
||||||
|
@ -29,6 +29,7 @@ import hep.dataforge.points.DataPoint;
|
|||||||
import hep.dataforge.points.ListPointSet;
|
import hep.dataforge.points.ListPointSet;
|
||||||
import hep.dataforge.points.MapPoint;
|
import hep.dataforge.points.MapPoint;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -63,7 +64,7 @@ public class MergeDataAction extends ManyToOneAction<PointSet, PointSet> {
|
|||||||
@Override
|
@Override
|
||||||
protected PointSet execute(Context context, Logable log, String nodeName, Map<String, PointSet> data, Meta meta) {
|
protected PointSet execute(Context context, Logable log, String nodeName, Map<String, PointSet> data, Meta meta) {
|
||||||
PointSet res = mergeDataSets(nodeName, data.values());
|
PointSet res = mergeDataSets(nodeName, data.values());
|
||||||
return res.sort("Uset", true);
|
return new ListPointSet(res.getFormat(),res.sort("Uset", true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -143,8 +144,8 @@ public class MergeDataAction extends ManyToOneAction<PointSet, PointSet> {
|
|||||||
private PointSet mergeDataSets(String name, Collection<PointSet> ds) {
|
private PointSet mergeDataSets(String name, Collection<PointSet> ds) {
|
||||||
//Сливаем все точки в один набор данных
|
//Сливаем все точки в один набор данных
|
||||||
Map<Double, List<DataPoint>> points = new LinkedHashMap<>();
|
Map<Double, List<DataPoint>> points = new LinkedHashMap<>();
|
||||||
for (PointSet d : ds) {
|
for (PointSource d : ds) {
|
||||||
if (!d.getDataFormat().contains(parnames)) {
|
if (!d.getFormat().contains(parnames)) {
|
||||||
throw new IllegalArgumentException();
|
throw new IllegalArgumentException();
|
||||||
}
|
}
|
||||||
for (DataPoint dp : d) {
|
for (DataPoint dp : d) {
|
||||||
|
@ -37,6 +37,7 @@ import java.util.Map.Entry;
|
|||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -17,7 +17,7 @@ package inr.numass.actions;
|
|||||||
|
|
||||||
import hep.dataforge.actions.OneToOneAction;
|
import hep.dataforge.actions.OneToOneAction;
|
||||||
import hep.dataforge.context.Context;
|
import hep.dataforge.context.Context;
|
||||||
import hep.dataforge.points.Format;
|
import hep.dataforge.points.PointFormat;
|
||||||
import hep.dataforge.points.DataPoint;
|
import hep.dataforge.points.DataPoint;
|
||||||
import hep.dataforge.points.ListPointSet;
|
import hep.dataforge.points.ListPointSet;
|
||||||
import hep.dataforge.points.MapPoint;
|
import hep.dataforge.points.MapPoint;
|
||||||
@ -90,13 +90,13 @@ public class PrepareDataAction extends OneToOneAction<NMFile, PointSet> {
|
|||||||
dataList.add(new MapPoint(parnames, new Object[]{Uset, Uread, time, total, wind, corr, cr, crErr, timestamp}));
|
dataList.add(new MapPoint(parnames, new Object[]{Uset, Uread, time, total, wind, corr, cr, crErr, timestamp}));
|
||||||
}
|
}
|
||||||
|
|
||||||
Format format;
|
PointFormat format;
|
||||||
|
|
||||||
if (!dataList.isEmpty()) {
|
if (!dataList.isEmpty()) {
|
||||||
//Генерируем автоматический формат по первой строчке
|
//Генерируем автоматический формат по первой строчке
|
||||||
format = Format.forPoint(dataList.get(0));
|
format = PointFormat.forPoint(dataList.get(0));
|
||||||
} else {
|
} else {
|
||||||
format = Format.forNames(8, parnames);
|
format = PointFormat.forNames(8, parnames);
|
||||||
}
|
}
|
||||||
|
|
||||||
// AnnotationBuilder builder = dataFile.meta().getBuilder();
|
// AnnotationBuilder builder = dataFile.meta().getBuilder();
|
||||||
@ -109,7 +109,7 @@ public class PrepareDataAction extends OneToOneAction<NMFile, PointSet> {
|
|||||||
}
|
}
|
||||||
head = head + "\n" + new XMLMetaWriter().writeString(meta, null) + "\n";
|
head = head + "\n" + new XMLMetaWriter().writeString(meta, null) + "\n";
|
||||||
|
|
||||||
ListPointSet data = new ListPointSet(dataList, format);
|
ListPointSet data = new ListPointSet(format, dataList);
|
||||||
|
|
||||||
OutputStream stream = buildActionOutput(context, name);
|
OutputStream stream = buildActionOutput(context, name);
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ public class ShowLossSpectrumAction extends OneToOneAction<FitState, FitState> {
|
|||||||
ParamSet parameters = input.getParameters().getSubSet(new String[]{"exPos", "ionPos", "exW", "ionW", "exIonRatio"});
|
ParamSet parameters = input.getParameters().getSubSet(new String[]{"exPos", "ionPos", "exW", "ionW", "exIonRatio"});
|
||||||
NamedMatrix covariance = input.getCovariance();
|
NamedMatrix covariance = input.getCovariance();
|
||||||
PointSet spreadData = generateSpread(writer, name, parameters, covariance);
|
PointSet spreadData = generateSpread(writer, name, parameters, covariance);
|
||||||
ColumnedDataWriter.writeDataSet(System.out, spreadData, "", spreadData.getDataFormat().asArray());
|
ColumnedDataWriter.writeDataSet(System.out, spreadData, "", spreadData.getFormat().asArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package inr.numass.actions;
|
package inr.numass.actions;
|
||||||
|
|
||||||
import hep.dataforge.points.Format;
|
import hep.dataforge.points.PointFormat;
|
||||||
import hep.dataforge.points.ListPointSet;
|
import hep.dataforge.points.ListPointSet;
|
||||||
import hep.dataforge.points.MapPoint;
|
import hep.dataforge.points.MapPoint;
|
||||||
import hep.dataforge.values.Value;
|
import hep.dataforge.values.Value;
|
||||||
@ -36,11 +36,11 @@ public class SlicedData extends ListPointSet {
|
|||||||
private static final String UNAME = "U";
|
private static final String UNAME = "U";
|
||||||
|
|
||||||
|
|
||||||
private static Format prepateFormat(Map<String,Pair<Integer,Integer>> intervals){
|
private static PointFormat prepateFormat(Map<String,Pair<Integer,Integer>> intervals){
|
||||||
ArrayList<String> names = new ArrayList<>(intervals.keySet());
|
ArrayList<String> names = new ArrayList<>(intervals.keySet());
|
||||||
names.add(0, TNAME);
|
names.add(0, TNAME);
|
||||||
names.add(0, UNAME);
|
names.add(0, UNAME);
|
||||||
return Format.forNames(8, names);
|
return PointFormat.forNames(8, names);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import hep.dataforge.actions.ManyToOneAction;
|
|||||||
import hep.dataforge.actions.GroupBuilder;
|
import hep.dataforge.actions.GroupBuilder;
|
||||||
import hep.dataforge.context.Context;
|
import hep.dataforge.context.Context;
|
||||||
import hep.dataforge.data.DataNode;
|
import hep.dataforge.data.DataNode;
|
||||||
import hep.dataforge.points.Format;
|
import hep.dataforge.points.PointFormat;
|
||||||
import hep.dataforge.points.DataPoint;
|
import hep.dataforge.points.DataPoint;
|
||||||
import hep.dataforge.points.ListPointSet;
|
import hep.dataforge.points.ListPointSet;
|
||||||
import hep.dataforge.points.MapPoint;
|
import hep.dataforge.points.MapPoint;
|
||||||
@ -68,7 +68,7 @@ public class SummaryAction extends ManyToOneAction<FitState, PointSet> {
|
|||||||
}
|
}
|
||||||
names[names.length - 1] = "chi2";
|
names[names.length - 1] = "chi2";
|
||||||
|
|
||||||
ListPointSet res = new ListPointSet(Format.forNames(8, names));
|
ListPointSet res = new ListPointSet(PointFormat.forNames(8, names));
|
||||||
|
|
||||||
double[] weights = new double[parNames.length];
|
double[] weights = new double[parNames.length];
|
||||||
Arrays.fill(weights, 0);
|
Arrays.fill(weights, 0);
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package inr.numass.data;
|
package inr.numass.data;
|
||||||
|
|
||||||
import hep.dataforge.points.Format;
|
import hep.dataforge.points.PointFormat;
|
||||||
import hep.dataforge.points.ListPointSet;
|
import hep.dataforge.points.ListPointSet;
|
||||||
import hep.dataforge.points.MapPoint;
|
import hep.dataforge.points.MapPoint;
|
||||||
import hep.dataforge.io.ColumnedDataWriter;
|
import hep.dataforge.io.ColumnedDataWriter;
|
||||||
@ -30,6 +30,13 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import static java.lang.String.format;
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
import static java.lang.String.format;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -39,7 +46,7 @@ public class ESpectrum extends ListPointSet {
|
|||||||
|
|
||||||
private final static String binCenter = "chanel";
|
private final static String binCenter = "chanel";
|
||||||
|
|
||||||
private static Format prepareFormat(List<NMPoint> points) {
|
private static PointFormat prepareFormat(List<NMPoint> points) {
|
||||||
// ArrayList<String> names = new ArrayList<>();
|
// ArrayList<String> names = new ArrayList<>();
|
||||||
// names.add(binCenter);
|
// names.add(binCenter);
|
||||||
Map<String, ValueFormat> format = new LinkedHashMap<>();
|
Map<String, ValueFormat> format = new LinkedHashMap<>();
|
||||||
@ -49,7 +56,7 @@ public class ESpectrum extends ListPointSet {
|
|||||||
format.put(format("%.3f", point.getUread()), ValueFormatFactory.fixedWidth(10));
|
format.put(format("%.3f", point.getUread()), ValueFormatFactory.fixedWidth(10));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Format(format);
|
return new PointFormat(format);
|
||||||
}
|
}
|
||||||
|
|
||||||
int binning = 1;
|
int binning = 1;
|
||||||
@ -82,7 +89,7 @@ public class ESpectrum extends ListPointSet {
|
|||||||
|
|
||||||
public void printToFile(OutputStream stream) {
|
public void printToFile(OutputStream stream) {
|
||||||
ColumnedDataWriter.writeDataSet(stream, this, null);
|
ColumnedDataWriter.writeDataSet(stream, this, null);
|
||||||
// new ColumnedDataWriter(stream, this.getDataFormat().asArray()).writeDataSet(this, null);
|
// new ColumnedDataWriter(stream, this.getFormat().asArray()).writeDataSet(this, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,13 @@ import java.util.Iterator;
|
|||||||
import org.apache.commons.math3.random.JDKRandomGenerator;
|
import org.apache.commons.math3.random.JDKRandomGenerator;
|
||||||
import org.apache.commons.math3.random.RandomDataGenerator;
|
import org.apache.commons.math3.random.RandomDataGenerator;
|
||||||
import org.apache.commons.math3.random.RandomGenerator;
|
import org.apache.commons.math3.random.RandomGenerator;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
import static java.lang.Double.isNaN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Генератор наборов данных для спектров. На входе требуется набор данных,
|
* Генератор наборов данных для спектров. На входе требуется набор данных,
|
||||||
|
@ -22,6 +22,7 @@ import java.io.FileNotFoundException;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import org.apache.commons.math3.util.Pair;
|
import org.apache.commons.math3.util.Pair;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -34,7 +35,7 @@ public class FSS{
|
|||||||
public FSS(File FSSFile) {
|
public FSS(File FSSFile) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
PointSet data = IOUtils.readColumnedData(FSSFile,"E","P");
|
PointSource data = IOUtils.readColumnedData(FSSFile,"E","P");
|
||||||
this.points = new ArrayList<>();
|
this.points = new ArrayList<>();
|
||||||
norm = 0;
|
norm = 0;
|
||||||
for (DataPoint dp : data) {
|
for (DataPoint dp : data) {
|
||||||
|
@ -22,6 +22,7 @@ import hep.dataforge.io.ColumnedDataReader;
|
|||||||
import hep.dataforge.meta.Meta;
|
import hep.dataforge.meta.Meta;
|
||||||
import hep.dataforge.points.DataPoint;
|
import hep.dataforge.points.DataPoint;
|
||||||
import hep.dataforge.points.PointSet;
|
import hep.dataforge.points.PointSet;
|
||||||
|
import hep.dataforge.points.PointSource;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -49,7 +50,7 @@ public class TransmissionInterpolator implements UnivariateFunction {
|
|||||||
public static TransmissionInterpolator fromAction(Context context, Meta actionAnnotation,
|
public static TransmissionInterpolator fromAction(Context context, Meta actionAnnotation,
|
||||||
String xName, String yName, int nSmooth, double w, double border) throws InterruptedException {
|
String xName, String yName, int nSmooth, double w, double border) throws InterruptedException {
|
||||||
DataNode<PointSet> node = ActionUtils.runConfig(context, actionAnnotation);
|
DataNode<PointSet> node = ActionUtils.runConfig(context, actionAnnotation);
|
||||||
PointSet data = node.getData().get();
|
PointSource data = node.getData().get();
|
||||||
return new TransmissionInterpolator(data, xName, yName, nSmooth, w, border);
|
return new TransmissionInterpolator(data, xName, yName, nSmooth, w, border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +40,118 @@ import static java.util.Locale.setDefault;
|
|||||||
import static java.util.Locale.setDefault;
|
import static java.util.Locale.setDefault;
|
||||||
import static java.util.Locale.setDefault;
|
import static java.util.Locale.setDefault;
|
||||||
import static java.util.Locale.setDefault;
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
import static java.util.Locale.setDefault;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -22,6 +22,13 @@ import static java.lang.Math.exp;
|
|||||||
import static java.lang.Math.sqrt;
|
import static java.lang.Math.sqrt;
|
||||||
import org.apache.commons.math3.analysis.UnivariateFunction;
|
import org.apache.commons.math3.analysis.UnivariateFunction;
|
||||||
import static java.lang.Math.abs;
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
import static java.lang.Math.abs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -41,7 +48,7 @@ public class TritiumUtils {
|
|||||||
// public static ListPointSet applyDrift(ListPointSet data, double driftPerSecond) {
|
// public static ListPointSet applyDrift(ListPointSet data, double driftPerSecond) {
|
||||||
// double t = 0;
|
// double t = 0;
|
||||||
//
|
//
|
||||||
// ListPointSet res = new ListPointSet(data.getDataFormat());
|
// ListPointSet res = new ListPointSet(data.getFormat());
|
||||||
// for (DataPoint d : data) {
|
// for (DataPoint d : data) {
|
||||||
// SpectrumDataPoint dp = (SpectrumDataPoint) d;
|
// SpectrumDataPoint dp = (SpectrumDataPoint) d;
|
||||||
// double corrFactor = 1 + driftPerSecond * t;
|
// double corrFactor = 1 + driftPerSecond * t;
|
||||||
@ -62,7 +69,7 @@ public class TritiumUtils {
|
|||||||
*/
|
*/
|
||||||
public static ListPointSet correctForDeadTime(ListPointSet data, double dtime) {
|
public static ListPointSet correctForDeadTime(ListPointSet data, double dtime) {
|
||||||
SpectrumDataAdapter reader = adapter();
|
SpectrumDataAdapter reader = adapter();
|
||||||
ListPointSet res = new ListPointSet(data.getDataFormat());
|
ListPointSet res = new ListPointSet(data.getFormat());
|
||||||
for (DataPoint dp : data) {
|
for (DataPoint dp : data) {
|
||||||
double corrFactor = 1 / (1 - dtime * reader.getCount(dp) /reader.getTime(dp));
|
double corrFactor = 1 / (1 - dtime * reader.getCount(dp) /reader.getTime(dp));
|
||||||
res.add(reader.buildSpectrumDataPoint(reader.getX(dp).doubleValue(), (long) (reader.getCount(dp)*corrFactor),reader.getTime(dp)));
|
res.add(reader.buildSpectrumDataPoint(reader.getX(dp).doubleValue(), (long) (reader.getCount(dp)*corrFactor),reader.getTime(dp)));
|
||||||
@ -80,7 +87,7 @@ public class TritiumUtils {
|
|||||||
*/
|
*/
|
||||||
public static ListPointSet setHVScale(ListPointSet data, double beta) {
|
public static ListPointSet setHVScale(ListPointSet data, double beta) {
|
||||||
SpectrumDataAdapter reader = adapter();
|
SpectrumDataAdapter reader = adapter();
|
||||||
ListPointSet res = new ListPointSet(data.getDataFormat());
|
ListPointSet res = new ListPointSet(data.getFormat());
|
||||||
for (DataPoint dp : data) {
|
for (DataPoint dp : data) {
|
||||||
double corrFactor = 1 + beta;
|
double corrFactor = 1 + beta;
|
||||||
res.add(reader.buildSpectrumDataPoint(reader.getX(dp).doubleValue()*corrFactor, reader.getCount(dp), reader.getTime(dp)));
|
res.add(reader.buildSpectrumDataPoint(reader.getX(dp).doubleValue()*corrFactor, reader.getCount(dp), reader.getTime(dp)));
|
||||||
|
@ -11,6 +11,17 @@ task runServer(type: JavaExec) {
|
|||||||
standardInput = System.in
|
standardInput = System.in
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sourceSets.main.resources{
|
||||||
|
// srcDir project(':dataforge-storage:storage-servlet').file('ratpack')
|
||||||
|
//}
|
||||||
|
|
||||||
|
//task copyAssets(type: Copy) {
|
||||||
|
// from project(':dataforge-storage:storage-servlet').file('src/main/resouces/ratpack')
|
||||||
|
// into 'src/main/resouces/ratpack'
|
||||||
|
//}
|
||||||
|
|
||||||
|
//processResources.dependsOn("copyAssets")
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':numass-storage')
|
compile project(':numass-storage')
|
||||||
compile project(':dataforge-storage:storage-servlet')
|
compile project(':dataforge-storage:storage-servlet')
|
||||||
|
@ -14,7 +14,8 @@ import hep.dataforge.values.Value;
|
|||||||
*/
|
*/
|
||||||
public class HandlerUtils {
|
public class HandlerUtils {
|
||||||
|
|
||||||
public static void renderStates(StringBuilder b, StateLoader states) {
|
public static String renderStates(StateLoader states) {
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
b.append("<div class=\"shifted\">\n");
|
b.append("<div class=\"shifted\">\n");
|
||||||
for (String state : states.getStateNames()) {
|
for (String state : states.getStateNames()) {
|
||||||
Value val = states.getValue(state);
|
Value val = states.getValue(state);
|
||||||
@ -37,6 +38,7 @@ public class HandlerUtils {
|
|||||||
state, color, val.stringValue()));
|
state, color, val.stringValue()));
|
||||||
}
|
}
|
||||||
b.append("</div>\n");
|
b.append("</div>\n");
|
||||||
|
return b.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void renderHTMLHeader(StringBuilder b) {
|
public static void renderHTMLHeader(StringBuilder b) {
|
||||||
|
@ -5,13 +5,18 @@
|
|||||||
*/
|
*/
|
||||||
package inr.numass.server;
|
package inr.numass.server;
|
||||||
|
|
||||||
|
import freemarker.template.Template;
|
||||||
import hep.dataforge.exceptions.StorageException;
|
import hep.dataforge.exceptions.StorageException;
|
||||||
import hep.dataforge.storage.api.Loader;
|
import hep.dataforge.storage.api.Loader;
|
||||||
import hep.dataforge.storage.api.StateLoader;
|
import hep.dataforge.storage.api.StateLoader;
|
||||||
import hep.dataforge.storage.api.Storage;
|
import hep.dataforge.storage.api.Storage;
|
||||||
import hep.dataforge.storage.commons.JSONMetaWriter;
|
import hep.dataforge.storage.commons.JSONMetaWriter;
|
||||||
import static inr.numass.server.HandlerUtils.*;
|
import hep.dataforge.storage.servlet.Utils;
|
||||||
import inr.numass.storage.NumassStorage;
|
import static inr.numass.server.HandlerUtils.renderStates;
|
||||||
|
import java.io.StringWriter;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import ratpack.handling.Context;
|
import ratpack.handling.Context;
|
||||||
import ratpack.handling.Handler;
|
import ratpack.handling.Handler;
|
||||||
|
|
||||||
@ -19,6 +24,7 @@ import ratpack.handling.Handler;
|
|||||||
*
|
*
|
||||||
* @author Alexander Nozik
|
* @author Alexander Nozik
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public class NumassRootHandler implements Handler {
|
public class NumassRootHandler implements Handler {
|
||||||
|
|
||||||
private final JSONMetaWriter writer = new JSONMetaWriter();
|
private final JSONMetaWriter writer = new JSONMetaWriter();
|
||||||
@ -30,43 +36,51 @@ public class NumassRootHandler implements Handler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(Context c) throws Exception {
|
public void handle(Context ctx) throws Exception {
|
||||||
c.getResponse().contentType("text/html");
|
try {
|
||||||
StringBuilder b = new StringBuilder();
|
ctx.getResponse().contentType("text/html");
|
||||||
renderHTMLHeader(b);
|
Template template = Utils.freemarkerConfig().getTemplate("NumassRoot.ftl");
|
||||||
b.append("<h1> Server configuration </h1>\n");
|
|
||||||
if (!server.meta().isEmpty()) {
|
Map data = new HashMap(6);
|
||||||
b.append("<h3> Server metadata: </h3>\n");
|
if (!server.meta().isEmpty()) {
|
||||||
b.append(writer.writeString(server.meta()));
|
data.put("serverMeta", writer.writeString(server.meta()));
|
||||||
b.append("\n");
|
|
||||||
}
|
|
||||||
if (server.getRootState() != null) {
|
|
||||||
b.append("<h3> Current root state: </h3>\n");
|
|
||||||
renderStates(b, server.getRootState());
|
|
||||||
}
|
|
||||||
if (server.getRun() != null) {
|
|
||||||
b.append("<h1> Current run configuration </h1>\n");
|
|
||||||
if (!server.getRun().meta().isEmpty()) {
|
|
||||||
b.append("<h3> Run metadata: </h3>\n");
|
|
||||||
b.append(writer.writeString(server.getRun().meta()));
|
|
||||||
b.append("\n");
|
|
||||||
}
|
|
||||||
StateLoader runStates = server.getRun().getStates();
|
|
||||||
if (!runStates.isEmpty()) {
|
|
||||||
b.append("<h3> Current run state: </h3>\n");
|
|
||||||
renderStates(b, runStates);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
b.append("<h2> Current run storage content: </h2>\n");
|
if (server.getRootState() != null) {
|
||||||
NumassStorage storage = server.getRun().getStorage();
|
data.put("serverRootState", renderStates(server.getRootState()));
|
||||||
try {
|
|
||||||
renderStorage(c, b, storage);
|
|
||||||
} catch (StorageException ex) {
|
|
||||||
b.append("\n<strong>Error reading sotrage structure!!!</strong>\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (server.getRun() != null) {
|
||||||
|
data.put("runPresent", true);
|
||||||
|
if (!server.getRun().meta().isEmpty()) {
|
||||||
|
data.put("runMeta", writer.writeString(server.getRun().meta()));
|
||||||
|
}
|
||||||
|
|
||||||
|
StateLoader runState = server.getRun().getStates();
|
||||||
|
if (!runState.isEmpty()) {
|
||||||
|
data.put("runState", renderStates(runState));
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
renderStorage(ctx, b, server.getRun().getStorage());
|
||||||
|
data.put("storageContent", b.toString());
|
||||||
|
} catch (StorageException ex) {
|
||||||
|
data.put("storageContent", ex.toString());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
data.put("runPresent", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
StringWriter stringWriter = new StringWriter();
|
||||||
|
template.process(data, stringWriter);
|
||||||
|
|
||||||
|
ctx.render(stringWriter.toString());
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
LoggerFactory.getLogger(getClass()).error("Error rendering storage tree");
|
||||||
|
ctx.render(ex.toString());
|
||||||
}
|
}
|
||||||
renderHTMLFooter(b);
|
|
||||||
c.render(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderStorage(Context ctx, StringBuilder b, Storage storage) throws StorageException {
|
private void renderStorage(Context ctx, StringBuilder b, Storage storage) throws StorageException {
|
||||||
|
@ -24,13 +24,16 @@ import hep.dataforge.storage.commons.AbstractNetworkListener;
|
|||||||
import hep.dataforge.storage.commons.LoaderFactory;
|
import hep.dataforge.storage.commons.LoaderFactory;
|
||||||
import hep.dataforge.storage.commons.StorageManager;
|
import hep.dataforge.storage.commons.StorageManager;
|
||||||
import hep.dataforge.storage.filestorage.FileStorage;
|
import hep.dataforge.storage.filestorage.FileStorage;
|
||||||
import hep.dataforge.storage.servlet.StorageRatpackHandler;
|
|
||||||
import inr.numass.storage.NumassStorage;
|
import inr.numass.storage.NumassStorage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import ratpack.file.FileHandlerSpec;
|
||||||
import ratpack.handling.Chain;
|
import ratpack.handling.Chain;
|
||||||
|
import ratpack.server.BaseDir;
|
||||||
import ratpack.server.RatpackServer;
|
import ratpack.server.RatpackServer;
|
||||||
import ratpack.server.RatpackServerSpec;
|
import ratpack.server.RatpackServerSpec;
|
||||||
import ratpack.server.ServerConfigBuilder;
|
import ratpack.server.ServerConfigBuilder;
|
||||||
@ -81,8 +84,12 @@ public class NumassServer extends AbstractNetworkListener {
|
|||||||
super.open();
|
super.open();
|
||||||
int port = meta().getInt("ratpack.port", 8336);
|
int port = meta().getInt("ratpack.port", 8336);
|
||||||
ratpack = RatpackServer.start((RatpackServerSpec server) -> server
|
ratpack = RatpackServer.start((RatpackServerSpec server) -> server
|
||||||
.serverConfig((ServerConfigBuilder config) -> config.port(port))
|
.serverConfig((ServerConfigBuilder config) -> config
|
||||||
|
// .baseDir(Paths.get(getClass().getClassLoader().getResource("ratpack").toURI()))
|
||||||
|
// .baseDir(BaseDir.find())
|
||||||
|
.port(port))
|
||||||
.handlers((Chain chain) -> chain
|
.handlers((Chain chain) -> chain
|
||||||
|
// .files()
|
||||||
.get(new NumassRootHandler(this))
|
.get(new NumassRootHandler(this))
|
||||||
.get("storage", new NumassStorageHandler(root))
|
.get("storage", new NumassStorageHandler(root))
|
||||||
)
|
)
|
||||||
@ -232,67 +239,4 @@ public class NumassServer extends AbstractNetworkListener {
|
|||||||
public NumassRun getRun() {
|
public NumassRun getRun() {
|
||||||
return run;
|
return run;
|
||||||
}
|
}
|
||||||
|
|
||||||
// private class NumassRootHandler implements Handler {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void handle(Context c) throws Exception {
|
|
||||||
// c.getResponse().contentType("text/html");
|
|
||||||
// StringBuilder b = new StringBuilder();
|
|
||||||
// renderHTMLHeader(b);
|
|
||||||
// b.append("<h1> Server configuration </h1>\n");
|
|
||||||
// if (!meta().isEmpty()) {
|
|
||||||
// b.append("<h3> Server metadata: </h3>\n");
|
|
||||||
// b.append(writer.writeString(meta()));
|
|
||||||
// b.append("\n");
|
|
||||||
// }
|
|
||||||
// if (getRootState() != null) {
|
|
||||||
// b.append("<h3> Current root state: </h3>\n");
|
|
||||||
// renderStates(b, getRootState());
|
|
||||||
// }
|
|
||||||
// if (getRun() != null) {
|
|
||||||
// b.append("<h1> Current run configuration </h1>\n");
|
|
||||||
// if (!run.meta().isEmpty()) {
|
|
||||||
// b.append("<h3> Run metadata: </h3>\n");
|
|
||||||
// b.append(writer.writeString(getRun().meta()));
|
|
||||||
// b.append("\n");
|
|
||||||
// }
|
|
||||||
// StateLoader runStates = getRun().getStates();
|
|
||||||
// if (!runStates.isEmpty()) {
|
|
||||||
// b.append("<h3> Current run state: </h3>\n");
|
|
||||||
// renderStates(b, runStates);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// b.append("<h2> Current run storage content: </h2>\n");
|
|
||||||
// NumassStorage storage = getRun().getStorage();
|
|
||||||
// try {
|
|
||||||
// renderStorage(c, b, storage);
|
|
||||||
// } catch (StorageException ex) {
|
|
||||||
// b.append("\n<strong>Error reading sotrage structure!!!</strong>\n");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// renderHTMLFooter(b);
|
|
||||||
// c.render(b);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void renderStorage(Context ctx, StringBuilder b, Storage storage) throws StorageException {
|
|
||||||
// b.append("<div class=\"shifted\">\n");
|
|
||||||
// for (Storage shelf : storage.shelves().values()) {
|
|
||||||
// b.append(String.format("<p><strong>+ %s</strong></p>%n", shelf.getName()));
|
|
||||||
// renderStorage(ctx, b, shelf);
|
|
||||||
// }
|
|
||||||
// b.append("<div class=\"shifted\">\n");
|
|
||||||
// for (Loader loader : storage.loaders().values()) {
|
|
||||||
// defaultRenderLoader(ctx, b, loader);
|
|
||||||
// }
|
|
||||||
// b.append("</div>\n");
|
|
||||||
// b.append("</div>\n");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void defaultRenderLoader(Context ctx, StringBuilder b, Loader loader) {
|
|
||||||
// String href = "/storage?path="+loader.getFullPath();
|
|
||||||
// b.append(String.format("<p><a href=\"%s\">%s</a> (%s)</p>", href, loader.getName(), loader.getType()));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,13 @@ import hep.dataforge.storage.api.Storage;
|
|||||||
import hep.dataforge.storage.servlet.StorageRatpackHandler;
|
import hep.dataforge.storage.servlet.StorageRatpackHandler;
|
||||||
import hep.dataforge.storage.servlet.Utils;
|
import hep.dataforge.storage.servlet.Utils;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.FormatStyle;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -28,6 +32,11 @@ import ratpack.handling.Context;
|
|||||||
*/
|
*/
|
||||||
public class NumassStorageHandler extends StorageRatpackHandler {
|
public class NumassStorageHandler extends StorageRatpackHandler {
|
||||||
|
|
||||||
|
private static DateTimeFormatter formatter
|
||||||
|
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
|
||||||
|
.withLocale(Locale.US)
|
||||||
|
.withZone(ZoneId.systemDefault());
|
||||||
|
|
||||||
public NumassStorageHandler(Storage root) {
|
public NumassStorageHandler(Storage root) {
|
||||||
super(root);
|
super(root);
|
||||||
}
|
}
|
||||||
@ -40,7 +49,7 @@ public class NumassStorageHandler extends StorageRatpackHandler {
|
|||||||
ctx.getResponse().contentType("text/html");
|
ctx.getResponse().contentType("text/html");
|
||||||
Template template = Utils.freemarkerConfig().getTemplate("NoteLoader.ftl");
|
Template template = Utils.freemarkerConfig().getTemplate("NoteLoader.ftl");
|
||||||
|
|
||||||
List<String> notes = getNotes(loader).limit(100).map(note->render(note)).collect(Collectors.toList());
|
List<String> notes = getNotes(loader).limit(100).map(note -> render(note)).collect(Collectors.toList());
|
||||||
|
|
||||||
Map data = new HashMap(2);
|
Map data = new HashMap(2);
|
||||||
data.put("notes", notes);
|
data.put("notes", notes);
|
||||||
@ -57,11 +66,11 @@ public class NumassStorageHandler extends StorageRatpackHandler {
|
|||||||
super.renderObjects(ctx, loader);
|
super.renderObjects(ctx, loader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String render(NumassNote note){
|
private String render(NumassNote note) {
|
||||||
return String.format("%s: <strong>%s</strong> %s", note.ref(), note.time(), note.content());
|
return String.format("<strong id=\"%s\">%s</strong> %s", note.ref(), formatter.format(note.time()), note.content());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stream of notes in the last to first order
|
* Stream of notes in the last to first order
|
||||||
*
|
*
|
||||||
@ -84,6 +93,6 @@ public class NumassStorageHandler extends StorageRatpackHandler {
|
|||||||
return -o1.time().compareTo(o2.time());
|
return -o1.time().compareTo(o2.time());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="refresh" content="30">
|
||||||
|
|
||||||
|
<!-- Latest compiled and minified CSS -->
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Numass storage</title>
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
.shifted {
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<h1> Server configuration </h1>
|
||||||
|
<#if serverMeta??>
|
||||||
|
<h3> Server metadata: </h3>
|
||||||
|
${serverMeta}
|
||||||
|
</#if>
|
||||||
|
<br/>
|
||||||
|
<#if serverRootState??>
|
||||||
|
<h3> Current root state: </h3>
|
||||||
|
${serverRootState}
|
||||||
|
</#if>
|
||||||
|
<br/>
|
||||||
|
<#if runPresent>
|
||||||
|
<h1> Current run configuration </h1>
|
||||||
|
<#if runMeta??>
|
||||||
|
<h3> Run metadata: </h3>
|
||||||
|
${runMeta}
|
||||||
|
</#if>
|
||||||
|
<#if runState?? >
|
||||||
|
<h3> Current run state: </h3>
|
||||||
|
${runState}
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<h2> Current run storage content: </h2>
|
||||||
|
${storageContent}
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<!-- Optional theme -->
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
|
||||||
|
|
||||||
|
<!-- Latest compiled and minified JavaScript -->
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -101,7 +101,7 @@ public class MspViewController {
|
|||||||
try (final PointLoader mspLoader = (PointLoader) rootStorage.getLoader(loaderName)) {
|
try (final PointLoader mspLoader = (PointLoader) rootStorage.getLoader(loaderName)) {
|
||||||
mspLoader.open();
|
mspLoader.open();
|
||||||
callback.updateMessage("Loading mass spectrometer data from " + mspLoader.getName());
|
callback.updateMessage("Loading mass spectrometer data from " + mspLoader.getName());
|
||||||
for (DataPoint dp : mspLoader.asDataSet()) {
|
for (DataPoint dp : mspLoader) {
|
||||||
mspData.add(dp);
|
mspData.add(dp);
|
||||||
last = dp;
|
last = dp;
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ configurations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
jcenter()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven { url "http://www.inr.ru/~nozik/maven2/" }
|
maven { url "http://www.inr.ru/~nozik/maven2/" }
|
||||||
// mavenLocal()
|
// mavenLocal()
|
||||||
|
Loading…
Reference in New Issue
Block a user