国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android Socket 線程連接openwrt與arduino單片機串口雙向通信的實例解析

2019-12-12 04:29:36
字體:
供稿:網(wǎng)友

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

package zcd.netanything;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import android.app.Fragment;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Toast;public class MyCar extends Fragment implements OnClickListener{private static String wifiurl;private static String wificom;private static String wificamera;private Thread mThreadClient = null;private Socket mSocketClient = null;//視頻線程private Thread mThreadvideo = null;private String recvMessageClient ;//MySurfaceView r;private boolean isConnect=false; //指令發(fā)出 數(shù)據(jù)緩存static PrintWriter mPrintWriterClient = null;static BufferedReader mBufferedReaderClient = null;public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.mycar,container, false);view.findViewById(R.id.button1).setOnClickListener(this);view.findViewById(R.id.button2).setOnClickListener(this);view.findViewById(R.id.button3).setOnClickListener(this);view.findViewById(R.id.button4).setOnClickListener(this);view.findViewById(R.id.button5).setOnClickListener(this);return view;}public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}//內(nèi)部類 廣播接收public static class myReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubwifiurl = intent.getStringExtra("wifiurl");wificom = intent.getStringExtra("wificom");wificamera = intent.getStringExtra("wificamera");Toast.makeText(context, "廣播已經(jīng)接收", Toast.LENGTH_SHORT).show();}}//來源 http://www.cnblogs.com/xiaobo-Linux/ 趙存檔 QQ463431476 //線程mRunnable啟動private Runnable mRunnable = new Runnable() {public void run(){try { //連接服務(wù)器mSocketClient = new Socket(wifiurl,Integer.parseInt(wificom)); //取得輸入、輸出流mBufferedReaderClient = new BufferedReader(new InputStreamReader(mSocketClient.getInputStream()));mPrintWriterClient = new PrintWriter(mSocketClient.getOutputStream(), true);recvMessageClient = "wifi成功連接";//消息換行Message msg = new Message();msg.what = 1;mHandler.sendMessage(msg); }catch (Exception e) {recvMessageClient = "連接錯誤!";//消息換行Message msg = new Message();msg.what = 1;mHandler.sendMessage(msg);return;} setRecvMessage();}};public void setRecvMessage(){ char[] buffer = new char[256];int count = 0;while (true){try{if((count = mBufferedReaderClient.read(buffer))>0){ recvMessageClient = getInfoBuff(buffer, count);//消息換行//Thread.sleep(500);Message msg = new Message();msg.what = 1;mHandler.sendMessage(msg); //Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();}}catch (Exception e){recvMessageClient = "接收異常:" + e.getMessage() + "/n";//消息換行Message msg = new Message();msg.what = 0;mHandler.sendMessage(msg);}}}Handler mHandler = new Handler(){ public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 0){Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();//刷新消息機制}else if(msg.what == 1){try{String result = recvMessageClient;Toast.makeText(getActivity(),result,Toast.LENGTH_SHORT).show(); }catch(Exception e){//Toast.makeText(getActivity(),"無法獲取數(shù)據(jù),檢查網(wǎng)絡(luò)是否連接!",Toast.LENGTH_SHORT).show();//刷新消息機制}}} };//接收處理private String getInfoBuff(char[] buff, int count){char[] temp = new char[count];for(int i=0; i<count; i++){temp[i] = buff[i];} return new String(temp);}/*public void onDestroy() {super.onDestroy();if (isConnect) { isConnect = false;try {if(mSocketClient!=null){mSocketClient.close();mSocketClient = null;//mThreadvideo.destroy();mPrintWriterClient.close();mPrintWriterClient = null;recvMessageClient = "網(wǎng)絡(luò)端口成功";//消息換行Message msg = new Message();msg.what = 0;mHandler.sendMessage(msg);}} catch (IOException e) {e.printStackTrace();}mThreadClient.interrupt();}}*/public void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1:mPrintWriterClient.print("f");mPrintWriterClient.flush();//清空Toast.makeText(getActivity(),"前進(jìn)",Toast.LENGTH_SHORT).show();break;case R.id.button2:mPrintWriterClient.print("b");mPrintWriterClient.flush();Toast.makeText(getActivity(),"后退",Toast.LENGTH_SHORT).show();break;case R.id.button3:mPrintWriterClient.print("l");mPrintWriterClient.flush();Toast.makeText(getActivity(),"向左",Toast.LENGTH_SHORT).show();break;case R.id.button4:mPrintWriterClient.print("r");mPrintWriterClient.flush(); Toast.makeText(getActivity(),"向右",Toast.LENGTH_SHORT).show();break;case R.id.button5:if(!isConnect){//開啟mThreadClient線程mThreadClient = new Thread(mRunnable);mThreadClient.start(); Toast.makeText(getActivity(),"嘗試連接網(wǎng)絡(luò)",500).show();}else {onDestroy();isConnect=false;// Btn_openwifi.setBackgroundResource(R.drawable.disconnect);}//開啟mThreadvideo線程//mThreadvideo = new Thread(mRunvideo);//mThreadvideo.start();//開啟視頻監(jiān)聽break;//case R.id.button6://關(guān)閉wifi/* if (isConnect) { isConnect = false;try {if(mSocketClient!=null){mSocketClient.close();mSocketClient = null;//mThreadvideo.destroy();mPrintWriterClient.close();mPrintWriterClient = null;recvMessageClient = "網(wǎng)絡(luò)端口成功";//消息換行Message msg = new Message();msg.what = 0;mHandler.sendMessage(msg);}} catch (IOException e) {e.printStackTrace();}mThreadClient.interrupt();}*/// break;}} }

以上所述是小編給大家介紹的Android Socket 線程連接openwrt與arduino單片機串口雙向通信,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙河市| 鄂温| 江达县| 措美县| 余庆县| 南川市| 萍乡市| 延吉市| 南宁市| 旺苍县| 集安市| 德庆县| 建始县| 临夏市| 康乐县| 都匀市| 衡东县| 勃利县| 博湖县| 湾仔区| 太原市| 邻水| 临清市| 道真| 永安市| 宝坻区| 威远县| 临夏市| 德钦县| 增城市| 香港| 嘉荫县| 南溪县| 温宿县| 恭城| 洛扎县| 彭阳县| 新绛县| 柳河县| 故城县| 新竹市|