Android,通过modbus协议,读写plc寄存器值,急!! 哪位给个例子,或者API,帮帮忙,折磨一天了。谢谢各位了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 https://blog.csdn.net/MickeyTaKigin/article/details/77803736 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 各路神仙啊,Android怎么直接连接SQL Server? 紧急求助 官方android的SDK无法连接下载了,eclipse里面的ADT用官方的地址也不能下载了 请推荐一本系统讲解Android的书 如和实现这样一个效果(透明悬浮) 关于linearLayout 的setId()方法,, android 视频监控系统 思路 Service的方法继承问题 关于android流量统计的问题 对于新版QQ和当乐的侧滑导航方式,有什么思路么 一个连接服务器登陆的问题,急急急 js读取Android本地文件 关于安卓手机下实现虚拟摄像头
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