Thursday, January 16, 2014
android how to read the serial data
Can be simulated on the simulator?
Or how to read with java?
Reply:
I have not used the simulator do not know, but that's not something that should simulate serial come? ?
java can write the application layer, the bottom can be used to achieve
linux c
fd = open (device, permissions);
bytes = read (fd, buf, n);
The corresponding interface passed to java package
Reply:
Looks quite complicated, I should look at what to write information? ?
Reply:
Under normal operation of the serial
1.linux2.Jni
Reply:
import com.friendlyarm.AndroidSDK.HardwareControler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
public class MapGuider_Activity extends Activity {
private int serial_fd = 0;
private byte [] serial_RevBuf = new byte [100];
private byte [] serial_SendBuf = "fsjajd" getBytes ();.
@ Override
protected void onCreate (Bundle savedInstanceState) {
/ / TODO Auto-generated method stub
super.onCreate (savedInstanceState);
setContentView (R.layout.mapguider);
serial_fd = HardwareControler.openSerialPort ("/ dev/s3c2410_serial1", 115200, 8, 1);
if (serial_fd! = -1)
{
System.out.println ("Open serial success");
HardwareControler.write (serial_fd, serial_SendBuf);
lac_handler.post (RevicePosDataThread);
}
else
{
System.out.println ("designated port does not exist or other processes has been opened");
}
}
@ Override
protected void onDestroy () {
/ / TODO Auto-generated method stub
HardwareControler.close (serial_fd);
System.out.println ("Close the serial port");
lac_handler.removeCallbacks (RevicePosDataThread);
super.onDestroy ();
}
Handler lac_handler = new Handler () {
@ Override
public void handleMessage (Message msg) {
/ / TODO Auto-generated method stub
super.handleMessage (msg);
}
};
Runnable RevicePosDataThread = new Runnable ()
{
int err = 0;
String s;
public void run () {
/ / TODO Auto-generated method stub
while (true)
{
/ / Looper.prepare ();
err = HardwareControler.select (serial_fd, 1, 0);
if (err == 1) / / data read
{
HardwareControler.read (serial_fd, serial_RevBuf, 10);
s = new String (serial_RevBuf);
System.out.println ("received serial data" + s);
}
else if (err == 0) / / No data readable
{
System.out.println ("does not receive serial data");
}
else / / error
{
System.out.println ("received serial data error");
}
try {
Thread.sleep (2);
} Catch (InterruptedException e) {
/ / TODO Auto-generated catch block
e.printStackTrace ();
}
}
}
};
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment