80,471
社区成员




private void write(final int data) {
new Thread(new Runnable() {
@Override
public void run() {
if (master == null) {
if (!initModbus()) {
return;
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
statetextView.setText("指令状态:失败");
}
});
}
WriteRegisterRequest writeRegisterRequest = null;
try {
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("System", 0);
int slaveId = sharedPreferences.getInt("Slave", 2);
int address = sharedPreferences.getInt("Register", 1);
writeRegisterRequest = new WriteRegisterRequest(slaveId, address, data);
WriteRegisterResponse writeRegisterResponse = (WriteRegisterResponse) master.send(writeRegisterRequest);
if (writeRegisterResponse.isException()) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
statetextView.setText("指令状态:失败");
}
});
Log.v("exception", writeRegisterResponse.getExceptionMessage());
} else {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
statetextView.setText("指令状态:成功");
}
});
Log.v("write", "succeed");
}
} catch (ModbusTransportException e) {
e.printStackTrace();
} finally {
master.destroy();
}
}
}).start();
}
private boolean initModbus() {
ModbusFactory factory = new ModbusFactory();
IpParameters params = new IpParameters();
//设置IP地址以及端口号
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("System", 0);
String IP = sharedPreferences.getString("IP", "192.168.1.21");
if (IP == null) {
Toast.makeText(getActivity(), "未设置IP,请先设置IP", Toast.LENGTH_LONG).show();
return false;
}
params.setHost(IP);
params.setPort(502);
// params.setEncapsulated(false);
//创建ModbusMaster以及设置超时时间
master = factory.createTcpMaster(params, true);
master.setTimeout(2000);
master.setRetries(1);
try {
master.init();
return true;
} catch (Exception e) {
Log.e("modbus", " exception : " + e.toString());
return false;
}
}
https://download.csdn.net/download/qq_33813665/10024698