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(); } }); } }
前两题
最新推荐文章于 2021-03-18 19:54:49 发布