基本信息
源码名称:遥远远程控制系统(FarRemoteControler)
源码大小:10.36M
文件格式:.rar
开发语言:Java
更新时间:2024-11-21
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
采用android程序通过”科星“系列控制器实现物联网远程控制。
package com.rtcontroler.far; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.viewpager.widget.PagerAdapter; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.SocketException; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends Activity implements View.OnClickListener { private Button bConnect,bOpen_01,bOpen_02,bOpen_03,bOpen_04,bOpen_05,bOpen_06,bOpen_07,bOpen_08,bOpen_00,bClose_01,bClose_02,bClose_03,bClose_04,bClose_05,bClose_06,bClose_07,bClose_08,bClose_00; private EditText edtIP,edtPort; private TextView tvInfo; private TextView tvFlag01,tvFlag02,tvFlag03,tvFlag04,tvFlag05,tvFlag06,tvFlag07,tvFlag08,tvFlag00; private Socket socket; private SendMsgThread thSendMsg; private ReadMsgThread thReadMsg; private ConnectControlThread thConnect; private boolean bRunning =false;//系统已经运行中 String sac=""; int iac=0,iSum=0; private UserInfoSharedPre userInfoSharedPre; private TimerTask timerTask;//设置定时器任务 private Timer timer=new Timer();//设置定时器 private Message msg=new Message(); private Handler mHandler=new Handler(){ public void handleMessage(Message msg) { String sMess=(String)msg.obj; switch (msg.what) { case 1: if(sMess.equals("OK")){ tvInfo.setText("信息:控制器连接成功"); timerTask.run();//开始运行 bOpen_01.setEnabled(true); bOpen_02.setEnabled(true); bOpen_03.setEnabled(true); bOpen_04.setEnabled(true); bOpen_05.setEnabled(true); bOpen_06.setEnabled(true); bOpen_07.setEnabled(true); bOpen_08.setEnabled(true); bOpen_00.setEnabled(true); bClose_01.setEnabled(true); bClose_02.setEnabled(true); bClose_03.setEnabled(true); bClose_04.setEnabled(true); bClose_05.setEnabled(true); bClose_06.setEnabled(true); bClose_07.setEnabled(true); bClose_08.setEnabled(true); bClose_00.setEnabled(true); bConnect.setText("断开控制器"); bRunning =true; //读继电器状态 thSendMsg = new SendMsgThread("CCDDB00100000DBE7C"); thSendMsg.start(); //thReadMsg=new ReadMsgThread(0); //thReadMsg.start(); //连接成功后还是要发一个编号去,以便在控制器作为客户端时识别是用户还是控制器 //'SYSTEM[==]CONNECT[==]CODE[==]ANDROIDMOBILE }else if(sMess.equals("ERR")){ tvInfo.setText("信息:控制器连接失败"); bOpen_01.setEnabled(false); bOpen_02.setEnabled(false); bOpen_03.setEnabled(false); bOpen_04.setEnabled(false); bOpen_05.setEnabled(false); bOpen_06.setEnabled(false); bOpen_07.setEnabled(false); bOpen_08.setEnabled(false); bOpen_00.setEnabled(false); }else if(sMess.equals("CLOSE")){ tvInfo.setText("信息:"); //timerTask.cancel();//开始运行 bOpen_01.setEnabled(false); bOpen_02.setEnabled(false); bOpen_03.setEnabled(false); bOpen_04.setEnabled(false); bOpen_05.setEnabled(false); bOpen_06.setEnabled(false); bOpen_07.setEnabled(false); bOpen_08.setEnabled(false); bOpen_00.setEnabled(false); bClose_01.setEnabled(false); bClose_02.setEnabled(false); bClose_03.setEnabled(false); bClose_04.setEnabled(false); bClose_05.setEnabled(false); bClose_06.setEnabled(false); bClose_07.setEnabled(false); bClose_08.setEnabled(false); bClose_00.setEnabled(false); tvFlag01.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag02.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag03.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag04.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag05.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag06.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag07.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag08.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); bConnect.setText("连接控制器"); } break; case 2: if(sMess.equals("OK")){ tvInfo.setText("信息:指令发送成功"); //bOpen_01.setEnabled(true); //bOpen_01.setEnabled(true); }else{ tvInfo.setText("信息:指令发送失败"); //bOpen_01.setEnabled(false); } break; case 4://读到信息 sMess = (String) msg.obj;; tvInfo.setText("信息:接收到信息:" sMess); Log.v("FRC_信息检测_Handle" , "sac=" sac ";iac=" iac ",收到信息=" sMess); if(sMess.equals("OK!")){ if(sac.equals("Close")){ tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); if(iac==0){ iSum=0; }else{ iSum-=1; } }else if(sac.equals("Open")){ if(iac==0){ iSum=8; tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ iSum =1; if(iSum>=8){ tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } } } Log.v("FRC_信息检测_Handle" , "iSum=" iSum); switch (iac){ case 1: if(sac.equals("Open")){ tvFlag01.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag01.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 2: if(sac.equals("Open")){ tvFlag02.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag02.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 3: if(sac.equals("Open")){ tvFlag03.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag03.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 4: if(sac.equals("Open")){ tvFlag04.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag04.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 5: if(sac.equals("Open")){ tvFlag05.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag05.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 6: if(sac.equals("Open")){ tvFlag06.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag06.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 7: if(sac.equals("Open")){ tvFlag07.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag07.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 8: if(sac.equals("Open")){ tvFlag08.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag08.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; case 0: if(sac.equals("Open")){ tvFlag01.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag02.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag03.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag04.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag05.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag06.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag07.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag08.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag01.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag02.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag03.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag04.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag05.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag06.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag07.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag08.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } break; } }else if(sMess.indexOf("gdqs")!=-1){//读初始状态信息 Log.v("FRC_信息检测_Handle" , "收到初始状态信息=" sMess); //格式:gdqs11000111e String slist=sMess.replace("gdqs",""); slist=slist.replace("e",""); Log.v("FRC_信息检测_Handle" , "状态信息=" slist); if(slist.equals("11111111")){ tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tvFlag00.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } try{ for(int i=0;i<slist.length();i ){ String s=slist.substring(i,i 1); TextView tv=(TextView) findViewByName("tvFlag0" (i 1) "_FRC"); Log.v("FRC_信息检测_Handle" , "tvFlag0" (i 1) "_FRC" "=" tv.getId()); if(s.equals("1")){ iSum =1; tv.setBackground(getResources().getDrawable(R.drawable.shape_circle_green)); }else{ tv.setBackground(getResources().getDrawable(R.drawable.shape_circle_red)); } } }catch (Exception e){ } Log.v("FRC_信息检测_Handle" , "iSum=" iSum); } } } }; private View findViewByName(String name){//根据名称取id return findViewById(getResources().getIdentifier(name, "id", getPackageName())); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bConnect = (Button) findViewById(R.id.bConnect_FRC); bOpen_01 = (Button) findViewById(R.id.bOpen_01_FRC); bOpen_02 = (Button) findViewById(R.id.bOpen_02_FRC); bOpen_03 = (Button) findViewById(R.id.bOpen_03_FRC); bOpen_04 = (Button) findViewById(R.id.bOpen_04_FRC); bOpen_05 = (Button) findViewById(R.id.bOpen_05_FRC); bOpen_06 = (Button) findViewById(R.id.bOpen_06_FRC); bOpen_07 = (Button) findViewById(R.id.bOpen_07_FRC); bOpen_08 = (Button) findViewById(R.id.bOpen_08_FRC); bOpen_00 = (Button) findViewById(R.id.bOpen_00_FRC); bClose_01 = (Button) findViewById(R.id.bClose_01_FRC); bClose_02 = (Button) findViewById(R.id.bClose_02_FRC); bClose_03 = (Button) findViewById(R.id.bClose_03_FRC); bClose_04 = (Button) findViewById(R.id.bClose_04_FRC); bClose_05 = (Button) findViewById(R.id.bClose_05_FRC); bClose_06 = (Button) findViewById(R.id.bClose_06_FRC); bClose_07 = (Button) findViewById(R.id.bClose_07_FRC); bClose_08 = (Button) findViewById(R.id.bClose_08_FRC); bClose_00 = (Button) findViewById(R.id.bClose_00_FRC); tvInfo = (TextView) findViewById(R.id.tvInfo_FRC); tvFlag01 = (TextView) findViewById(R.id.tvFlag01_FRC); tvFlag02 = (TextView) findViewById(R.id.tvFlag02_FRC); tvFlag03 = (TextView) findViewById(R.id.tvFlag03_FRC); tvFlag04 = (TextView) findViewById(R.id.tvFlag04_FRC); tvFlag05 = (TextView) findViewById(R.id.tvFlag05_FRC); tvFlag06 = (TextView) findViewById(R.id.tvFlag06_FRC); tvFlag07 = (TextView) findViewById(R.id.tvFlag07_FRC); tvFlag08 = (TextView) findViewById(R.id.tvFlag08_FRC); tvFlag00 = (TextView) findViewById(R.id.tvFlag00_FRC); edtIP= (EditText) findViewById(R.id.edtIP_FRC); edtPort= (EditText) findViewById(R.id.edtPort_FRC); bConnect.setOnClickListener(this); bOpen_01.setOnClickListener(this); bOpen_02.setOnClickListener(this); bOpen_03.setOnClickListener(this); bOpen_04.setOnClickListener(this); bOpen_05.setOnClickListener(this); bOpen_06.setOnClickListener(this); bOpen_07.setOnClickListener(this); bOpen_08.setOnClickListener(this); bOpen_00.setOnClickListener(this);//全开 bClose_01.setOnClickListener(this); bClose_02.setOnClickListener(this); bClose_03.setOnClickListener(this); bClose_04.setOnClickListener(this); bClose_05.setOnClickListener(this); bClose_06.setOnClickListener(this); bClose_07.setOnClickListener(this); bClose_08.setOnClickListener(this); bClose_00.setOnClickListener(this);//全关 bOpen_01.setEnabled(false); bOpen_02.setEnabled(false); bOpen_03.setEnabled(false); bOpen_04.setEnabled(false); bOpen_05.setEnabled(false); bOpen_06.setEnabled(false); bOpen_07.setEnabled(false); bOpen_08.setEnabled(false); bOpen_00.setEnabled(false); bClose_01.setEnabled(false); bClose_02.setEnabled(false); bClose_03.setEnabled(false); bClose_04.setEnabled(false); bClose_05.setEnabled(false); bClose_06.setEnabled(false); bClose_07.setEnabled(false); bClose_08.setEnabled(false); bClose_00.setEnabled(false); userInfoSharedPre=new UserInfoSharedPre(this); String ser=userInfoSharedPre.getUserInfo();//读保存数据 if(!ser.equals("")){ String[] serList=ser.split(",",-1); if(serList.length>=2){ edtIP.setText(serList[0]); edtPort.setText(serList[1]); } } //连接成功后每10秒发送1次心跳 if(timerTask ==null){ timerTask=new TimerTask() { @Override public void run() { try { new sendHeartBeat(socket).start(); } catch (IOException e) { e.printStackTrace(); } } }; } //timer=new Timer(); timer.schedule(timerTask,5000,5000);//每5秒发送一次 } private void getRelayState(){ } public static class UserInfoSharedPre { private Context context; //private String IP, Port; /*private UserInfoSharedPre(Context context) { this.context = context; }*/ private UserInfoSharedPre(Context context) { this.context = context; //this.IP=IP; //this.Port=Port; } // 用户数据的存储 public boolean saveUserInfo(String IP,String Port) { try { // 获取SharedPreferences对象,同时指定文件名称和访问权限 SharedPreferences sp = context.getSharedPreferences("MyData", Context.MODE_PRIVATE); // 获取获取SharedPreferences的编辑器对象 SharedPreferences.Editor edit = sp.edit(); //没有修改功能,如果原来有数据,只能删除后再保存。 edit.remove("VALUESERVER"); // 通过编辑器进行数据的存储 //String ss = ss sblist.get(i).getIP() "," sblist.get(i).getPort() "="; String ss = IP "," Port; Log.v("FRC_信息检测_SERVER", "VALUESERVER=" ss); edit.putString("VALUESERVER", ss); edit.commit(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } // 读取用户数据 public String getUserInfo() { // 获取SharedPreferences对象,同时指定文件名称和访问权限 SharedPreferences sp = context.getSharedPreferences("MyData", Context.MODE_PRIVATE); String ss = sp.getString("VALUESERVER", ""); Log.v("FRC_信息检测_SERVER", "VALUESERVER=" ss); return ss; } } //***发送心跳包 private class sendHeartBeat extends Thread{ Socket socket; public sendHeartBeat(Socket socket) throws IOException { this.socket=socket; } public void run() { try{ Log.v("FRC_信息检测_-sendHeartBeat", "准备发送一个心跳!"); //socket.sendUrgentData(0xff);//紧急数据,借用发送心跳,1个字节_---好像服务器端收到几次后就收不到信息了 if (socket != null && socket.isConnected() == true) { // 向服务器发送消息 PrintWriter out; out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")), true);//"GBK")),true); out.println("?"); out.flush(); Log.v("FRC_信息检测-SerHeartBeat", "成功发送一个心跳!" socket.getLocalAddress() ":" socket.getLocalPort()); } }catch (IOException e) { e.printStackTrace(); } } } private class ReadMsgThread extends Thread { int order = 0; public ReadMsgThread(int order) { this.order = order; } @Override public void run() { InputStream mInputStream; String msgString = ""; Log.v("FRC_信息检测_ReadMsgThread", "启动接收信息线程:" currentThread().getName()); try { bRunning = true;//一直执行吧 while (bRunning == true) { //String msg =readMsg(); // 接收来自服务器的消息 //socket=app.getSocket();//重新读 if ((socket != null) && (socket.isConnected() == true)) { mInputStream = socket.getInputStream(); //缓冲区 byte[] buffer = new byte[mInputStream.available()]; //读到缓冲区 mInputStream.read(buffer); //转换为字符串!!!!!!!!!!! msgString = new String(buffer, "UTF-8");//真还有这个加bm参数的功能:显示中文 } if (msgString != null && !msgString.equals("")) { Log.v("FRC_信息检测_ReadMsgThread", "收到信息:" msg); Message msg = new Message(); msg.obj = msgString; msg.what = 4; mHandler.sendMessage(msg); } } } catch (Exception e) {//catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private void ConnectControler(){ String sIP=edtIP.getText().toString(); String sPort=edtPort.getText().toString(); if(sIP.trim().equals("")) sIP="172.16.32.200"; int port=sPort.trim().equals("")?50000:Integer.parseInt(edtPort.getText().toString()); tvInfo.setText("信息:"); String finalSIP = sIP; //if(socket==null){ thConnect=new ConnectControlThread(sIP, port); thConnect.start(); /*}else { if (socket.isConnected() == false || socket.isClosed() == true) { *//*if(thConnect !=null){ thConnect.run(); }else{*//* thConnect=new ConnectControlThread(sIP, port); thConnect.start(); //} } }*/ } private class ConnectControlThread extends Thread { String IP; int Port; public ConnectControlThread(String IP,int Port){ this.IP=IP; this.Port=Port; } @Override public void run() { Message msg=new Message(); try { socket = new Socket(IP, Port); socket.setSoTimeout(5000); Log.v("FRC_信息检测_Connect", "成功连接控制器!" ";" socket.getLocalAddress() ":" socket.getLocalPort()); //启动接收信息线程 //if(thReadMsg == null){ thReadMsg = new ReadMsgThread(0); thReadMsg.start(); //连接成功后还是要发一个编号去,以便在控制器作为客户端时识别是用户还是控制器 //SYSTEM[==]CONNECT[==]CODE[==]ANDROIDMOBILE int code= (int) ((Integer)1000*(1 Math.random())); thSendMsg = new SendMsgThread("SYSTEM[==]CONNECT[==]" code "[==]ANDROIDMOBILE"); thSendMsg.start(); /*}else if(thReadMsg.isAlive()==true){//接收消息 //thReadMsg.run(); }*/ iSum=0; bRunning = true; msg.what = 1; msg.obj = "OK"; mHandler.sendMessage(msg); } catch (IOException e) { Log.v("FRC_信息检测_Connect", "连接控制器失败!"); msg.what = 1; msg.obj = "ERR"; mHandler.sendMessage(msg); e.printStackTrace(); } } } @SuppressLint("ResourceType") @Override public void onClick(View view) { /*String sac=""; int iac=0;*/ boolean bsel=false; switch (view.getId()){ case R.id.bConnect_FRC: /*String sIP=edtIP.getText().toString(); String sPort=edtPort.getText().toString(); if(sIP.trim().equals("")) sIP="172.16.32.200"; int port=sPort.trim().equals("")?50000:Integer.parseInt(edtPort.getText().toString()); tvInfo.setText("信息:"); String finalSIP = sIP;*/ if(bConnect.getText().toString().equals("连接控制器")){ userInfoSharedPre=new UserInfoSharedPre (MainActivity.this); userInfoSharedPre.saveUserInfo(edtIP.getText().toString(),edtPort.getText().toString());//保存 ConnectControler();//连接 /*if(socket==null || socket.isConnected()==false || socket.isClosed()==true){ new Thread(){ @Override public void run(){ try { socket=new Socket(finalSIP,port); socket.setSoTimeout(5000); Log.v("FRC_信息检测_Connect" , "成功连接控制器!" ";" socket.getLocalAddress() ":" socket.getLocalPort()); bRunning =true; msg.what=1; msg.obj="OK"; mHandler.sendMessage(msg); //启动接收信息线程 //if(thReadMsg == null){ thReadMsg=new ReadMsgThread(0); thReadMsg.start(); *//*}else if(thReadMsg.isAlive()==true){//接收消息 thReadMsg.run(); }*//* } catch (IOException e) { Log.v("FRC_信息检测_Connect" , "连接控制器失败!"); msg.what=1; msg.obj="ERR"; mHandler.sendMessage(msg); e.printStackTrace(); } } }.start(); }*/ }else{ if(socket !=null && socket.isConnected()==true){ try { socket.close(); bRunning=false; msg.what=1; msg.obj="CLOSE"; mHandler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); } } } break; case R.id.bOpen_01_FRC: if(bsel==false){ sac="Open"; iac=1; bsel=true; } case R.id.bOpen_02_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=2; } case R.id.bOpen_03_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=3; } case R.id.bOpen_04_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=4; } case R.id.bOpen_05_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=5; } case R.id.bOpen_06_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=6; } case R.id.bOpen_07_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=7; } case R.id.bOpen_08_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=8; } case R.id.bOpen_00_FRC: if(bsel==false){ bsel=true; sac="Open"; iac=0; } case R.id.bClose_01_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=1; } case R.id.bClose_02_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=2; } case R.id.bClose_03_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=3; } case R.id.bClose_04_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=4; } case R.id.bClose_05_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=5; } case R.id.bClose_06_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=6; } case R.id.bClose_07_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=7; } case R.id.bClose_08_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=8; } case R.id.bClose_00_FRC: if(bsel==false){ bsel=true; sac="Close"; iac=0; } /*// 向服务器发送消息 PrintWriter out; String sSend="CCDDA101FFFFFFFF9E3C"; try { out= new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),true);//GBK")),true); out.println(sSend); out.flush(); msg.what=2; msg.obj="OK"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_MThreadSendMsg" , "成功信息发送信息:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); } catch (IOException e) { e.printStackTrace(); msg.what=2; msg.obj="ERR"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_MThreadSendMsg" , "成功信息发送信息:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); }*/ //String sid=getResources().getIdentifier() getApplication().getString(view.getId());//根据标识符获取值---即如bOpen_01_FRC //String sid= getApplication().getString(view.getId());//根据标识符获取值---即如bOpen_01_FRC /*String sid= this.getString(view.getId());//根据标识符获取值---即如bOpen_01_FRC Log.v("FRC_信息检测_Click" , "id=" sid); String[] sa =sid.split("_",-1); String action=sa[0]; int order=Integer.parseInt(sa[1]); setAction(action,order);*/ Log.v("FRC_信息检测_Click" , "sac=" sac ";iac=" iac); setAction(sac,iac); break; } } private void setAction(String aciton,int order){ String code=""; if(aciton.equals("Open")){ switch (order){ case 1: code="CCDDA10100010001A448"; break; case 2: code="CCDDA10100020002A64C"; break; case 3: code="CCDDA10100040004AA54"; break; case 4: code="CCDDA10100080008B264"; break; case 5: code="CCDDA10100100010C284"; break; case 6: code="CCDDA10100200020E2C4"; break; case 7: code="CCDDA101004000402244"; break; case 8: code="CCDDA10100800080A244"; break; case 0: code="CCDDA101FFFFFFFF9E3C";//全开 break; } }else{ switch (order){ case 1: code="CCDDA10100000001A346"; break; case 2: code="CCDDA10100000002A448"; break; case 3: code="CCDDA10100000004A64C"; break; case 4: code="CCDDA10100000008AA54"; break; case 5: code="CCDDA10100000010B264"; break; case 6: code="CCDDA10100000020C284"; break; case 7: code="CCDDA10100000040E2C4"; break; case 8: code="CCDDA101000000802244"; break; case 0: code="CCDDA1010000FFFFA040";//全开 break; } } //if(thSendMsg == null){ thSendMsg = new SendMsgThread(code); thSendMsg.start(); //}else{ // thSendMsg().run(); //} /*// 向服务器发送消息 PrintWriter out; String sSend=code; Log.v("FRC_信息检测_Click" , "code=" code); try { out= new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),true);//GBK")),true); out.println(sSend); out.flush(); msg.what=2; msg.obj="OK"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_MThreadSendMsg" , "成功信息发送信息:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); } catch (IOException e) { e.printStackTrace(); msg.what=2; msg.obj="ERR"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_MThreadSendMsg" , "成功信息发送信息:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); }*/ } private class SendMsgThread extends Thread{ String code; public SendMsgThread(String code){ this.code=code; } @Override public void run(){ // 向服务器发送消息 Message msg=new Message(); PrintWriter out; String sSend=code; Log.v("FRC_信息检测_SendMsgThread" , "code=" code); try { out= new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")),true);//GBK")),true); out.println(sSend); out.flush(); //out.close(); msg.what=2; msg.obj="OK"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_SendMsgThread" , "信息发送成功:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); } catch (IOException e) { e.printStackTrace(); msg.what=2; msg.obj="ERR"; mHandler.sendMessage(msg); Log.v("FRC_信息检测_MThreadSendMsg" , "信息发送失败:" sSend ";" socket.getLocalAddress() ":" socket.getLocalPort()); } } } @Override protected void onResume() { super.onResume(); if(socket !=null && socket.isConnected()==false){ ConnectControler(); } //ConnectControler(); /*if(socket !=null && socket.isConnected()==false){ if(bConnect.getText().toString().equals("断开控制器")){ onClick(bConnect); } }*/ } @Override protected void onDestroy() { super.onDestroy(); if(timerTask!=null) timerTask=null; } }