mirror of
https://github.com/luoyan35714/OPC_Client.git
synced 2026-05-06 00:00:04 +08:00
Add the Utgard resources
This commit is contained in:
+2
-9
@@ -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) {
|
||||
|
||||
}
|
||||
|
||||
+118
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+40
-41
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-9
@@ -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();
|
||||
}
|
||||
}
|
||||
-38
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user