4

私はアンドロイド modbus tcp read のためのこの簡単なコードを持っています:(jamod-1.2-SNAPSHOT で) public class MainActivity extends Activity {

// The important instances of the classes mentioned before
TCPMasterConnection con = null; // the TCP connection
ModbusTCPTransaction trans = null; // the Modbus transaction

// Variables for storing the parameters
InetAddress addr = null; // the slave's address
int port = Modbus.DEFAULT_PORT;

int count = 10; // the number Address to read

@Override
protected void onCreate(Bundle savedInstanceState) {

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
            .permitAll().build();
    StrictMode.setThreadPolicy(policy);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button_listener();
}

/*
 * MENÜ
 * 
 * @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the
 * menu; this adds items to the action bar if it is present.
 * getMenuInflater().inflate(R.menu.main, menu); return true; }
 */

public void button_listener() {
    Button read = (Button) findViewById(R.id.button1);

    read.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            TextView values = (TextView) findViewById(R.id.textView1);
            values.setText("Gomb!");
            // start register
            int startReg;

            startReg = 0;

            ReadMultipleRegistersRequest req = null; // the request
            ReadMultipleRegistersResponse res = null; // the response

            count = 5;
            // Prepare the request
            req = new ReadMultipleRegistersRequest(startReg, count);

            // Prepare the transaction
            trans = new ModbusTCPTransaction(con);
            trans.setRequest(req);

             // execute the transaction
            try {
                trans.execute();
            } catch (ModbusIOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ModbusSlaveException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ModbusException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            // get the response
            res = (ReadMultipleRegistersResponse) trans.getResponse();

        }

    });
}

@Override
protected void onStop() {
    super.onStop();
    // Close the TCP connection
    con.close();
}

@Override
protected void onResume() {
    super.onResume();

    try {
        // specify the slave IP address
        addr = InetAddress.getByName("192.168.1.107");

        // Open the connection
        con = new TCPMasterConnection(addr);
        con.setPort(port);
        con.connect();

    } catch (Exception e) {
        Log.d("MODBUS", "connection error");
    }

}

そして、私はこのエラーメッセージを受け取りました:

08-31 14:49:08.670: E/AndroidRuntime(7245): java.lang.NoClassDefFoundError: net.wimpi.modbus.net.TCPMasterConnection

このエラーが発生した理由を教えてください。エラーは 118 行目です。

con = 新しい TCPMasterConnection(addr);

または、正しく動作するコードに変更するにはどうすればよいですか?Java の netbeans で動作しているためです。

ご回答ありがとうございます。

4

0 に答える 0