首页

android Modbus Rtu 通讯例子

java

2020-6-21

ModbusRtuConnect例子

package com.modbusconnect;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;

import com.modbusconnect.rtuwrapper.connection.ModbusRtuConnection;
import com.modbusconnect.rtuwrapper.io.ModbusRtuTransaction;
import com.modbusconnect.rtuwrapper.messaging.ModbusException;
import com.modbusconnect.rtuwrapper.messaging.ReadCoilRequest;
import com.modbusconnect.rtuwrapper.messaging.ReadCoilResponse;
import com.modbusconnect.rtuwrapper.messaging.ReadRegisterRequest;
import com.modbusconnect.rtuwrapper.messaging.ReadRegisterResponse;
import com.modbusconnect.rtuwrapper.messaging.WriteCoilRequest;
import com.modbusconnect.rtuwrapper.messaging.WriteCoilResponse;
import com.modbusconnect.rtuwrapper.messaging.WriteRegisterRequest;
import com.modbusconnect.rtuwrapper.messaging.WriteRegisterResponse;

import static com.modbusconnect.rtuwrapper.ModbusConstants.VENDOR_ID;

public class MainActivity extends AppCompatActivity {

    TextView textView;
    EditText etRegNum;
    EditText etRegVal;
    EditText editText;
    ToggleButton toggleButton;

    Button buttonWriteRegister;
    Button buttonWriteCoil;
    Button buttonSetAllCoils;
    Button buttonReadRegs;
    Button buttonReadCoils;

    ModbusRtuConnection connection;
    ModbusRtuTransaction transaction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.textView);
        editText = (EditText) findViewById(R.id.editText);
        toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
        etRegNum = (EditText) findViewById(R.id.etRegNum);
        etRegVal = (EditText) findViewById(R.id.etRegVal);

        System.out.println(etRegNum.getText().toString());

        Button buttonConnect = (Button) findViewById(R.id.buttonConnect);
        buttonConnect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                connect();
            }
        });

        buttonWriteRegister = (Button) findViewById(R.id.buttonWriteRegister);
        buttonWriteRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int address = Integer.parseInt(etRegNum.getText().toString());
                int value = Integer.parseInt(etRegVal.getText().toString());
                WriteRegisterRequest request = new WriteRegisterRequest(address, value);
                WriteRegisterResponse response;
                try {
                    transaction.execute(request);
                    response = (WriteRegisterResponse) transaction.getResponse();
                    log("reg "   address   " = "   response.getValue());
                } catch (ModbusException e) {
                    e.printStackTrace();
                }
            }
        });
        buttonWriteCoil = (Button) findViewById(R.id.buttonWriteCoil);
        buttonWriteCoil.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int address = Integer.parseInt(editText.getText().toString());
                boolean value = toggleButton.isChecked();
                WriteCoilRequest request = new WriteCoilRequest(address, value);
                WriteCoilResponse response;
                try {
                    transaction.execute(request);
                    response = (WriteCoilResponse) transaction.getResponse();
                    log("coil "   address   " = "   response.getValue());
                } catch (ModbusException e) {
                    e.printStackTrace();
                }
            }
        });
        buttonSetAllCoils = (Button) findViewById(R.id.buttonWriteAllCoils);
        buttonSetAllCoils.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setAllCoilsOnOff();
            }
        });
        buttonReadRegs = (Button) findViewById(R.id.buttonReadRegs);
        buttonReadRegs.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ReadRegisterRequest request = new ReadRegisterRequest();
                ReadRegisterResponse response;
                for (int i = 0; i < 7; i  ) {
                    request.setData(i, 0);
                    try {
                        transaction.execute(request);
                    } catch (ModbusException e) {
                        e.printStackTrace();
                    }
                    try {
                        response = (ReadRegisterResponse) transaction.getResponse();
                        log("reg "   i   " = "   response.getValue());
                    } catch (ModbusException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        buttonReadCoils = (Button) findViewById(R.id.buttonReadCoils);
        buttonReadCoils.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ReadCoilRequest request = new ReadCoilRequest();

                ReadCoilResponse response;
                for (int i = 1000; i < 1007; i  ) {
                    request.setData(i, false);
                    try {
                        transaction.execute(request);
                    } catch (ModbusException e) {
                        e.printStackTrace();
                    }
                    try {
                        response = (ReadCoilResponse) transaction.getResponse();
                        log("coil "   i   " = "   response.getValue());
                    } catch (ModbusException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        enableUi(false);
    }

    @Override
    protected void onDestroy() {
        if (connection != null) {
            connection.disconnect();
        }
        super.onDestroy();
    }

    private void enableUi(boolean enable) {
        buttonWriteRegister.setEnabled(enable);
        buttonWriteCoil.setEnabled(enable);
        buttonSetAllCoils.setEnabled(enable);
        buttonReadRegs.setEnabled(enable);
        buttonReadCoils.setEnabled(enable);
    }

    private void log(String text) {
        textView.setText(textView.getText().toString()   " // "   text);
    }

    private void connect() {
        connection = new ModbusRtuConnection(getApplicationContext(), VENDOR_ID, false);
        connection.connect(new ModbusRtuConnection.OnConnectedToPlcListener() {
            @Override
            public void onConnected() {
                if (connection.isConnected()) {
                    transaction = new ModbusRtuTransaction(connection);
                }
                log("Connected - "   connection.isConnected());
                enableUi(true);
            }
        });
    }

    //setCoilsOnOff vals
    int current = 1000;
    int startAddress = 1000;
    int endAddress = 1006;
    boolean isUp = true;

    private void setAllCoilsOnOff() {
        if (connection == null || !connection.isConnected()) return;
        WriteCoilRequest request = new WriteCoilRequest();

        if (current == endAddress) {
            isUp = false;
        } else if (current == startAddress) {
            isUp = true;
        }

        try {
            if (isUp) {
                while (current < endAddress) {
                    request.setData(current, true);
                    transaction.execute(request);
                      current;
                }
                if (current == endAddress) {
                    request.setData(current, true);
                    transaction.execute(request);
                }
            } else {
                while (current > startAddress) {
                    request.setData(current, false);
                    transaction.execute(request);
                    current--;
                }
                if (current == startAddress) {
                    request.setData(current, false);
                    transaction.execute(request);
                }
            }
        } catch (ModbusException e) {
            e.printStackTrace();
        }
    }

}
资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
ModbusRtuConnect/.git/config , 308
ModbusRtuConnect/.git/description , 73
ModbusRtuConnect/.git/HEAD , 23
ModbusRtuConnect/.git/hooks/applypatch-msg.sample , 478
ModbusRtuConnect/.git/hooks/commit-msg.sample , 896
ModbusRtuConnect/.git/hooks/post-update.sample , 189
ModbusRtuConnect/.git/hooks/pre-applypatch.sample , 424
ModbusRtuConnect/.git/hooks/pre-commit.sample , 1642
ModbusRtuConnect/.git/hooks/pre-push.sample , 1348
ModbusRtuConnect/.git/hooks/pre-rebase.sample , 4898
ModbusRtuConnect/.git/hooks/pre-receive.sample , 544
ModbusRtuConnect/.git/hooks/prepare-commit-msg.sample , 1239
ModbusRtuConnect/.git/hooks/update.sample , 3610
ModbusRtuConnect/.git/index , 7360
ModbusRtuConnect/.git/info/exclude , 240
ModbusRtuConnect/.git/logs/HEAD , 197
ModbusRtuConnect/.git/logs/refs/heads/master , 197
ModbusRtuConnect/.git/logs/refs/remotes/origin/HEAD , 197
ModbusRtuConnect/.git/objects/pack/pack-e18eee6f6d07a2667bdd53f5531f4e257ed95e28.idx , 4096
ModbusRtuConnect/.git/objects/pack/pack-e18eee6f6d07a2667bdd53f5531f4e257ed95e28.pack , 139479
ModbusRtuConnect/.git/packed-refs , 107
ModbusRtuConnect/.git/refs/heads/master , 41
ModbusRtuConnect/.git/refs/remotes/origin/HEAD , 32
ModbusRtuConnect/.gitignore , 127
ModbusRtuConnect/.gradle/3.3/taskArtifacts/fileHashes.bin , 271669
ModbusRtuConnect/.gradle/3.3/taskArtifacts/fileSnapshots.bin , 608068
ModbusRtuConnect/.gradle/3.3/taskArtifacts/taskArtifacts.bin , 51580
ModbusRtuConnect/.gradle/3.3/taskArtifacts/taskArtifacts.lock , 17
ModbusRtuConnect/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin , 30513
ModbusRtuConnect/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock , 17
ModbusRtuConnect/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin , 20484
ModbusRtuConnect/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock , 17
ModbusRtuConnect/.idea/compiler.xml , 749
ModbusRtuConnect/.idea/copyright/profiles_settings.xml , 76
ModbusRtuConnect/.idea/encodings.xml , 164
ModbusRtuConnect/.idea/gradle.xml , 643
ModbusRtuConnect/.idea/libraries/com_android_support_animated_vector_drawable_25_3_1.xml , 644
ModbusRtuConnect/.idea/libraries/com_android_support_appcompat_v7_25_3_1.xml , 608
ModbusRtuConnect/.idea/libraries/com_android_support_constraint_constraint_layout_1_0_2.xml , 441
ModbusRtuConnect/.idea/libraries/com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml , 395
ModbusRtuConnect/.idea/libraries/com_android_support_support_annotations_25_3_1_jar.xml , 761
ModbusRtuConnect/.idea/libraries/com_android_support_support_compat_25_3_1.xml , 614
ModbusRtuConnect/.idea/libraries/com_android_support_support_core_ui_25_3_1.xml , 617
ModbusRtuConnect/.idea/libraries/com_android_support_support_core_utils_25_3_1.xml , 626
ModbusRtuConnect/.idea/libraries/com_android_support_support_fragment_25_3_1.xml , 620
ModbusRtuConnect/.idea/libraries/com_android_support_support_media_compat_25_3_1.xml , 632
ModbusRtuConnect/.idea/libraries/com_android_support_support_v4_25_3_1.xml , 424
ModbusRtuConnect/.idea/libraries/com_android_support_support_vector_drawable_25_3_1.xml , 641
ModbusRtuConnect/.idea/libraries/com_github_felHR85_UsbSerial_4_5.xml , 419
ModbusRtuConnect/.idea/misc.xml , 2092
ModbusRtuConnect/.idea/modules.xml , 547
ModbusRtuConnect/.idea/runConfigurations.xml , 575
ModbusRtuConnect/.idea/vcs.xml , 185
ModbusRtuConnect/.idea/workspace.xml , 171891
ModbusRtuConnect/app/.gitignore , 193
ModbusRtuConnect/app/app.iml , 9194
ModbusRtuConnect/app/build/generated/source/buildConfig/androidTest/debug/com/modbusconnect/test/BuildConfig.java , 451
ModbusRtuConnect/app/build/generated/source/buildConfig/debug/com/modbusconnect/BuildConfig.java , 441
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/compat/R.java , 252
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/constraint/R.java , 15438
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/coreui/R.java , 252
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/coreutils/R.java , 255
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/fragment/R.java , 254
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/graphics/drawable/animated/R.java , 272
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/graphics/drawable/R.java , 263
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/mediacompat/R.java , 257
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/v4/R.java , 248
ModbusRtuConnect/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java , 110550
ModbusRtuConnect/app/build/generated/source/r/debug/com/felhr/usbserial/R.java , 249
ModbusRtuConnect/app/build/generated/source/r/debug/com/modbusconnect/R.java , 560069
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-af.json , 15932
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-am.json , 15926
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ar.json , 15934
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-az-rAZ.json , 15348
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-b+sr+Latn.json , 16244
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-be-rBY.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-bg.json , 15938
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-bn-rBD.json , 16118
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-bs-rBA.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ca.json , 15938
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-cs.json , 15934
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-da.json , 15930
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-de.json , 15934
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-el.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-en-rAU.json , 16106
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-en-rGB.json , 16106
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-en-rIN.json , 16106
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-es-rUS.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-es.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-et-rEE.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-eu-rES.json , 16112
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-fa.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-fi.json , 15930
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-fr-rCA.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-fr.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-gl-rES.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-gu-rIN.json , 16110
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-h720dp-v13.json , 986
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-hdpi-v4.json , 1046
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-hi.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-hr.json , 15934
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-hu.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-hy-rAM.json , 16108
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-in.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-is-rIS.json , 16104
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-it.json , 15932
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-iw.json , 15928
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ja.json , 15922
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ka-rGE.json , 16112
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-kk-rKZ.json , 16110
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-km-rKH.json , 16108
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-kn-rIN.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ko.json , 15918
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ky-rKG.json , 16110
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-land.json , 3206
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-large-v4.json , 7032
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ldltr-v21.json , 984
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-lo-rLA.json , 16106
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-lt.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-lv.json , 15938
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-mk-rMK.json , 14592
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ml-rIN.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-mn-rMN.json , 16108
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-mr-rIN.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ms-rMY.json , 16112
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-my-rMM.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-nb.json , 15926
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ne-rNP.json , 16118
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-night-v8.json , 5518
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-nl.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-pa-rIN.json , 16106
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-pl.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-port.json , 962
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-pt-rBR.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-pt-rPT.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-pt.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ro.json , 15940
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ru.json , 15938
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-si-rLK.json , 16112
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sk.json , 15932
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sl.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sq-rAL.json , 16112
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sr.json , 15936
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sv.json , 15934
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sw.json , 15932
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-sw600dp-v13.json , 6324
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-ta-rIN.json , 16114
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-te-rIN.json , 16116
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-th.json , 15932
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-tl.json , 15942
ModbusRtuConnect/app/build/intermediates/blame/res/debug/multi/values-tr.json , 15932
最多只能显示150条信息!
没有账号? 忘记密码?

社交账号快速登录