After using the serial listener for some time java kills the process because of memory leak. ()
package bbb;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import org.bulldog.beagleboneblack.BBBNames;
import org.bulldog.core.io.serial.SerialDataEventArgs;
import org.bulldog.core.io.serial.SerialDataListener;
import org.bulldog.core.io.serial.SerialPort;
import org.bulldog.core.platform.Board;
import org.bulldog.core.platform.Platform;
//import org.bulldog.core.util.BulldogUtil;
/**
-
@author Datenheld
*
*/
public class SerialExample {
public static StringBuilder sb = new StringBuilder();
public static void main(String... args) throws IOException {
//Get your platform
final Board board = Platform.createBoard();
//Retrieve a serial port (UART2) and configure it
SerialPort serial2 = board.getSerialPort(BBBNames.UART2);
serial2.setBaudRate(9600);
serial2.setBlocking(false);
serial2.open();
final String host = "192.168.17.44" ;// inner range device host ip adddress
final int port = 7575;
serial2.addListener(new SerialDataListener() {
@Override
public void onSerialDataAvailable(SerialDataEventArgs args) {
//String hex_buff = args.getDataAsString();
/* for (byte b : args.getData()) {
sb.append(String.format("%02X ", b));
}
*/
for (byte b : args.getData()) {
sb.append(String.format("%02X ", b));
}
//sb.append(hex_buff);
System.out.println("POLON MESSGE " + sb);
if (sb.length() >= 7 ){
System.out.println("char at " + sb.charAt(sb.length() - 1));
System.out.println("char at " + sb.charAt(sb.length() - 2));
System.out.println("char at " + sb.charAt(sb.length() - 3));
System.out.println("char at " + sb.charAt(sb.length() - 4));
System.out.println("char at " + sb.charAt(sb.length() - 5));
System.out.println("char at " + sb.charAt(sb.length() - 6));
}
if( (sb.length()>=7)
&&
(sb.charAt(sb.length() - 2) == 'A')
&&
(sb.charAt(sb.length() - 3) == '0')
&&
(sb.charAt(sb.length() - 4) == ' ')
&&
(sb.charAt(sb.length() - 5) == 'A')
&&
(sb.charAt(sb.length() - 6) == '0')
&&
(sb.charAt(sb.length() - 7) == ' '))
{
System.out.println("log ok");
System.out.println(" Time milis =====>>>>>"+System.currentTimeMillis() );
SendOverTCPIP(sb.toString());
sb = new StringBuilder();
}
// TO DO use delimiter 0A 0A position last from sb-1 and last from sb
System.out.println(sb.toString());
System.out.println(sb.length());
// System.out.println(args.getDataAsString());
// SendOverTCPIP(args.getDataAsString());
}
private void SendOverTCPIP(String dataAsString)
{
Socket innerrangesocket = null;
try{
InetAddress inetAddressIR = InetAddress.getByName(host);
innerrangesocket = new Socket(inetAddressIR, port);
PrintWriter myprintwriter = new PrintWriter(innerrangesocket.getOutputStream(), true );
String userinput = dataAsString;
myprintwriter.println(userinput);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(innerrangesocket != null)
try {
innerrangesocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});;
serial2.writeString("0331123491\r\n");
//BulldogUtil.sleepMs(3000);
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
serial2.writeString("00191\r\n");
//serialPort.writeString("0331123491\r\n"); ARMARE
// serialPort.writeString("040112348F\r\n"); DEZARMARE
serial2.writeString("00191\r\n");
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println("Sleep 500 Ms");
//BulldogUtil.sleepMs(500);
}
//serial2.close();
//serial1.close();
}
// public void main(String args){}do here
}
After using the serial listener for some time java kills the process because of memory leak. ()
package bbb;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import org.bulldog.beagleboneblack.BBBNames;
import org.bulldog.core.io.serial.SerialDataEventArgs;
import org.bulldog.core.io.serial.SerialDataListener;
import org.bulldog.core.io.serial.SerialPort;
import org.bulldog.core.platform.Board;
import org.bulldog.core.platform.Platform;
//import org.bulldog.core.util.BulldogUtil;
/**
@author Datenheld
*
*/
public class SerialExample {
public static StringBuilder sb = new StringBuilder();
public static void main(String... args) throws IOException {
serial2.writeString("0331123491\r\n");
//BulldogUtil.sleepMs(3000);
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
serial2.writeString("00191\r\n");
//serialPort.writeString("0331123491\r\n"); ARMARE
// serialPort.writeString("040112348F\r\n"); DEZARMARE
}
// public void main(String args){}do here
}