package com.socket;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentProviderOperation.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.RadioButton;
import android.widget.ImageView;
import android.widget.ToggleButton;
public class ActivityClient extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private final int TIMER_INVALIDATE = 1001;
private String SOCKET_IP = "192.168.1.117";
//private String SOCKET_IP = "192.168.50.247";
private int SOCKET_PORT = 51706;
private int dlgIndex = 0;
private int cnt = 0;
private Double testValue = new Double(75.123);
private Timer timer;
private TimerTask task;
private ImageView mTmpImage;
private Button mBtnConnet;
private Button mBtnClose;
private Button mBtnGas;
private Button mBtnTemp;
private Button mBtnLightLevel;
private ToggleButton mTbtnLed1;
private ToggleButton mTbtnLed2;
private ToggleButton mTbtnLed3;
private ToggleButton mTbtnLed4;
//连接对话框
private AlertDialog.Builder dialogConnect;
private EditText et;
//温度监控对话框
private AlertDialog.Builder dialogTemp;
private EditText mTemp1;
private EditText mTemp2;
private EditText mTemp3;
private EditText mTemp4;
//光强监控对话框
private AlertDialog.Builder dialogLightLevel;
private EditText mLightLevel1;
private EditText mLightLevel2;
private EditText mLightLevel3;
private EditText mLightLevel4;
//气体监控对话框
private AlertDialog.Builder dialogGas;
private EditText mGas1;
private EditText mGas2;
private EditText mGas3;
private EditText mGas4;
private RadioButton mAlarm1;
private RadioButton mAlarm2;
private RadioButton mAlarm3;
private RadioButton mAlarm4;
Socket socket = null;
private String TempStr[];//用于存放温度数值
private String LightLevelStr[];//用于存放光强数值
private String GasStr[];//用于存放瓦斯数值
private String AlarmFlag[];//用于报警标识
private String LedFlag[];//用于灯状态标识
private TextView mTextShow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextShow = (TextView)findViewById(R.id.textshow);
mBtnConnet = (Button)findViewById(R.id.btn_connect);
mBtnClose = (Button)findViewById(R.id.btn_close);
mBtnGas = (Button)findViewById(R.id.btn_gas);
mBtnTemp = (Button)findViewById(R.id.btn_temp);
mBtnLightLevel = (Button)findViewById(R.id.btn_lightlevel);
mTbtnLed1 = (ToggleButton)findViewById(R.id.led1);
mTbtnLed2 = (ToggleButton)findViewById(R.id.led2);
mTbtnLed3 = (ToggleButton)findViewById(R.id.led3);
mTbtnLed4 = (ToggleButton)findViewById(R.id.led4);
mBtnConnet.setOnClickListener(this);
mBtnClose.setOnClickListener(this);
mBtnGas.setOnClickListener(this);
mBtnTemp.setOnClickListener(this);
mBtnLightLevel.setOnClickListener(this);
mTbtnLed1.setOnClickListener(this);
mTbtnLed2.setOnClickListener(this);
mTbtnLed3.setOnClickListener(this);
mTbtnLed4.setOnClickListener(this);
//连接对话框
dialogConnect = new AlertDialog.Builder(this);
//温度监控对话框
dialogTemp = new AlertDialog.Builder(this);
//光强监控对话框
dialogLightLevel = new AlertDialog.Builder(this);
//瓦斯监控对话框
dialogGas = new AlertDialog.Builder(this);
}
public static String bytes2HexString(byte[] b)
{
String ret = "";
for (int i = 0; i < b.length; i++)
{
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1)
{
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}
public void connect(){
try {
InetAddress serverAddr = InetAddress.getByName(SOCKET_IP);//TCPServer.SERVERIP
Log.d("TCP", "C: Connecting...");
socket = new Socket(serverAddr, SOCKET_PORT);
// PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
// out.println(message);
// out.flush();
receive();
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
}
}
public void receive(){
new Thread(){
public void run(){
try{
while(!socket.isClosed()){
InputStream is = socket.getInputStream();
byte data[] = new byte[512];
int n = is.read(data);
if(n > 0){
String val = new String(data);
//解析数据
switch(val.charAt(1))
{
case 'T':
TempStr = val.split(",");
break;
case 'L':
LightLevelStr = val.split(",");
break;
case 'G':
GasStr = val.split(",");
break;
case 'A'://报警
AlarmFlag = val.split(",");
break;
case 'D'://灯状态
LedFlag = val.split(",");
break;
}
//Log.d("TCP","receive mStrShow="+mStrShow);
//Log.d("TCP","receive mStrShow=");
Message message = new Message();// 生成消息,并赋予ID值
message.what = TIMER_INVALIDATE;
myHandler.sendMessage(message);// 投递消息
}
sleep(300);
}
}
catch(Exception e){
}
}
}.start();
}
private void close(){
try {
Log.d("TCP","socket close");
if(socket != null)
{
socket.close();
}
finish();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("TCP", "S: Error", e);
}
}
private void MySend(String message){
try{
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
out.flush();
}catch(Exception e){
e.printStackTrace();
}
}
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case TIMER_INVALIDATE://查询灯状态
if(dlgIndex == 0)
{
if(LedFlag[1].charAt(0) == 0x30)
{
mTbtnLed1.setChecked(false);
}
else if(LedFlag[1].charAt(0) == 0x31)
{
mTbtnLed1.setChecked(true);
}
if(LedFlag[2].charAt(0) == 0x30)
{
mTbtnLed2.setChecked(false);
}
else if(LedFlag[2].charAt(0) == 0x31)
{
mTbtnLed2.setChecked(true);
}
if(LedFlag[3].charAt(0) == 0x30)
{
mTbtnLed3.setChecked(false);
}
else if(LedFlag[3].charAt(0) == 0x31)
{
mTbtnLed3.setChecked(true);
}
if(LedFlag[4].charAt(0) == 0x30)
{
mTbtnLed4.setChecked(false);
}
else if(LedFlag[4].charAt(0) == 0x31)
{
mTbtnLed4.setChecked(true);
}
}
else if(dlgIndex == 1) //温度监控界面
{
mTemp1.setText(TempStr[1]);
mTemp2.setText(TempStr[2]);
mTemp3.setText(TempStr[3]);
mTemp4.setText(TempStr[4]);
}
else if(dlgIndex == 2) //光强监控界面
{
mLightLevel1.setText(LightLevelStr[1]);
mLightLevel2.setText(LightLevelStr[2]);
mLightLevel3.setText(LightLevelStr[3]);
mLightLevel4.setText(LightLevelStr[4]);
}
else if(dlgIndex == 3) //瓦斯监控界面
{
if(cnt == 1)
{
mGas1.setText(GasStr[1]);
mGas2.setText(GasStr[2]);
mGas3.setText(GasStr[3]);
mGas4.setText(GasStr[4]);
}
else if(cnt == 0)
{
if(AlarmFlag[1].charAt(0) == 0x30)
{
mAlarm1.setChecked(false);
}
else if(AlarmFlag[1].charAt(0) == 0x31)
{
mAlarm1.setChecked(true);
}
if(AlarmFlag[2].charAt(0) == 0x30)
{
mAlarm2.setChecked(false);
}
else if(AlarmFlag[2].charAt(0) == 0x31)
{
mAlarm2.setChecked(true);
}
if(AlarmFlag[3].charAt(0) == 0x30)
{
mAlarm3.setChecked(false);
}
else if(AlarmFlag[3].charAt(0) == 0x31)
{
mAlarm3.setChecked(true);
}
if(AlarmFlag[4].charAt(0) == 0x30)
{
mAlarm4.setChecked(false);
}
else if(AlarmFlag[4].charAt(0) == 0x31)
{
mAlarm4.setChecked(true);
}
}
}
break;
case 1://定时向server发送请求事件
if(dlgIndex == 0)
{
MySend("DDDDD"); //主界面
}
else if(dlgIndex == 1)//温度监控界面
{
MySend("TTTTT");
}
else if(dlgIndex == 2)//光强监控界面
{
MySend("LLLLL");
}
else if(dlgIndex == 3)//瓦斯监控界面
{
if(cnt == 0)
{
cnt = 1;
MySend("GGGGG");
}
else if(cnt == 1)
{
cnt = 0;
MySend("AAAAA");
}
}
break;
}
super.handleMessage(msg);
}
};
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.btn_connect){
//connect();
LayoutInflater inflatert = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflatert.inflate(R.layout.dlgconnect, null);
dialogConnect.setView(layout);
et = (EditText)layout.findViewById(R.id.et_serverip); //连接dialog中ip地址输入框
dialogConnect.setPositiveButton("连接",new DialogInterface.OnClickListener() {//设置确定的按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
try {
String inputIpAddr=et.getText().toString();
InetAddress serverAddr = InetAddress.getByName(inputIpAddr);//TCPServer.SERVERIP
Log.d("TCP", "C: Connecting...");
//socket = new Socket(serverAddr, SOCKET_PORT);
socket = new Socket(inputIpAddr, SOCKET_PORT);
receive();
//启动定时器执行一次查询灯状态操作
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200);
dlgIndex = 0;
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
}
}
});
dialogConnect.setNegativeButton("取消",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
});
dialogConnect.setCancelable(false);//设置按返回键是否响应返回,这是是不响应
dialogConnect.show();
}
else if(v.getId() == R.id.btn_temp){//温度监控对话框
dlgIndex = 1;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.temp, null);
dialogTemp.setView(layout);
dialogTemp.setTitle("远程温度监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.tmp);
dialogTemp.setIcon(d);
mTemp1 = (EditText)layout.findViewById(R.id.tmp_et1);
mTemp2 = (EditText)layout.findViewById(R.id.tmp_et2);
mTemp3 = (EditText)layout.findViewById(R.id.tmp_et3);
mTemp4 = (EditText)layout.findViewById(R.id.tmp_et4);
//mTmpImage = (ImageView)layout.findViewById(R.id.tmp_image);
//mTmpImage.setImageResource(R.drawable.tmp);
//dialogTemp.setPositiveButton("连接",null);
dialogTemp.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogTemp.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200, 200);
}
else if(v.getId() == R.id.btn_lightlevel){
dlgIndex = 2;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.lightlevel, null);
dialogLightLevel.setView(layout);
dialogLightLevel.setTitle("远程光强监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.light);
dialogLightLevel.setIcon(d);
mLightLevel1 = (EditText)layout.findViewById(R.id.lightlevel_et1);
mLightLevel2 = (EditText)layout.findViewById(R.id.lightlevel_et2);
mLightLevel3 = (EditText)layout.findViewById(R.id.lightlevel_et3);
mLightLevel4 = (EditText)layout.findViewById(R.id.lightlevel_et4);
//dialogTemp.setPositiveButton("连接",null);
dialogLightLevel.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogLightLevel.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200, 200);
}
else if(v.getId() == R.id.btn_gas){
dlgIndex = 3;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.gas, null);
dialogGas.setView(layout);
dialogGas.setTitle("远程瓦斯监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.gas);
dialogGas.setIcon(d);
mGas1 = (EditText)layout.findViewById(R.id.gas_et1);
mGas2 = (EditText)layout.findViewById(R.id.gas_et2);
mGas3 = (EditText)layout.findViewById(R.id.gas_et3);
mGas4 = (EditText)layout.findViewById(R.id.gas_et4);
mAlarm1 = (RadioButton)layout.findViewById(R.id.gas_rb1);
mAlarm2 = (RadioButton)layout.findViewById(R.id.gas_rb2);
mAlarm3 = (RadioButton)layout.findViewById(R.id.gas_rb3);
mAlarm4 = (RadioButton)layout.findViewById(R.id.gas_rb4);
mAlarm1.setChecked(false);
mAlarm2.setChecked(false);
mAlarm3.setChecked(false);
mAlarm4.setChecked(false);
//dialogTemp.setPositiveButton("连接",null);
dialogGas.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogGas.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 100, 100);
}
else if(v.getId() == R.id.btn_close){
close();
}
else if(v.getId() == R.id.led1){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed1.isChecked())
{
MySend("11D11");
mTextShow.setText("您按下了1号开关,1号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("11D00");
mTextShow.setText("您按下了1号开关,1号灯被熄灭!");
}
}
else if(v.getId() == R.id.led2){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed2.isChecked())
{
MySend("22D11");
mTextShow.setText("您按下了2号开关,2号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("22D00");
mTextShow.setText("您按下了2号开关,2号灯被熄灭!");
}
}
else if(v.getId() == R.id.led3){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed3.isChecked())
{
MySend("33D11");
mTextShow.setText("您按下了3号开关,3号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("33D00");
mTextShow.setText("您按下了3号开关,3号灯被熄灭!");
}
}
else if(v.getId() == R.id.led4){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed4.isChecked())
{
MySend("44D11");
mTextShow.setText("您按下了4号开关,4号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("44D00");
mTextShow.setText("您按下了4号开关,4号灯被熄灭!");
}
}
}
}
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentProviderOperation.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.RadioButton;
import android.widget.ImageView;
import android.widget.ToggleButton;
public class ActivityClient extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private final int TIMER_INVALIDATE = 1001;
private String SOCKET_IP = "192.168.1.117";
//private String SOCKET_IP = "192.168.50.247";
private int SOCKET_PORT = 51706;
private int dlgIndex = 0;
private int cnt = 0;
private Double testValue = new Double(75.123);
private Timer timer;
private TimerTask task;
private ImageView mTmpImage;
private Button mBtnConnet;
private Button mBtnClose;
private Button mBtnGas;
private Button mBtnTemp;
private Button mBtnLightLevel;
private ToggleButton mTbtnLed1;
private ToggleButton mTbtnLed2;
private ToggleButton mTbtnLed3;
private ToggleButton mTbtnLed4;
//连接对话框
private AlertDialog.Builder dialogConnect;
private EditText et;
//温度监控对话框
private AlertDialog.Builder dialogTemp;
private EditText mTemp1;
private EditText mTemp2;
private EditText mTemp3;
private EditText mTemp4;
//光强监控对话框
private AlertDialog.Builder dialogLightLevel;
private EditText mLightLevel1;
private EditText mLightLevel2;
private EditText mLightLevel3;
private EditText mLightLevel4;
//气体监控对话框
private AlertDialog.Builder dialogGas;
private EditText mGas1;
private EditText mGas2;
private EditText mGas3;
private EditText mGas4;
private RadioButton mAlarm1;
private RadioButton mAlarm2;
private RadioButton mAlarm3;
private RadioButton mAlarm4;
Socket socket = null;
private String TempStr[];//用于存放温度数值
private String LightLevelStr[];//用于存放光强数值
private String GasStr[];//用于存放瓦斯数值
private String AlarmFlag[];//用于报警标识
private String LedFlag[];//用于灯状态标识
private TextView mTextShow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextShow = (TextView)findViewById(R.id.textshow);
mBtnConnet = (Button)findViewById(R.id.btn_connect);
mBtnClose = (Button)findViewById(R.id.btn_close);
mBtnGas = (Button)findViewById(R.id.btn_gas);
mBtnTemp = (Button)findViewById(R.id.btn_temp);
mBtnLightLevel = (Button)findViewById(R.id.btn_lightlevel);
mTbtnLed1 = (ToggleButton)findViewById(R.id.led1);
mTbtnLed2 = (ToggleButton)findViewById(R.id.led2);
mTbtnLed3 = (ToggleButton)findViewById(R.id.led3);
mTbtnLed4 = (ToggleButton)findViewById(R.id.led4);
mBtnConnet.setOnClickListener(this);
mBtnClose.setOnClickListener(this);
mBtnGas.setOnClickListener(this);
mBtnTemp.setOnClickListener(this);
mBtnLightLevel.setOnClickListener(this);
mTbtnLed1.setOnClickListener(this);
mTbtnLed2.setOnClickListener(this);
mTbtnLed3.setOnClickListener(this);
mTbtnLed4.setOnClickListener(this);
//连接对话框
dialogConnect = new AlertDialog.Builder(this);
//温度监控对话框
dialogTemp = new AlertDialog.Builder(this);
//光强监控对话框
dialogLightLevel = new AlertDialog.Builder(this);
//瓦斯监控对话框
dialogGas = new AlertDialog.Builder(this);
}
public static String bytes2HexString(byte[] b)
{
String ret = "";
for (int i = 0; i < b.length; i++)
{
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1)
{
hex = '0' + hex;
}
ret += hex.toUpperCase();
}
return ret;
}
public void connect(){
try {
InetAddress serverAddr = InetAddress.getByName(SOCKET_IP);//TCPServer.SERVERIP
Log.d("TCP", "C: Connecting...");
socket = new Socket(serverAddr, SOCKET_PORT);
// PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
// out.println(message);
// out.flush();
receive();
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
}
}
public void receive(){
new Thread(){
public void run(){
try{
while(!socket.isClosed()){
InputStream is = socket.getInputStream();
byte data[] = new byte[512];
int n = is.read(data);
if(n > 0){
String val = new String(data);
//解析数据
switch(val.charAt(1))
{
case 'T':
TempStr = val.split(",");
break;
case 'L':
LightLevelStr = val.split(",");
break;
case 'G':
GasStr = val.split(",");
break;
case 'A'://报警
AlarmFlag = val.split(",");
break;
case 'D'://灯状态
LedFlag = val.split(",");
break;
}
//Log.d("TCP","receive mStrShow="+mStrShow);
//Log.d("TCP","receive mStrShow=");
Message message = new Message();// 生成消息,并赋予ID值
message.what = TIMER_INVALIDATE;
myHandler.sendMessage(message);// 投递消息
}
sleep(300);
}
}
catch(Exception e){
}
}
}.start();
}
private void close(){
try {
Log.d("TCP","socket close");
if(socket != null)
{
socket.close();
}
finish();
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("TCP", "S: Error", e);
}
}
private void MySend(String message){
try{
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
out.flush();
}catch(Exception e){
e.printStackTrace();
}
}
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case TIMER_INVALIDATE://查询灯状态
if(dlgIndex == 0)
{
if(LedFlag[1].charAt(0) == 0x30)
{
mTbtnLed1.setChecked(false);
}
else if(LedFlag[1].charAt(0) == 0x31)
{
mTbtnLed1.setChecked(true);
}
if(LedFlag[2].charAt(0) == 0x30)
{
mTbtnLed2.setChecked(false);
}
else if(LedFlag[2].charAt(0) == 0x31)
{
mTbtnLed2.setChecked(true);
}
if(LedFlag[3].charAt(0) == 0x30)
{
mTbtnLed3.setChecked(false);
}
else if(LedFlag[3].charAt(0) == 0x31)
{
mTbtnLed3.setChecked(true);
}
if(LedFlag[4].charAt(0) == 0x30)
{
mTbtnLed4.setChecked(false);
}
else if(LedFlag[4].charAt(0) == 0x31)
{
mTbtnLed4.setChecked(true);
}
}
else if(dlgIndex == 1) //温度监控界面
{
mTemp1.setText(TempStr[1]);
mTemp2.setText(TempStr[2]);
mTemp3.setText(TempStr[3]);
mTemp4.setText(TempStr[4]);
}
else if(dlgIndex == 2) //光强监控界面
{
mLightLevel1.setText(LightLevelStr[1]);
mLightLevel2.setText(LightLevelStr[2]);
mLightLevel3.setText(LightLevelStr[3]);
mLightLevel4.setText(LightLevelStr[4]);
}
else if(dlgIndex == 3) //瓦斯监控界面
{
if(cnt == 1)
{
mGas1.setText(GasStr[1]);
mGas2.setText(GasStr[2]);
mGas3.setText(GasStr[3]);
mGas4.setText(GasStr[4]);
}
else if(cnt == 0)
{
if(AlarmFlag[1].charAt(0) == 0x30)
{
mAlarm1.setChecked(false);
}
else if(AlarmFlag[1].charAt(0) == 0x31)
{
mAlarm1.setChecked(true);
}
if(AlarmFlag[2].charAt(0) == 0x30)
{
mAlarm2.setChecked(false);
}
else if(AlarmFlag[2].charAt(0) == 0x31)
{
mAlarm2.setChecked(true);
}
if(AlarmFlag[3].charAt(0) == 0x30)
{
mAlarm3.setChecked(false);
}
else if(AlarmFlag[3].charAt(0) == 0x31)
{
mAlarm3.setChecked(true);
}
if(AlarmFlag[4].charAt(0) == 0x30)
{
mAlarm4.setChecked(false);
}
else if(AlarmFlag[4].charAt(0) == 0x31)
{
mAlarm4.setChecked(true);
}
}
}
break;
case 1://定时向server发送请求事件
if(dlgIndex == 0)
{
MySend("DDDDD"); //主界面
}
else if(dlgIndex == 1)//温度监控界面
{
MySend("TTTTT");
}
else if(dlgIndex == 2)//光强监控界面
{
MySend("LLLLL");
}
else if(dlgIndex == 3)//瓦斯监控界面
{
if(cnt == 0)
{
cnt = 1;
MySend("GGGGG");
}
else if(cnt == 1)
{
cnt = 0;
MySend("AAAAA");
}
}
break;
}
super.handleMessage(msg);
}
};
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.btn_connect){
//connect();
LayoutInflater inflatert = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflatert.inflate(R.layout.dlgconnect, null);
dialogConnect.setView(layout);
et = (EditText)layout.findViewById(R.id.et_serverip); //连接dialog中ip地址输入框
dialogConnect.setPositiveButton("连接",new DialogInterface.OnClickListener() {//设置确定的按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
try {
String inputIpAddr=et.getText().toString();
InetAddress serverAddr = InetAddress.getByName(inputIpAddr);//TCPServer.SERVERIP
Log.d("TCP", "C: Connecting...");
//socket = new Socket(serverAddr, SOCKET_PORT);
socket = new Socket(inputIpAddr, SOCKET_PORT);
receive();
//启动定时器执行一次查询灯状态操作
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200);
dlgIndex = 0;
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
} finally {
}
}
});
dialogConnect.setNegativeButton("取消",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
});
dialogConnect.setCancelable(false);//设置按返回键是否响应返回,这是是不响应
dialogConnect.show();
}
else if(v.getId() == R.id.btn_temp){//温度监控对话框
dlgIndex = 1;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.temp, null);
dialogTemp.setView(layout);
dialogTemp.setTitle("远程温度监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.tmp);
dialogTemp.setIcon(d);
mTemp1 = (EditText)layout.findViewById(R.id.tmp_et1);
mTemp2 = (EditText)layout.findViewById(R.id.tmp_et2);
mTemp3 = (EditText)layout.findViewById(R.id.tmp_et3);
mTemp4 = (EditText)layout.findViewById(R.id.tmp_et4);
//mTmpImage = (ImageView)layout.findViewById(R.id.tmp_image);
//mTmpImage.setImageResource(R.drawable.tmp);
//dialogTemp.setPositiveButton("连接",null);
dialogTemp.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogTemp.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200, 200);
}
else if(v.getId() == R.id.btn_lightlevel){
dlgIndex = 2;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.lightlevel, null);
dialogLightLevel.setView(layout);
dialogLightLevel.setTitle("远程光强监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.light);
dialogLightLevel.setIcon(d);
mLightLevel1 = (EditText)layout.findViewById(R.id.lightlevel_et1);
mLightLevel2 = (EditText)layout.findViewById(R.id.lightlevel_et2);
mLightLevel3 = (EditText)layout.findViewById(R.id.lightlevel_et3);
mLightLevel4 = (EditText)layout.findViewById(R.id.lightlevel_et4);
//dialogTemp.setPositiveButton("连接",null);
dialogLightLevel.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogLightLevel.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 200, 200);
}
else if(v.getId() == R.id.btn_gas){
dlgIndex = 3;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
AbsoluteLayout layout = (AbsoluteLayout)inflater.inflate(R.layout.gas, null);
dialogGas.setView(layout);
dialogGas.setTitle("远程瓦斯监测");
Resources r = this.getResources();
Drawable d = r.getDrawable(R.drawable.gas);
dialogGas.setIcon(d);
mGas1 = (EditText)layout.findViewById(R.id.gas_et1);
mGas2 = (EditText)layout.findViewById(R.id.gas_et2);
mGas3 = (EditText)layout.findViewById(R.id.gas_et3);
mGas4 = (EditText)layout.findViewById(R.id.gas_et4);
mAlarm1 = (RadioButton)layout.findViewById(R.id.gas_rb1);
mAlarm2 = (RadioButton)layout.findViewById(R.id.gas_rb2);
mAlarm3 = (RadioButton)layout.findViewById(R.id.gas_rb3);
mAlarm4 = (RadioButton)layout.findViewById(R.id.gas_rb4);
mAlarm1.setChecked(false);
mAlarm2.setChecked(false);
mAlarm3.setChecked(false);
mAlarm4.setChecked(false);
//dialogTemp.setPositiveButton("连接",null);
dialogGas.setNegativeButton("返回上级",new DialogInterface.OnClickListener() {//设置取消按键
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
dlgIndex = 0;
timer.cancel();
}
});
dialogGas.show();
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
};
timer= new Timer();
timer.schedule(task, 100, 100);
}
else if(v.getId() == R.id.btn_close){
close();
}
else if(v.getId() == R.id.led1){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed1.isChecked())
{
MySend("11D11");
mTextShow.setText("您按下了1号开关,1号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("11D00");
mTextShow.setText("您按下了1号开关,1号灯被熄灭!");
}
}
else if(v.getId() == R.id.led2){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed2.isChecked())
{
MySend("22D11");
mTextShow.setText("您按下了2号开关,2号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("22D00");
mTextShow.setText("您按下了2号开关,2号灯被熄灭!");
}
}
else if(v.getId() == R.id.led3){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed3.isChecked())
{
MySend("33D11");
mTextShow.setText("您按下了3号开关,3号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("33D00");
mTextShow.setText("您按下了3号开关,3号灯被熄灭!");
}
}
else if(v.getId() == R.id.led4){
// 当按钮第一次被点击时候响应的事件
if (mTbtnLed4.isChecked())
{
MySend("44D11");
mTextShow.setText("您按下了4号开关,4号灯被点亮!");
}// 当按钮再次被点击时候响应的事件
else
{
MySend("44D00");
mTextShow.setText("您按下了4号开关,4号灯被熄灭!");
}
}
}
}