Add the Utgard resources

This commit is contained in:
luoyan35714
2014-12-10 17:42:02 +08:00
parent fd77b8e66e
commit 6d72a9b91e
137 changed files with 11245 additions and 230 deletions
@@ -47,8 +47,8 @@ public class SyncPerfTest {
OPCGroupStateMgt group = server.addGroup("", true, 1000, 1234, 0, 0.0f,
1033);
//group.getSyncIO().read(source, serverHandles)
// group.getSyncIO().read(source, serverHandles)
OPCITEMDEF item = new OPCITEMDEF();
item.setActive(true);
@@ -57,18 +57,13 @@ public class SyncPerfTest {
group.attach(new IOPCDataCallback() {
@Override
public void writeComplete(int arg0, int arg1, int arg2,
ResultSet<Integer> arg3) {
}
@Override
public void readComplete(int arg0, int arg1, int arg2, int arg3,
KeyedResultSet<Integer, ValueData> arg4) {
}
@Override
public void dataChange(int arg0, int arg1, int arg2, int arg3,
KeyedResultSet<Integer, ValueData> items) {
for (KeyedResult<Integer, ValueData> item : items) {
@@ -76,8 +71,6 @@ public class SyncPerfTest {
+ item.getValue());
}
}
@Override
public void cancelComplete(int arg0, int arg1) {
}
@@ -0,0 +1,118 @@
package com.freud.opc.utgard.perf;
import static com.freud.opc.utgard.perf.config.ConfigReader.config;
import java.util.Date;
import java.util.concurrent.Executors;
import org.apache.commons.logging.Log;
import org.apache.log4j.Logger;
import org.openscada.opc.dcom.common.KeyedResult;
import org.openscada.opc.dcom.common.KeyedResultSet;
import org.openscada.opc.dcom.common.ResultSet;
import org.openscada.opc.dcom.da.IOPCDataCallback;
import org.openscada.opc.dcom.da.OPCDATASOURCE;
import org.openscada.opc.dcom.da.ValueData;
import org.openscada.opc.dcom.da.impl.OPCAsyncIO2;
import org.openscada.opc.lib.common.NotConnectedException;
import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.Server;
public class AsyncMultiThreadTest {
private static final int count = 50;
public static void main(String[] args) throws Exception {
for (int i = 1; i <= count; i++) {
new Thread(new AsyncMulti(i)).start();
}
}
}
class AsyncMulti implements Runnable {
private static Logger LOGGER = Logger.getLogger(AsyncMulti.class);
private static final int NUMBER = 4000;
private int count_number;
private static long start;
private static long read;
private static long end;
public AsyncMulti(int count_number) {
this.count_number = count_number;
}
public void run() {
try {
start = System.currentTimeMillis();
LOGGER.info("Step-" + count_number * NUMBER + " site:");
LOGGER.info("StartDate[" + new Date() + "],CurrentMillis:" + start);
Server server = new Server(config(),
Executors.newScheduledThreadPool(4));
server.connect();
final Group group = server.addGroup("Group-" + count_number);
group.setActive(true);
Item[] items = new Item[NUMBER];
for (int i = (count_number - 1) * NUMBER; i < count_number * NUMBER; i++) {
items[i % NUMBER] = group.addItem("Random.Int" + i);
}
read = System.currentTimeMillis();
group.attach(new IOPCDataCallback() {
public void writeComplete(int arg0, int arg1, int arg2,
ResultSet<Integer> arg3) {
}
public void readComplete(int arg0, int arg1, int arg2,
int arg3, KeyedResultSet<Integer, ValueData> arg4) {
}
public void dataChange(int arg0, int arg1, int arg2, int arg3,
KeyedResultSet<Integer, ValueData> result) {
int i = 0;
for (final KeyedResult<Integer, ValueData> entry : result) {
i++;
}
if (i == NUMBER) {
end = System.currentTimeMillis();
LOGGER.info("Total Use[" + (end - start)
+ "] and Async Read[" + (end - read) + "]");
}
}
public void cancelComplete(int arg0, int arg1) {
}
});
final OPCAsyncIO2 async20 = group.getAsyncIO20();
if (async20 == null) {
throw new NotConnectedException();
}
group.getAsyncIO20().refresh(OPCDATASOURCE.OPC_DS_CACHE, 0);
group.setActive(false);
Thread.sleep(3000);
group.clear();
group.remove();
server.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -3,7 +3,6 @@ package com.freud.opc.utgard.perf;
import static com.freud.opc.utgard.perf.config.ConfigReader.config;
import java.util.Date;
import java.util.Iterator;
import java.util.concurrent.Executors;
import org.apache.log4j.Logger;
@@ -16,18 +15,19 @@ import org.openscada.opc.dcom.da.ValueData;
import org.openscada.opc.dcom.da.impl.OPCAsyncIO2;
import org.openscada.opc.lib.common.NotConnectedException;
import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.Server;
public class AsyncOPCPerfTest {
private static Logger LOGGER = Logger.getLogger(AsyncOPCPerfTest.class);
private static final int NUMBER = 10;
private static final int count = 1;
public static long start;
public static void main(String[] args) throws Exception {
private static final int count = 4000;
private static long start;
private static long read;
private static long end;
private static void testSteps(final int count) throws Exception {
start = System.currentTimeMillis();
LOGGER.info("Step-" + count + "W:");
@@ -38,62 +38,61 @@ public class AsyncOPCPerfTest {
server.connect();
Group group = server.addGroup("Freud");
// AsyncResult result = group.getAsyncIO20().read(transactionId,
// serverHandles);
Group group = server.addGroup("Group");
group.setActive(true);
Item[] items = new Item[count];
group.addItem("Read Error.Int1");
group.addItem("Random.Int1");
OPCAsyncIO2 async20 = group.getAsyncIO20();
if (async20 == null)
throw new NotConnectedException();
async20.refresh(OPCDATASOURCE.OPC_DS_DEVICE, 0);
for (int i = 1; i <= count; i++) {
items[i - 1] = group.addItem("Random.Int" + i);
}
read = System.currentTimeMillis();
group.attach(new IOPCDataCallback() {
@Override
public void writeComplete(int arg0, int arg1, int arg2,
ResultSet<Integer> arg3) {
System.out.println("Write Complete");
}
@Override
public void readComplete(int arg0, int arg1, int arg2, int arg3,
KeyedResultSet<Integer, ValueData> arg4) {
System.out.println("Read Complete");
}
@Override
public void dataChange(int arg0, int arg1, int arg2, int arg3,
KeyedResultSet<Integer, ValueData> arg4) {
Iterator<KeyedResult<Integer, ValueData>> ite = arg4.iterator();
KeyedResultSet<Integer, ValueData> result) {
int i = 0;
while (ite.hasNext()) {
KeyedResult<Integer, ValueData> value = ite.next();
System.out.println((++i) + "-" + value.getKey() + "--"
+ value.getValue().getValue());
for (final KeyedResult<Integer, ValueData> entry : result) {
i++;
}
if (i == count) {
end = System.currentTimeMillis();
LOGGER.info("Total Use[" + (end - start)
+ "] and Async Read[" + (end - read) + "]");
}
}
@Override
public void cancelComplete(int arg0, int arg1) {
System.out.println("Cancel Complete");
}
});
// AccessBase access = new SyncAccess(server, 1000);
//
// int limit = count * NUMBER;
// for (int i = 0; i < limit; i++) {
// access.addItem("Random.Real" + i, new DataCallBackListener(limit));
// }
//
// access.bind();
Thread.sleep(100000);
// access.unbind();
final OPCAsyncIO2 async20 = group.getAsyncIO20();
if (async20 == null) {
throw new NotConnectedException();
}
server.dispose();
group.getAsyncIO20().refresh(OPCDATASOURCE.OPC_DS_CACHE, 0);
group.setActive(false);
Thread.sleep(3000);
group.clear();
group.remove();
server.disconnect();
}
public static void main(String[] args) throws Exception {
testSteps(count);
}
}
@@ -3,7 +3,6 @@ package com.freud.opc.utgard.perf;
import static com.freud.opc.utgard.perf.config.ConfigReader.config;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.Executors;
import org.apache.log4j.Logger;
@@ -11,16 +10,14 @@ import org.openscada.opc.dcom.common.KeyedResultSet;
import org.openscada.opc.dcom.common.ResultSet;
import org.openscada.opc.dcom.da.IOPCDataCallback;
import org.openscada.opc.dcom.da.ValueData;
import org.openscada.opc.lib.da.Async20Access;
import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.Server;
public class PublishOPCPerfTest {
private static Logger LOGGER = Logger.getLogger(PublishOPCPerfTest.class);
private static final int NUMBER = 10000;
//private static final int NUMBER = 10000;
private static final int WAN_NUMBER = 1;
public static void main(String[] args) throws Exception {
@@ -42,27 +39,23 @@ public class PublishOPCPerfTest {
Group group = server.addGroup("Group");
Map<String, Item> map = group.addItems("Random.int" + 1);
//Map<String, Item> map = group.addItems("Random.int" + 1);
group.attach(new IOPCDataCallback() {
@Override
public void writeComplete(int i, int j, int k,
ResultSet<Integer> resultset) {
}
@Override
public void readComplete(int i, int j, int k, int l,
KeyedResultSet<Integer, ValueData> keyedresultset) {
}
@Override
public void dataChange(int i, int j, int k, int l,
KeyedResultSet<Integer, ValueData> keyedresultset) {
System.out.println("DataChanged");
}
@Override
public void cancelComplete(int i, int j) {
}
});
@@ -1,67 +0,0 @@
package com.freud.opc.utgard.perf;
import static com.freud.opc.utgard.perf.config.ConfigReader.config;
import java.util.Date;
import java.util.concurrent.Executors;
import org.apache.log4j.Logger;
import org.openscada.opc.dcom.common.KeyedResultSet;
import org.openscada.opc.dcom.common.ResultSet;
import org.openscada.opc.dcom.da.IOPCDataCallback;
import org.openscada.opc.dcom.da.ValueData;
import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.Server;
public class Test {
private static Logger LOGGER = Logger.getLogger(Test.class);
public static void main(String[] args) throws Exception {
long start = System.currentTimeMillis();
LOGGER.info("Step-" + 10 + "W:");
LOGGER.info("StartDate[" + new Date() + "],CurrentMillis:" + start);
Server server = new Server(config(),
Executors.newSingleThreadScheduledExecutor());
server.connect();
Group group = server.addGroup();
Item item = group.addItem("Random.int4");
group.setActive(true);
group.setActive(true, item);
group.attach(new IOPCDataCallback() {
@Override
public void writeComplete(int i, int j, int k,
ResultSet<Integer> resultset) {
System.out.println("Write Complete");
}
@Override
public void readComplete(int i, int j, int k, int l,
KeyedResultSet<Integer, ValueData> keyedresultset) {
System.out.println("Read Complete");
}
@Override
public void dataChange(int i, int j, int k, int l,
KeyedResultSet<Integer, ValueData> keyedresultset) {
System.out.println("Data change");
}
@Override
public void cancelComplete(int i, int j) {
System.out.println("Cancel Complete");
}
});
Thread.sleep(10 * 1000);
server.disconnect();
}
}
@@ -1,38 +0,0 @@
package com.freud.opc.utgard.perf.common;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import org.openscada.opc.lib.da.DataCallback;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.ItemState;
import com.freud.opc.utgard.perf.AsyncOPCPerfTest;
public class DataCallBackListener implements DataCallback {
private static Logger LOGGER = Logger.getLogger(DataCallBackListener.class);
private static List<String> items = new ArrayList<String>();
private int size;
public DataCallBackListener(int size) {
this.size = size;
}
@Override
public void changed(Item item, ItemState is) {
LOGGER.info("Item:[" + item.getId() + "], Value:[" + is.getValue()
+ "]");
items.add(item.getId());
if (items.size() == size) {
long end = System.currentTimeMillis();
LOGGER.info("EndDate[" + new Date() + "],CurrentMillis:" + end);
LOGGER.info("Total Spend:[" + (end - AsyncOPCPerfTest.start) + "]");
System.exit(0);
}
}
}