|
|
@@ -280,7 +280,6 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
new ExceptionServer(address, length, new IExceptionHandling() { |
|
|
|
@Override |
|
|
|
public void onSuccess(int add) throws InterruptedException, ExecutionException, ModbusTransportException, ModbusInitException, ModbusRespException { |
|
|
|
IsConnected = true; |
|
|
|
ReadCoilsResponse res = mw.syncReadCoil(SlaveId, add, length); |
|
|
|
boolean[] data = res.getBooleanData(); |
|
|
|
boolean[] result = Arrays.copyOfRange(data, 0, length); |
|
|
@@ -288,6 +287,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
LogUtils.d(TAG+"ReadBool address="+address+" 读操作 成功:data="+data.toString()+" bytes="+result); |
|
|
|
} |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(result)); |
|
|
|
IsConnected = true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@@ -329,6 +329,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
boolean[] data = res.getBooleanData(); |
|
|
|
boolean[] result = Arrays.copyOfRange(data, 0, length); |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(result)); |
|
|
|
IsConnected = true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@@ -370,6 +371,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
} |
|
|
|
if (data.length == length) { |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(data)); |
|
|
|
IsConnected = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -409,6 +411,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
int[] tempValues= IntLib.ToInts(res.getData(),ReadDataFormat); |
|
|
|
if(tempValues.length==length){ |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(tempValues)); |
|
|
|
IsConnected = true; |
|
|
|
}else{ |
|
|
|
resultValue.set(OperateResultT.CreateFailedT(address+",读取失败,返回长度和实际读取长度不匹配")); |
|
|
|
} |
|
|
@@ -458,6 +461,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
if(data.length==tempLength){ |
|
|
|
byte[] result = Arrays.copyOfRange(data, 0, length); |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(result)); |
|
|
|
IsConnected = true; |
|
|
|
}else{ |
|
|
|
resultValue.set(OperateResultT.CreateFailedT(address+",读取失败,返回长度和实际读取长度不匹配")); |
|
|
|
} |
|
|
@@ -485,6 +489,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
try { |
|
|
|
if (data.length ==length*2) { |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(new String(data, "UTF-8").trim())); |
|
|
|
IsConnected = true; |
|
|
|
} |
|
|
|
} catch (UnsupportedEncodingException ex) { |
|
|
|
resultValue.set(OperateResultT.CreateFailedT(address+",读取失败,字符串解析失败:"+ex.toString())); |
|
|
@@ -512,6 +517,7 @@ public class ModbusMaster implements IRead,IWrite ,IModbusMaster{ |
|
|
|
float[] tempValues = FloatLib.ToFloats(res.getData(),ReadDataFormat); |
|
|
|
if (tempValues.length == length) { |
|
|
|
resultValue.set(OperateResultT.CreateSuccess(tempValues)); |
|
|
|
IsConnected = true; |
|
|
|
}else{ |
|
|
|
resultValue.set(OperateResultT.CreateFailedT(address+",读取失败,返回长度和实际读取长度不匹配")); |
|
|
|
} |
|
|
|