代码更新
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package org.nl.acs.device_driver;
|
||||
|
||||
public interface ScannerDeviceDriver extends DeviceDriver {
|
||||
void writeBarcode(String var1) throws Exception;
|
||||
void writeBarcode(String var1) ;
|
||||
|
||||
void cleanBarcode() throws Exception;
|
||||
void cleanBarcode() ;
|
||||
|
||||
String readBarcode() throws Exception;
|
||||
String readBarcode();
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
|
||||
Boolean requireSucess = false;
|
||||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
public void execute() {
|
||||
String message = null;
|
||||
|
||||
device_code = this.getDeviceCode();
|
||||
@@ -183,7 +183,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean instruction_require() throws Exception {
|
||||
public synchronized boolean instruction_require(){
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -264,7 +264,13 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
|
||||
instdto.setPriority(priority);
|
||||
instdto.setInstruction_status("0");
|
||||
instdto.setExecute_device_code(start_point_code);
|
||||
instructionService.create(instdto);
|
||||
try {
|
||||
instructionService.create(instdto);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("指令创建失败!",e.getMessage());
|
||||
return false;
|
||||
}
|
||||
//创建指令后修改任务状态
|
||||
task.setTask_status("1");
|
||||
taskserver.update(task);
|
||||
|
||||
@@ -137,7 +137,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
public void execute() {
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
@@ -512,7 +512,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
/**
|
||||
* 请求指令
|
||||
*/
|
||||
public synchronized boolean instruction_require() throws Exception {
|
||||
public synchronized boolean instruction_require() {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -632,7 +632,13 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
instdto.setPriority(priority);
|
||||
instdto.setInstruction_status("0");
|
||||
instdto.setExecute_device_code(start_point_code);
|
||||
instructionService.create(instdto);
|
||||
try {
|
||||
instructionService.create(instdto);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("指令创建失败!",e.getMessage());
|
||||
return false;
|
||||
}
|
||||
//创建指令后修改任务状态
|
||||
taskdto.setTask_status("1");
|
||||
taskserver.update(taskdto);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -140,7 +140,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
|
||||
|
||||
|
||||
@Override
|
||||
public synchronized void execute() throws Exception {
|
||||
public synchronized void execute(){
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
|
||||
@@ -141,7 +141,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
public void execute() {
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
@@ -371,7 +371,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
|
||||
|
||||
}
|
||||
|
||||
public boolean instruction_apply() throws Exception {
|
||||
public boolean instruction_apply() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -433,7 +433,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
|
||||
|
||||
}
|
||||
|
||||
public synchronized boolean apply_InEmpty() throws Exception {
|
||||
public synchronized boolean apply_InEmpty(){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
public void execute() {
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
mode = this.itemProtocol.getMode();
|
||||
@@ -614,12 +614,12 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
|
||||
this.control(itemMap);
|
||||
}
|
||||
|
||||
public boolean instruction_require(String container_code) throws Exception {
|
||||
public boolean instruction_require(String container_code) {
|
||||
return instruction_require(container_code, WcsConfig.task_container_type_default_desc);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public synchronized boolean instruction_apply(String container_code) throws Exception {
|
||||
public synchronized boolean instruction_apply(String container_code) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -725,7 +725,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp
|
||||
* @param container_type
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public synchronized boolean instruction_require(String container_code, String container_type) throws Exception {
|
||||
public synchronized boolean instruction_require(String container_code, String container_type) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
|
||||
@@ -132,39 +132,48 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public String barcode() throws Exception {
|
||||
public String barcode() {
|
||||
ScannerDeviceDriver scanner = this.getScanner();
|
||||
return scanner.readBarcode();
|
||||
}
|
||||
|
||||
public void clearBarcode() throws Exception {
|
||||
public void clearBarcode() {
|
||||
ScannerDeviceDriver scanner = this.getScanner();
|
||||
scanner.cleanBarcode();
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "清理条码");
|
||||
}
|
||||
public synchronized boolean finish_instruction() throws Exception {
|
||||
instructionService.finish(inst);
|
||||
public synchronized boolean finish_instruction(){
|
||||
try {
|
||||
instructionService.finish(inst);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private ScannerDeviceDriver getScanner() throws Exception {
|
||||
private ScannerDeviceDriver getScanner() {
|
||||
String scanner_code = (String) this.getDevice().getExtraValue().get(StandardConveyorWithScannerConfig.relation_scanner);
|
||||
if (StrUtil.isEmpty(scanner_code)) {
|
||||
throw new Exception("未配置读码器");
|
||||
log.error("未配置读码器");
|
||||
// throw new Exception("未配置读码器");
|
||||
} else {
|
||||
Device device = deviceAppservice.findDeviceByCode(scanner_code);
|
||||
if (device == null) {
|
||||
throw new Exception("无设备:" + scanner_code);
|
||||
// throw new Exception("无设备:" + scanner_code);
|
||||
log.error("无设备:" + scanner_code);
|
||||
} else {
|
||||
DeviceDriver deviceDriver = device.getDeviceDriver();
|
||||
if (!(deviceDriver instanceof ScannerDeviceDriver)) {
|
||||
throw new Exception("扫码器类型不对,不是ScannerDeviceDriver");
|
||||
// throw new Exception("扫码器类型不对,不是ScannerDeviceDriver");
|
||||
log.error("扫码器类型不对,不是ScannerDeviceDriver");
|
||||
} else {
|
||||
ScannerDeviceDriver driver = (ScannerDeviceDriver) deviceDriver;
|
||||
return driver;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -174,7 +183,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
public void execute(){
|
||||
String message = null;
|
||||
try {
|
||||
device_code = this.getDeviceCode();
|
||||
@@ -414,11 +423,11 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
this.control(itemMap);
|
||||
}
|
||||
|
||||
public boolean instruction_require(String container_code) throws Exception {
|
||||
public boolean instruction_require(String container_code) {
|
||||
return instruction_require(container_code, WcsConfig.task_container_type_default_desc);
|
||||
}
|
||||
|
||||
public synchronized boolean instruction_apply(String container_code) throws Exception {
|
||||
public synchronized boolean instruction_apply(String container_code) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -480,7 +489,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
* @param container_code
|
||||
* @param container_type
|
||||
*/
|
||||
public synchronized boolean instruction_require(String container_code, String container_type) throws Exception {
|
||||
public synchronized boolean instruction_require(String container_code, String container_type) {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -646,7 +655,13 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
||||
instdto.setPriority(priority);
|
||||
instdto.setInstruction_status("0");
|
||||
instdto.setExecute_device_code(start_point_code);
|
||||
instructionService.create(instdto);
|
||||
try {
|
||||
instructionService.create(instdto);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("指令创建失败!",e.getMessage());
|
||||
return false;
|
||||
}
|
||||
//创建指令后修改任务状态
|
||||
taskdto.setTask_status("1");
|
||||
taskserver.update(taskdto);
|
||||
|
||||
@@ -12,71 +12,71 @@ import org.nl.acs.socket.SocketConfig;
|
||||
import org.nl.acs.udw.UnifiedDataAccessor;
|
||||
import org.nl.acs.udw.UnifiedDataAccessorFactory;
|
||||
|
||||
/**
|
||||
* 标准版扫码器
|
||||
*/
|
||||
/** 标准版扫码器 */
|
||||
@Slf4j
|
||||
@Data
|
||||
public class StandardScannerDeviceDriver extends AbstractDeviceDriver implements ScannerDeviceDriver, DeviceDriver, DeviceStageMonitor {
|
||||
public class StandardScannerDeviceDriver extends AbstractDeviceDriver
|
||||
implements ScannerDeviceDriver, DeviceDriver, DeviceStageMonitor {
|
||||
|
||||
UnifiedDataAccessor accessor_value;
|
||||
UnifiedDataAccessor accessor_value;
|
||||
|
||||
public StandardScannerDeviceDriver() {
|
||||
this.accessor_value = UnifiedDataAccessorFactory.getAccessor(SocketConfig.udw_unit_key);
|
||||
public StandardScannerDeviceDriver() {
|
||||
this.accessor_value = UnifiedDataAccessorFactory.getAccessor(SocketConfig.udw_unit_key);
|
||||
}
|
||||
|
||||
public String getIp() {
|
||||
String ip = (String) this.getDevice().getExtraValue().get("scannerIP");
|
||||
return StrUtil.isEmpty(ip) ? null : ip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readBarcode() {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
// throw new Exception("ip未配置");
|
||||
log.error("ip未配置");
|
||||
} else {
|
||||
String result = (String) this.accessor_value.getValue(this.getIp());
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getIp() {
|
||||
String ip = (String) this.getDevice().getExtraValue().get("scannerIP");
|
||||
return StrUtil.isEmpty(ip) ? null : ip;
|
||||
@Override
|
||||
public void writeBarcode(String barcode) {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
// throw new Exception("ip未配置");
|
||||
log.error("ip未配置");
|
||||
} else {
|
||||
this.accessor_value.setValueWithPersistence(this.getIp(), barcode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readBarcode() throws Exception {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
throw new Exception("ip未配置");
|
||||
} else {
|
||||
String result = (String) this.accessor_value.getValue(this.getIp());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public void cleanBarcode() {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
log.error("ip未配置");
|
||||
// throw new Exception("ip未配置");
|
||||
} else {
|
||||
this.accessor_value.setValueWithPersistence(this.getIp(), (Object) null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeBarcode(String barcode) throws Exception {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
throw new Exception("ip未配置");
|
||||
} else {
|
||||
this.accessor_value.setValueWithPersistence(this.getIp(), barcode);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public JSONObject getDeviceStatusName() throws Exception {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("device_name", this.getDevice().getDevice_name());
|
||||
jo.put("isOnline", true);
|
||||
jo.put("device_type", device.getDevice_type());
|
||||
// 点击弹出
|
||||
jo.put("is_click", true);
|
||||
jo.put("ip", this.getIp());
|
||||
jo.put("container", StrUtil.isEmpty(this.readBarcode()) ? "" : this.readBarcode());
|
||||
return jo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanBarcode() throws Exception {
|
||||
String ip = this.getIp();
|
||||
if (StrUtil.isEmpty(ip)) {
|
||||
throw new Exception("ip未配置");
|
||||
} else {
|
||||
this.accessor_value.setValueWithPersistence(this.getIp(), (Object) null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getDeviceStatusName() throws Exception {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("device_name", this.getDevice().getDevice_name());
|
||||
jo.put("isOnline", true);
|
||||
jo.put("device_type", device.getDevice_type());
|
||||
//点击弹出
|
||||
jo.put("is_click", true);
|
||||
jo.put("ip", this.getIp());
|
||||
jo.put("container", StrUtil.isEmpty(this.readBarcode()) ? "" : this.readBarcode());
|
||||
return jo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDeviceStatus(JSONObject data) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public void setDeviceStatus(JSONObject data) {}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package org.nl.acs.device_driver.driver;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.acs.ext.wms.data.JsonUtl;
|
||||
import org.nl.acs.opc.OpcConfig;
|
||||
import org.nl.acs.opc.OpcServerService;
|
||||
import org.nl.acs.opc.OpcServerServiceImpl;
|
||||
import org.nl.acs.opc.WcsConfig;
|
||||
import org.nl.acs.udw.UnifiedDataAccessor;
|
||||
import org.nl.acs.udw.UnifiedDataAccessorFactory;
|
||||
import org.nl.acs.udw.UnifiedDataAppService;
|
||||
import org.nl.modules.wql.exception.WDKException;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
|
||||
@@ -40,21 +37,19 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc
|
||||
|
||||
ItemValue p2[];
|
||||
p2 = new ItemValue[itemValues.size()];
|
||||
int i=0;
|
||||
int i = 0;
|
||||
while (it.hasNext()) {
|
||||
Map.Entry<String, Object> entry = it.next();
|
||||
System.out.println(entry.getKey() + ":" + entry.getValue());
|
||||
p2[i] = new ItemValue();
|
||||
p2[i].setItem_code(entry.getKey());
|
||||
p2[i].setItem_value((String) entry.getValue());
|
||||
p2[i].setItem_value( entry.getValue());
|
||||
i++;
|
||||
}
|
||||
|
||||
return this.control(p2);
|
||||
return this.control(p2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean control(ItemValue[] itemValues) {
|
||||
if (itemValues != null && itemValues.length != 0) {
|
||||
String this_items = JsonUtl.parseWithoutException(itemValues);
|
||||
@@ -72,9 +67,9 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc
|
||||
sb.append(":");
|
||||
sb.append(JsonUtl.parseWithoutException(udw_value));
|
||||
sb.append(";");
|
||||
// if (!need_write && !UnifiedDataAppService.isEquals(udw_value, write_value)) {
|
||||
// need_write = true;
|
||||
// }
|
||||
// if (!need_write && !UnifiedDataAppService.isEquals(udw_value, write_value)) {
|
||||
// need_write = true;
|
||||
// }
|
||||
}
|
||||
need_write = true;
|
||||
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package org.nl.acs.device_driver.driver;
|
||||
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
|
||||
public interface ExecutableDeviceDriver extends DeviceDriver {
|
||||
default void executeAuto() {
|
||||
try {
|
||||
this.execute();
|
||||
} catch (Throwable var6) {
|
||||
String message = "线程调用异常:" + var6.getMessage();
|
||||
} finally {
|
||||
}
|
||||
|
||||
default void executeAuto() {
|
||||
try {
|
||||
this.execute();
|
||||
} catch (Throwable var6) {
|
||||
String message = "线程调用异常:" + var6.getMessage();
|
||||
Log.error(message);
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
void execute() throws Exception;
|
||||
void execute();
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ public interface InstructionService {
|
||||
* @param dto
|
||||
* @throws Exception
|
||||
*/
|
||||
void createAgain(Instruction dto) throws Exception;
|
||||
void createAgain(Instruction dto) throws Exception ;
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
|
||||
@@ -637,7 +637,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finish(String id) throws Exception {
|
||||
public void finish(String id) {
|
||||
Instruction entity = this.findById(id);
|
||||
//if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
@@ -718,7 +718,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finish(Instruction dto) throws Exception {
|
||||
public void finish(Instruction dto) {
|
||||
String now = DateUtil.now();
|
||||
dto.setInstruction_status("2");
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
|
||||
@@ -773,7 +773,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finishAndCreateNextInst(Instruction dto) throws Exception {
|
||||
public void finishAndCreateNextInst(Instruction dto){
|
||||
dto = foramte(dto);
|
||||
String device_code = dto.getNext_device_code();
|
||||
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
|
||||
@@ -829,7 +829,12 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
instdto.setPriority(acsTask.getPriority());
|
||||
instdto.setInstruction_status("0");
|
||||
instdto.setExecute_device_code(dto.getNext_device_code());
|
||||
this.create(instdto);
|
||||
try {
|
||||
this.create(instdto);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("完成并创建下一条指令",e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -128,7 +128,9 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn
|
||||
try {
|
||||
Server server = (Server) this.servers.get(code);
|
||||
server.disconnect();
|
||||
} catch (Exception var3) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("清理server异常,",e.getMessage());
|
||||
}
|
||||
|
||||
this.servers.remove(code);
|
||||
|
||||
@@ -31,7 +31,7 @@ public class OpcUtl {
|
||||
|
||||
public static void writeValue(Group group, WriteRequest... requests) throws WDKException {
|
||||
try {
|
||||
Map e = group.write(requests);
|
||||
Map<Item, Integer> e = group.write(requests);
|
||||
boolean is_success = true;
|
||||
StringBuilder message = new StringBuilder();
|
||||
Iterator arg4 = e.keySet().iterator();
|
||||
@@ -59,6 +59,7 @@ public class OpcUtl {
|
||||
// group.write(requests);
|
||||
}
|
||||
} catch (JIException arg7) {
|
||||
log.info("下发信号失败:"+arg7.getMessage());
|
||||
throw new WDKException(arg7);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user