Global cleanup

This commit is contained in:
Alexander Nozik 2018-08-29 22:02:20 +03:00
parent d444f2b12b
commit 4fd269e8ff
21 changed files with 31 additions and 784 deletions

View File

@ -1,14 +0,0 @@
apply plugin: 'application'
if (!hasProperty('mainClass')) {
ext.mainClass = 'inr.numass.client.Cli'
}
mainClassName = mainClass
dependencies {
compile project(':numass-core')
compile 'commons-cli:commons-cli:1.4'
compile "hep.dataforge:dataforge-messages"
compile 'org.zeroturnaround:zt-zip:1.13'
}

View File

@ -1,142 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.client;
import hep.dataforge.meta.Meta;
import hep.dataforge.storage.commons.StorageManager;
import hep.dataforge.values.Value;
import org.apache.commons.cli.*;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
/**
* CLI interface for numass client
* @author Alexander Nozik
*/
public class Cli {
public static void main(String[] args) {
new StorageManager().startGlobal();
Options options = buildOptions();
CommandLineParser parser = new DefaultParser();
CommandLine cli;
try {
cli = parser.parse(options, args, false);
} catch (ParseException ex) {
System.out.println("Error: command line");
LoggerFactory.getLogger("NumassClient").error("Error while parsing command line", ex);
System.exit(1);
return;
}
runComand(cli.getOptionValue("a", "192.168.11.1"), Integer.valueOf(cli.getOptionValue("p", "8335")), cli.getArgs());
}
public static void runComand(String ip, int port, String... args) {
checkArgLength(1, args);
try (NumassClient client = new NumassClient(ip, port)) {
switch (args[0]) {
case "getRun":
Meta getRun = client.getCurrentRun();
if (getRun.getBoolean("success", true)) {
System.out.println(getRun.getString("run.path"));
} else {
System.out.println("Error: operaton failed");
}
return;
case "setRun":
checkArgLength(2, args);
Meta setRun = client.startRun(args[1]);
if (setRun.getBoolean("success", true)) {
System.out.println(setRun.getString("run.path"));
} else {
System.out.println("Error: operaton failed");
}
return;
case "getState":
checkArgLength(2, args);
String stateName = args[1];
Map<String, Value> states = client.getStates(stateName);
if (states != null) {
System.out.println(states.get(stateName).getString());
} else {
System.out.println("Error: operaton failed");
}
return;
case "setState":
checkArgLength(3, args);
String setStateName = args[1];
String setStateValue = args[2];
Meta setStateMeta = client.setState(setStateName, setStateValue);
if (setStateMeta.getBoolean("success", true)) {
System.out.println("OK");
} else {
System.out.println("Error: operaton failed");
}
return;
case "pushPoint":
checkArgLength(2, args);
String path;
String fileName;
if (args.length == 2) {
path = "";
fileName = args[1];
} else {
path = args[1];
fileName = args[2];
}
Meta pushPoint = client.sendNumassData(path, fileName);
// LoggerFactory.getLogger("Numass-client").debug(pushPoint.toString());
if (pushPoint.getBoolean("success", true)) {
System.out.println("OK");
} else {
System.out.println("Error: operaton failed");
}
return;
case "addNote":
// checkArgLength(2, args);
// String note = args[1];
String note = new BufferedReader(new InputStreamReader(System.in)).readLine();
Meta addNote = client.addNote(note, null);
if (addNote.getBoolean("success", true)) {
System.out.println("OK");
} else {
System.out.println("Error: operaton failed");
}
}
} catch (IOException ex) {
System.out.println("Error: connection failed");
LoggerFactory.getLogger("NumassClient").error("Error while initializing connection", ex);
System.exit(1);
}
}
private static void checkArgLength(int length, String... args) {
if (args.length < length) {
LoggerFactory.getLogger("NumassClient").error("Command line to short");
System.exit(1);
}
}
private static Options buildOptions() {
Options options = new Options();
options.addOption("a", "ip", true, "IP address of the server. Default: 192.168.111.1");
options.addOption("p", "port", true, "Server port. Default: 8335");
return options;
}
}

View File

@ -1,24 +0,0 @@
package inr.numass.client;
import hep.dataforge.meta.Meta;
import java.io.IOException;
/**
* Created by darksnake on 09-Oct-16.
*/
public class ClientUtils {
public static String getRunName(Meta config) {
if (config.hasValue("numass.run")) {
return config.getString("numass.run");
} else if (config.hasMeta("numass.server")) {
try {
return new NumassClient(config.getMeta("numass.server")).getCurrentRun().getString("path");
} catch (IOException e) {
return "";
}
} else {
return "";
}
}
}

View File

@ -1,258 +0,0 @@
/*
* Copyright 2015 Alexander Nozik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package inr.numass.client;
import hep.dataforge.io.envelopes.DefaultEnvelopeReader;
import hep.dataforge.io.envelopes.DefaultEnvelopeType;
import hep.dataforge.io.envelopes.Envelope;
import hep.dataforge.io.envelopes.EnvelopeBuilder;
import hep.dataforge.messages.Responder;
import hep.dataforge.meta.Meta;
import hep.dataforge.meta.MetaBuilder;
import hep.dataforge.values.Value;
import hep.dataforge.values.Values;
import inr.numass.data.storage.NumassStorage;
import org.jetbrains.annotations.NotNull;
import org.slf4j.LoggerFactory;
import org.zeroturnaround.zip.ZipUtil;
import java.io.*;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.StandardOpenOption;
import java.time.Instant;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import static hep.dataforge.messages.MessagesKt.*;
/**
* @author darksnake
*/
public class NumassClient implements AutoCloseable, Responder {
Socket socket;
public NumassClient(String address, int port) throws IOException {
socket = new Socket(address, port);
socket.setSoTimeout(300);
}
public NumassClient(Meta meta) throws IOException {
this(meta.getString("ip", "192.168.111.1"), meta.getInt("port", 8335));
}
@Override
public void close() throws IOException {
if (!socket.isClosed()) {
write(getTerminator(), socket.getOutputStream());
}
socket.close();
}
@NotNull
@Override
public Envelope respond(@NotNull Envelope message) {
try {
write(message, socket.getOutputStream());
return read(socket.getInputStream());
} catch (IOException ex) {
LoggerFactory.getLogger(getClass()).error("Error in envelope exchange", ex);
return errorResponseBase(message, ex).build();
}
}
private Envelope read(InputStream is) throws IOException {
return new DefaultEnvelopeReader().readWithData(is);
}
private void write(Envelope envelope, OutputStream os) throws IOException {
DefaultEnvelopeType.Companion.getINSTANCE().getWriter().write(os, envelope);
os.flush();
}
private EnvelopeBuilder requestActionBase(String type, String action) {
return requestBase(type).setMetaValue("action", action);
}
public Meta getCurrentRun() {
return respond(requestActionBase("numass.run", "get").build()).getMeta();
}
public Meta startRun(String name) {
return respond(requestActionBase("numass.run", "start")
.setMetaValue("path", name)
.build()).getMeta();
}
public Meta resetRun() {
return respond(requestActionBase("numass.run", "reset")
.build()).getMeta();
}
public Meta sendNumassData(String path, String fileName) {
try {
File file = new File(fileName);
ByteBuffer buffer;
String zipName = null;
if (file.isDirectory()) {
File tmpFile = File.createTempFile(file.getName(), NumassStorage.NUMASS_ZIP_EXTENSION);
tmpFile.deleteOnExit();
ZipUtil.pack(file, tmpFile);
zipName = file.getName();
file = tmpFile;
}
if (file.toString().endsWith(NumassStorage.NUMASS_ZIP_EXTENSION)) {
FileChannel channel = FileChannel.open(file.toPath(), StandardOpenOption.READ);
buffer = ByteBuffer.allocate((int) channel.size());
channel.read(buffer);
if (zipName == null) {
zipName = file.getName().replace(NumassStorage.NUMASS_ZIP_EXTENSION, "");
}
} else {
return getErrorMeta(new FileNotFoundException(fileName));
}
Envelope bin = requestBase("numass.data")
.setMetaValue("action", "push")
.setMetaValue("path", path)
.setMetaValue("name", zipName)
.data(buffer)
.build();
return respond(bin).getMeta();
} catch (IOException ex) {
return getErrorMeta(ex);
}
}
/**
* Get state map for given state names from the root state loader. If
* stateNames is empty, return all states.
*
* @param stateNames
* @return
*/
public Map<String, Value> getStates(String... stateNames) {
EnvelopeBuilder env = requestActionBase("numass.state", "get");
if (stateNames.length > 0) {
env.setMetaValue("name", Arrays.asList(stateNames));
}
Meta response = respond(env.build()).getMeta();
if (response.getBoolean("success", true)) {
Map<String, Value> res = new HashMap<>();
response.getMetaList("state").forEach((stateMeta) -> {
res.put(stateMeta.getString("name"), stateMeta.getValue("value"));
});
return res;
} else {
return null;
}
}
/**
* Set a single state and return resulting envelope meta
*
* @param name
* @param value
* @return
*/
public Meta setState(String name, Object value) {
EnvelopeBuilder env = requestActionBase("numass.state", "set");
env.putMetaNode(new MetaBuilder("state")
.setValue("name", name)
.setValue("value", value)
.build());
return respond(env.build()).getMeta();
}
/**
* Set states and return resulting meta
*
* @param stateMap
* @return
*/
public Meta setState(Map<String, Value> stateMap) {
EnvelopeBuilder env = requestActionBase("numass.state", "set");
stateMap.entrySet().forEach((state) -> {
env.putMetaNode(new MetaBuilder("state")
.setValue("name", state.getKey())
.setValue("value", state.getValue())
.build());
});
return respond(env.build()).getMeta();
}
public Meta addNote(String text, Instant time) {
EnvelopeBuilder env = requestActionBase("numass.notes", "push");
env.setMetaValue("note.text", text);
if (time != null) {
env.setMetaValue("note.time", time);
}
return respond(env.build()).getMeta();
}
public Meta getNotes(int limit) {
EnvelopeBuilder env = requestActionBase("numass.notes", "pull");
if (limit > 0) {
env.setMetaValue("limit", limit);
}
return respond(env.build()).getMeta();
}
/**
* Create remote storage with given meta
*
* @param path full path relative to root storage
* @param meta
* @return
*/
public Envelope createStorage(String path, Meta meta) {
throw new UnsupportedOperationException();
}
/**
* Create remote loader
*
* @param shelf full path to the shelf
* @param name the name of the loader
* @param meta loader meta
* @return
*/
public Envelope createLoader(String shelf, String name, Meta meta) {
throw new UnsupportedOperationException();
}
/**
* Send points to existing point loader
*
* @param shelf
* @param loaderName
* @param points
* @return
*/
public Envelope sendDataPoints(String shelf, String loaderName, Collection<Values> points) {
throw new UnsupportedOperationException();
}
}

View File

@ -16,10 +16,13 @@ allprojects {
} }
dependencies { dependencies {
compile project(':numass-client')
compile "hep.dataforge:plots-jfc" // project(':dataforge-plots:plots-jfc') compile "hep.dataforge:plots-jfc" // project(':dataforge-plots:plots-jfc')
compile "hep.dataforge:dataforge-control" //project(':dataforge-control') compile "hep.dataforge:dataforge-control" //project(':dataforge-control')
compile "hep.dataforge:dataforge-gui" compile "hep.dataforge:dataforge-gui"
// https://mvnrepository.com/artifact/commons-cli/commons-cli
compile group: 'commons-cli', name: 'commons-cli', version: '1.4'
} }
task installAll(type: Copy) { task installAll(type: Copy) {

View File

@ -23,7 +23,7 @@ configurations {
dependencies { dependencies {
//DataForge dependencies //DataForge dependencies
compile project(':numass-control') compile project(':numass-control')
compile project(':numass-server') //compile project(':numass-server')
// optional device classpath // optional device classpath
devices project(':numass-control:cryotemp') devices project(':numass-control:cryotemp')

View File

@ -18,4 +18,5 @@ version = "0.1.0"
dependencies { dependencies {
compile project(':numass-control') compile project(':numass-control')
compile project(':numass-core')
} }

View File

@ -86,7 +86,7 @@ class MspDisplay() : DeviceDisplayFX<MspDevice>(), NamedValueListener {
.setValue("xAxis.type", "time") .setValue("xAxis.type", "time")
JFreeChartFrame(basePlotConfig).apply { JFreeChartFrame().apply { configure(basePlotConfig) }.apply {
PlotUtils.setXAxis(this, "timestamp", "", "time") PlotUtils.setXAxis(this, "timestamp", "", "time")
configure(plotFrameMeta) configure(plotFrameMeta)
} }

View File

@ -12,13 +12,13 @@ import hep.dataforge.meta.Meta
import hep.dataforge.nullable import hep.dataforge.nullable
import hep.dataforge.storage.commons.StorageConnection import hep.dataforge.storage.commons.StorageConnection
import hep.dataforge.storage.commons.StorageManager import hep.dataforge.storage.commons.StorageManager
import inr.numass.client.ClientUtils
import javafx.application.Application import javafx.application.Application
import javafx.stage.Stage import javafx.stage.Stage
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Paths import java.nio.file.Paths
/** /**
* Created by darksnake on 08-May-17. * Created by darksnake on 08-May-17.
*/ */
@ -26,9 +26,19 @@ const val DEFAULT_CONFIG_LOCATION = "./numass-control.xml"
//val STORING_STATE = "storing" //val STORING_STATE = "storing"
//val dfIcon: Image = Image(Global::class.java.getResourceAsStream("/img/df.png")) //val dfIcon: Image = Image(Global::class.java.getResourceAsStream("/img/df.png"))
fun getRunName(config: Meta): String {
return if (config.hasValue("numass.run")) {
config.getString("numass.run")
} else if (config.hasMeta("numass.server")) {
TODO("Not implemented")
} else {
""
}
}
/** /**
* Create a single or multiple storage connections for a device * Create a single or multiple storage connections for a device
* @param device * @param device
* * * *
* @param config * @param config
@ -36,7 +46,7 @@ const val DEFAULT_CONFIG_LOCATION = "./numass-control.xml"
fun connectStorage(device: Device, config: Meta) { fun connectStorage(device: Device, config: Meta) {
//TODO add on reset listener //TODO add on reset listener
if (config.hasMeta("storage") && device.acceptsRole(Roles.STORAGE_ROLE)) { if (config.hasMeta("storage") && device.acceptsRole(Roles.STORAGE_ROLE)) {
val numassRun = ClientUtils.getRunName(config) val numassRun = getRunName(config)
config.getMetaList("storage").forEach { node -> config.getMetaList("storage").forEach { node ->
device.context.logger.info("Creating storage for device with getMeta: {}", node) device.context.logger.info("Creating storage for device with getMeta: {}", node)
//building storage in a separate thread //building storage in a separate thread

View File

@ -8,6 +8,7 @@ import hep.dataforge.plots.jfreechart.JFreeChartPlugin
import inr.numass.NumassPlugin import inr.numass.NumassPlugin
import inr.numass.actions.TimeAnalyzerAction import inr.numass.actions.TimeAnalyzerAction
import inr.numass.data.NumassDataUtils import inr.numass.data.NumassDataUtils
import inr.numass.data.analyzers.TimeAnalyzer
import inr.numass.data.api.NumassPoint import inr.numass.data.api.NumassPoint
import inr.numass.data.api.NumassSet import inr.numass.data.api.NumassSet
import inr.numass.data.api.SimpleNumassPoint import inr.numass.data.api.SimpleNumassPoint
@ -18,8 +19,8 @@ fun main(args: Array<String>) {
val context = buildContext("NUMASS", NumassPlugin::class.java, JFreeChartPlugin::class.java) { val context = buildContext("NUMASS", NumassPlugin::class.java, JFreeChartPlugin::class.java) {
output = FXOutputManager() output = FXOutputManager()
rootDir = "D:\\Work\\Numass\\sterile2017_11" rootDir = "D:\\Work\\Numass\\sterile2017_05"
dataDir = "D:\\Work\\Numass\\data\\2017_11" dataDir = "D:\\Work\\Numass\\data\\2017_05"
} }
val storage = NumassDirectory.read(context, "Fill_2")!! val storage = NumassDirectory.read(context, "Fill_2")!!
@ -27,19 +28,19 @@ fun main(args: Array<String>) {
val meta = buildMeta { val meta = buildMeta {
"t0" to 3000 "t0" to 3000
"binNum" to 200 "binNum" to 200
"t0Step" to 600 "t0Step" to 100
//"chunkSize" to 3000 "chunkSize" to 3000
//"mean" to TimeAnalyzer.AveragingMethod.ARITHMETIC "mean" to TimeAnalyzer.AveragingMethod.ARITHMETIC
//"separateParallelBlocks" to true //"separateParallelBlocks" to true
"window" to { "window" to {
"lo" to 400 "lo" to 0
"up" to 4000 "up" to 4000
} }
//"plot.showErrors" to false //"plot.showErrors" to false
} }
//def sets = ((2..14) + (22..31)).collect { "set_$it" } //def sets = ((2..14) + (22..31)).collect { "set_$it" }
val sets = (22..22).map { "set_$it" } val sets = (2..12).map { "set_$it" }
//def sets = (16..31).collect { "set_$it" } //def sets = (16..31).collect { "set_$it" }
//def sets = (20..28).collect { "set_$it" } //def sets = (20..28).collect { "set_$it" }
@ -49,7 +50,7 @@ fun main(args: Array<String>) {
val all = NumassDataUtils.join("sum", loaders) val all = NumassDataUtils.join("sum", loaders)
val hvs = listOf(14000.0, 15000.0)//, 15000d, 15200d, 15400d, 15600d, 15800d] val hvs = listOf(14500.0)//, 15000d, 15200d, 15400d, 15600d, 15800d]
//listOf(18500.0, 18600.0, 18995.0, 19000.0) //listOf(18500.0, 18600.0, 18995.0, 19000.0)
val data = DataSet.edit(NumassPoint::class).apply { val data = DataSet.edit(NumassPoint::class).apply {

View File

@ -1,32 +0,0 @@
apply plugin: 'groovy'
description = "Test module for numass client and server"
task runServer(type: JavaExec) {
description 'Start numass server locally'
// Set main property to name of Groovy script class.
main = 'inr.numass.scripts.TestServer'
// Set classpath for running the Groovy script.
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
}
task runClient(type: JavaExec) {
description 'Start numass client locally'
// Set main property to name of Groovy script class.
main = 'inr.numass.scripts.TestClient'
// Set classpath for running the Groovy script.
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
}
dependencies {
compile project(':numass-client')
compile project(':numass-server')
compile "hep.dataforge:grind" //project(':dataforge-grind')
}

View File

@ -1,27 +0,0 @@
/*
* Copyright 2015 Alexander Nozik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import static groovy.io.FileType.FILES
def fixStampEndings(File directory){
directory.eachFileRecurse(FILES){
byte[] bytes = it.bytes
bytes[26] = '!'
bytes[27] = '#'
it.bytes = bytes
}
}
fixStampEndings(new File("C:\\Users\\darksnake\\Dropbox\\PlayGround\\data-test\\"))

View File

@ -1,12 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.scripts
import inr.numass.client.NumassClient
NumassClient client = new NumassClient("192.168.111.1", 8335);
print client.startRun("2016_04")

View File

@ -1,36 +0,0 @@
/*
* Copyright 2015 Alexander Nozik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package inr.numass.scripts
import hep.dataforge.storage.commons.StorageManager
new StorageManager().startGlobal();
println "Starting Numass test client..."
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
while(line == null || !line.startsWith("exit")){
// print ">"
line = br.readLine();
if(line!= null && !line.startsWith("exit")){
Cli.runComand("127.0.0.1", 8335, line.split(" "));
}
}

View File

@ -1,36 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.scripts
import hep.dataforge.io.JSONMetaWriter
import hep.dataforge.io.MetaStreamWriter
import hep.dataforge.meta.Meta
import hep.dataforge.storage.commons.StorageManager
import inr.numass.client.NumassClient
new StorageManager().startGlobal();
new NumassClient("127.0.0.1",8335).withCloseable{
MetaStreamWriter writer = JSONMetaWriter.INSTANCE
Meta startRun = it.startRun("test")
println writer.writeString(startRun);
Meta run = it.getCurrentRun();
println writer.writeString(run);
Meta response = it.sendNumassData("C:\\Users\\darksnake\\Dropbox\\PlayGround\\data-test\\zip\\20150703143643_1.nm.zip");
println writer.writeString(response);
response = it.sendNumassData("C:\\Users\\darksnake\\Dropbox\\PlayGround\\data-test\\20150703144707_2");
println writer.writeString(response);
}

View File

@ -1,14 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.scripts
import hep.dataforge.storage.commons.StorageManager
import inr.numass.client.NumassClient
new StorageManager().startGlobal();
NumassClient.runComand("127.0.0.1", 8336, "addNote", "This is my note with <strong>html</strong>");

View File

@ -1,37 +0,0 @@
/*
* Copyright 2015 Alexander Nozik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package inr.numass.scripts
import hep.dataforge.storage.commons.StorageManager
import inr.numass.client.NumassClient
new StorageManager().startGlobal();
println "Starting Numass test client..."
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
while(line == null || !line.startsWith("exit")){
// print ">"
line = br.readLine();
if(!line.startsWith("exit")){
NumassClient.runComand("192.168.111.1", 8335, line.split(" "));
}
}

View File

@ -1,44 +0,0 @@
/*
* Copyright 2015 Alexander Nozik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package inr.numass.scripts
import hep.dataforge.meta.Meta
import inr.numass.data.storage.NumassStorage
import inr.numass.server.NumassServer
String path = "D:\\Work\\Numass\\data\\2016_10\\"
//FileObject file = VFSUtils.getLocalFile(new File(path))
NumassStorage storage = NumassStorage.buildLocalNumassRoot(new File(path), true, true);
println "Starting test numass listener in " + path
NumassServer listener = new NumassServer(storage, Meta.empty());
listener.open()
String stopLine = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
while (stopLine == null || !stopLine.startsWith("exit")) {
// print ">"
stopLine = br.readLine();
}
listener.close()
println "Stopping test numass listener"

View File

@ -1,32 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.scripts
import hep.dataforge.io.JSONMetaWriter
import hep.dataforge.io.MetaStreamWriter
import hep.dataforge.meta.Meta
import hep.dataforge.storage.commons.StorageManager
import inr.numass.client.NumassClient
new StorageManager().startGlobal();
new NumassClient("127.0.0.1",8335).withCloseable{
MetaStreamWriter writer = JSONMetaWriter.INSTANCE
Meta startRun = it.startRun("test")
println writer.writeString(startRun);
Meta set1 = it.setState("myState", 112);
println writer.writeString(set1);
Meta set2 = it.setState("otherState.property", ["a", "b", "c"])
println it.getStates()
}

View File

@ -1,56 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package inr.numass.scripts
import hep.dataforge.io.JSONMetaWriter
import hep.dataforge.io.MetaStreamWriter
import hep.dataforge.io.envelopes.Envelope
import hep.dataforge.meta.Meta
import hep.dataforge.meta.MetaBuilder
import hep.dataforge.storage.commons.LoaderFactory
import hep.dataforge.storage.commons.StorageManager
import hep.dataforge.values.ValueMap
import inr.numass.client.NumassClient
new StorageManager().startGlobal();
new NumassClient("127.0.0.1",8335).withCloseable{
MetaStreamWriter writer = JSONMetaWriter.INSTANCE
Meta startRun = it.startRun("test")
println writer.writeString(startRun);
MetaBuilder target = new MetaBuilder("target")
.setValue("type","loader")
.setValue("name", "testPointLoader")
.putNode(LoaderFactory.buildTableLoaderMeta("testPointLoader","a", DataFormat.forNames("a", "b", "c")).rename("meta"))
MetaBuilder data = new MetaBuilder("data");
String[] names = ["a","b","c"]
for(int i = 0; i<5; i++){
data.putNode(DataPoint.write(new ValueMap(names,i, 2*i,3*i)));
}
Envelope bin = it.requestBase("numass.storage")
.putMetaValue("action","push")
.putMetaNode(target)
.putMetaNode(data)
.build();
def response = it.respond(bin);
println writer.writeString(response.getMeta());
}

View File

@ -5,17 +5,13 @@ include ":numass-control:cryotemp"
include ":numass-control:magnet" include ":numass-control:magnet"
include ":numass-control:msp" include ":numass-control:msp"
include ":numass-control:vac" include ":numass-control:vac"
include ":numass-control:control-room" //include ":numass-control:control-room"
include ":numass-control:dante" include ":numass-control:dante"
// //
include ":numass-main" include ":numass-main"
// //
include ":numass-core" include ":numass-core"
include ":numass-client" //include ":numass-server"
include ":numass-server"
include ":numass-server"
//include ":numass-web"
include ":numass-test"
// //
include ":numass-viewer" include ":numass-viewer"