Note that there are some explanatory texts on larger screens.

plurals
  1. POthreads to AsyncTask( android, Modbus/TCP)
    text
    copied!<p>I'm working a connection to a PLC via TCP / Modbus and Jamod library, therefore I use and work with threads. I'm using to handle AsyncTask thread function, but when running my code the application is not responding and closes automatically. Thanks for the help in advance =)</p> <pre><code> package com.JR.scada; import java.net.InetAddress; import net.wimpi.modbus.Modbus; import net.wimpi.modbus.io.ModbusTCPTransaction; import net.wimpi.modbus.msg.ReadInputDiscretesRequest; import net.wimpi.modbus.msg.ReadInputDiscretesResponse; import net.wimpi.modbus.net.TCPMasterConnection; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Main extends Activity{ TextView text, depurar; EditText IP; Button boton; TCPMasterConnection con = null; //the TCP connection ModbusTCPTransaction trans = null; //the Modbus transaction InetAddress addr = null; //direccion del esclavo int port = Modbus.DEFAULT_PORT;//puerto por defecto 502 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView) findViewById(R.id.lblRegistro); IP = (EditText) findViewById(R.id.txtIp); depurar = (TextView) findViewById(R.id.txtdepurar); boton = (Button)findViewById(R.id.btnVerRegistro); } @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; } @Override protected void onStop() { super.onStop(); //Close the TCP connection con.close(); } public class conectar extends AsyncTask&lt;String,String,Integer&gt;{ protected Integer doInBackground(String... urls) { try { text.setText("Entro en el try"); //IP address; addr = InetAddress.getByName("212.170.50.238"); // Open the connection con = new TCPMasterConnection(addr); con.setPort(port); con.connect (); } catch (Exception e) { Log.d("MODBUS","connection error", e); depurar.setText("no conecta"); return 1; } return 0; } protected void onPostExecute(Integer bytes) { depurar.setText("conecta"); } } public void onClick(View v) { conectar conectamos = new conectar(); conectamos.execute("hola"); } </code></pre> <p>see any errors?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload