哪位给个例子,或者API,帮帮忙,折磨一天了。谢谢各位了。

解决方案 »

  1.   

    https://blog.csdn.net/MickeyTaKigin/article/details/77803736
      

  2.   

    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