|
@@ -166,6 +166,7 @@ public class KepOpcServerUtil {
|
|
|
public static Result opcReadItemTree(DataSource dataSource) {
|
|
|
try {
|
|
|
Server server = KepOpcServerUtil.createServer(dataSource);
|
|
|
+ server.connect();
|
|
|
if (null == server.getServerState()) {
|
|
|
throw new CustomException(ResultEnum.NOT_FOUND.getRespCode(), "连接失败");
|
|
|
}
|
|
@@ -238,30 +239,25 @@ public class KepOpcServerUtil {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), ResultEnum.REQUEST_WRONGPARAMS.getRespMsg());
|
|
|
}
|
|
|
|
|
|
- public static Result opcReadItemListValue(ServerInformation serverInformation, List<ChannelSetting> channelSettingList) {
|
|
|
+ public static Result opcReadItemListValue(Server server, List<com.judong.chuanyiserver.entity.Item> itemList) {
|
|
|
try {
|
|
|
- String opcServerDaPoolKey = KepOpcServerUtil.generateOpcPoolKey(serverInformation);
|
|
|
- if (KepOpcServerUtil.validationKey(opcServerDaPoolKey)) {
|
|
|
- Server server = KepOpcServerUtil.getServer(opcServerDaPoolKey);
|
|
|
- if (null == server.getServerState()) {
|
|
|
- return Result.no(ResultEnum.NOT_FOUND.getRespCode(), "连接失败");
|
|
|
- }
|
|
|
- if (OPCSERVERSTATE.OPC_STATUS_RUNNING == server.getServerState().getServerState()) {
|
|
|
- Group group = server.addGroup();
|
|
|
- //循环读值需要使用到的
|
|
|
- final AccessBase access = new SyncAccess(server, 1000);
|
|
|
- //开始读值
|
|
|
- access.bind();
|
|
|
- //停止读值
|
|
|
- access.unbind();
|
|
|
- Iterator<ChannelSetting> iterator = channelSettingList.iterator();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Item item = group.addItem(iterator.next().getChannelName());
|
|
|
- Map<String, Object> value = getVal(item.read(true).getValue());
|
|
|
- }
|
|
|
- KepOpcServerUtil.returnServer(opcServerDaPoolKey, server);
|
|
|
- return Result.ok("");
|
|
|
+ if (null == server.getServerState()) {
|
|
|
+ return Result.no(ResultEnum.NOT_FOUND.getRespCode(), "连接失败");
|
|
|
+ }
|
|
|
+ if (OPCSERVERSTATE.OPC_STATUS_RUNNING == server.getServerState().getServerState()) {
|
|
|
+ Group group = server.addGroup();
|
|
|
+ //循环读值需要使用到的
|
|
|
+ final AccessBase access = new SyncAccess(server, 1000);
|
|
|
+ //开始读值
|
|
|
+ access.bind();
|
|
|
+ //停止读值
|
|
|
+ access.unbind();
|
|
|
+ Iterator<com.judong.chuanyiserver.entity.Item> iterator = itemList.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ Item item = group.addItem(iterator.next().getItemName());
|
|
|
+ Map<String, Object> value = getVal(item.read(true).getValue());
|
|
|
}
|
|
|
+ return Result.ok("");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
return Result.no(ResultEnum.REQUEST_TIME_OUT.getRespCode(), e.getMessage());
|