android讀寫串口

來源:互聯網
上載者:User
android讀寫串口(friendlyarm)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("開啟串口成功");
            HardwareControler.write(serial_fd, serial_SendBuf);
            lac_handler.post(RevicePosDataThread);        
            }
        else
        {
            System.out.println("指定的串口不存在或在其它進程中已被開啟");    
        }
      }
    
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        HardwareControler.close(serial_fd);
        System.out.println("關閉串口");    
        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)//有資料可讀
            {
                HardwareControler.read(serial_fd, serial_RevBuf, 10);
                s=new String(serial_RevBuf);
                System.out.println("接收到串口資料"+s);
            }
            else if(err==0) //無資料可讀
            {
                System.out.println("沒有接收到串口資料");    
            }
            else  //出錯
            {
                System.out.println("接收到串口資料出錯");    
            }
            try {
                Thread.sleep(2);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
         }
        }
        
    };

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.