前两题

package com.example.xuhuida.xdltest;

import android.content.Intent;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.xuhuida.xdltest.util.DataCache;
import com.google.gson.Gson;
import com.google.gson.JsonObject;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import cn.com.newland.nle_sdk.responseEntity.base.BaseResponseEntity;
import cn.com.newland.nle_sdk.util.NetWorkBusiness;
import cn.com.newland.nle_sdk.util.Tools;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class MainActivity extends AppCompatActivity {
    private TextView wendu;
    private EditText temId;
    private EditText temTag;
    private String deviceId;
    private String apiTag;
    private Button mon_btn;
    private Button tem_beg;
    private Button monOff;
    private int tem;
    private boolean ifAoto=false;
    private BaseResponseEntity userBaseResponseEntity;
    private NetWorkBusiness netWorkBusiness;
    private Button hanNoFan;
    private Button hanOffFan;
    private boolean begin=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        begin();
    }
    private void begin(){
        wendu=findViewById(R.id.wenDu);
        temId=findViewById(R.id.tem_id);
        temTag=findViewById(R.id.tem_apiTag);
        mon_btn=findViewById(R.id.mon_btn);
        monOff=findViewById(R.id.monOff_btn);
        userBaseResponseEntity=(BaseResponseEntity) getIntent().getSerializableExtra("userBaseResponseEntity");
        tem_beg=findViewById(R.id.tem_beg_btn);
        hanNoFan=findViewById(R.id.hanNo_btn);
        hanOffFan=findViewById(R.id.hanOff_btn);

        tem_beg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setWenDu();
                begin=true;
            }
        });
        mon_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                autoMon();
            }
        });
        monOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifAoto=false;
                mon_btn.setEnabled(true);
                monOff.setEnabled(false);

            }
        });
        hanNoFan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifAoto=false;
                control(deviceId,"ctrl",1);
                hanNoFan.setEnabled(false);
                hanOffFan.setEnabled(true);
                monOff.setEnabled(false);
                mon_btn.setEnabled(true);
            }
        });
        hanOffFan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifAoto=false;
                control(deviceId,"ctrl",0);
                hanNoFan.setEnabled(true);
                hanOffFan.setEnabled(false);
                monOff.setEnabled(false);
                mon_btn.setEnabled(true);

            }
        });
    }


    private void setWenDu(){


        final Gson gson=new Gson();
        deviceId=temId.getText().toString();
        apiTag=temTag.getText().toString();
        netWorkBusiness=new NetWorkBusiness(DataCache.getAccessToken(getApplicationContext()),"http://api.nlecloud.com:80/");
        netWorkBusiness.getSensor(deviceId, apiTag, new Callback<BaseResponseEntity>() {
            @Override
            public void onResponse(@NonNull Call<BaseResponseEntity> call, @NonNull Response<BaseResponseEntity> response) {
                BaseResponseEntity baseResponseEntity = response.body();

                if (baseResponseEntity != null) {
                    JSONObject jsonObject=null;
                    String msg=gson.toJson(baseResponseEntity);
                    try {
                        jsonObject = new JSONObject(msg);
                        JSONObject resultObj = (JSONObject) jsonObject.get("ResultObj");
                        String aaa=resultObj.getString("Value");
                        wendu.setText(aaa+"℃");
                    } catch (JSONException e) {
                        wendu.setText("错误");

                    }

                    //Tools.printJson(wendu, gson.toJson(baseResponseEntity));
                } else {
                    wendu.setText("请求参数不合法或者服务出错");
                }

            }

            @Override
            public void onFailure(@NonNull Call<BaseResponseEntity> call, @NonNull Throwable t) {
                wendu.setText("请求出错 : \n" + t.getMessage());
            }
        });


    }
    public void autoMon(){
        if(begin==false)
        {
            AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
            dialog.setTitle("警告");
            dialog.setMessage("请先点击开始检测按钮");
            dialog.show();

        }
        else {

            ifAoto = true;
            mon_btn.setEnabled(false);
            monOff.setEnabled(true);

            Runnable runnable = new Runnable() {
                public void run() {
                    while (true) {
                        int tem = monOnce();
                        EditText temMax = findViewById(R.id.tem_max);
                        EditText temMin = findViewById(R.id.tem_min);
                        if(TextUtils.isEmpty(temMax.getText().toString())||TextUtils.isEmpty(temMin.getText().toString()))
                        {  Toast.makeText(MainActivity.this,"阈值设置不能为空",Toast.LENGTH_SHORT).show(); }
                        else {
                            String maxTemS = temMax.getText().toString();
                            String minTemS = temMin.getText().toString();
                            int maxTemI = Double.valueOf(maxTemS).intValue();
                            int minTemI = Double.valueOf(minTemS).intValue();
                            if (tem > maxTemI && ifAoto == true) {
                                control(deviceId, "ctrl", 1);
                                control(deviceId, "defense", 0);

                            } else if (tem < minTemI && ifAoto == true) {

                                control(deviceId, "ctrl", 0);
                                control(deviceId, "defense", 1);
                            } else {
                                if (ifAoto == true) {
                                    control(deviceId, "ctrl", 0);
                                    control(deviceId, "defense", 0);
                                }

                            }
                            }



                        try {
                            Thread.sleep(3000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
            Thread thread = new Thread(runnable);
            thread.start();
        }

    }
    public int monOnce(){
        final Gson gson=new Gson();
        netWorkBusiness.getSensor(deviceId, apiTag, new Callback<BaseResponseEntity>() {
            @Override
            public void onResponse(@NonNull Call<BaseResponseEntity> call, @NonNull Response<BaseResponseEntity> response) {
                BaseResponseEntity baseResponseEntity = response.body();
                if (baseResponseEntity != null) {
                    JSONObject jsonObject=null;
                    String msg=gson.toJson(baseResponseEntity);
                    try {
                        jsonObject = new JSONObject(msg);
                        JSONObject resultObj = (JSONObject) jsonObject.get("ResultObj");
                        String aaa=resultObj.getString("Value");
                        tem=Double.valueOf(aaa).intValue();
                        wendu.setText(tem+"℃");
                    } catch (JSONException e) {
                        wendu.setText("错误");
                    }
                } else {
                    wendu.setText("请求参数不合法或者服务出错");
                }

            }
            @Override
            public void onFailure(@NonNull Call<BaseResponseEntity> call, @NonNull Throwable t) {
                wendu.setText("请求出错 : \n" + t.getMessage());
            }
        });

        return tem;
    }
    public void control(String id,String Tag, Object value){
        netWorkBusiness.control(id,Tag, value, new Callback<BaseResponseEntity>() {
            @Override
            public void onResponse(@NonNull Call<BaseResponseEntity> call, @NonNull Response<BaseResponseEntity> response) {
                BaseResponseEntity baseResponseEntity = response.body();

                if (baseResponseEntity == null) {
                    Toast.makeText(MainActivity.this, "请求出错 : 请求参数不合法或者服务出错", Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onFailure(@NonNull Call<BaseResponseEntity> call, @NonNull Throwable t) {
                Toast.makeText(MainActivity.this, "请求出错 : \n" + t.getMessage(), Toast.LENGTH_SHORT).show();
        }
        });

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值