package com.dtston.nvwarobot.activitys;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dtston.nvwarobot.Constant;
import com.dtston.nvwarobot.R;
import com.dtston.nvwarobot.constant.Constants;
import com.dtston.nvwarobot.retrofit.AccessRequestService;
import com.dtston.nvwarobot.retrofit.ParamsHelper;
import com.dtston.nvwarobot.retrofit.ServiceGenerator2;
import com.dtston.nvwarobot.utils.L;
import com.dtston.nvwarobot.utils.SPUtils;
import com.dtston.nvwarobot.utils.T;
import com.yaokantv.yk.YKTools;
import org.json.JSONException;
import org.json.JSONObject;
import butterknife.BindView;
import butterknife.OnClick;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public class AirActivity extends BaseActivity {
JSONObject comObject;
@BindView(R.id.iv_bac)
ImageView mIvBac;
@BindView(R.id.tv_name)
TextView mTvName;
@BindView(R.id.btn_power)
RelativeLayout mBtnPower;
@BindView(R.id.iv_reduce)
RelativeLayout mIvReduce;
@BindView(R.id.iv_plus)
RelativeLayout mIvPlus;
@BindView(R.id.btn_wind_speed)
Button mBtnWindSpeed;
@BindView(R.id.btn_updown)
Button mBtnUpdown;
@BindView(R.id.btn_leftright)
Button mBtnLeftright;
@BindView(R.id.btn_energy)
Button mBtnEnergy;
@BindView(R.id.btn_powerer)
Button mBtnPowerer;
@BindView(R.id.btn_old)
Button mBtnOld;
String mode="r";//模式,默认制冷,a自动,d抽湿,w送风,h制热,r制冷
String wind="s0";//风量,默认自动档
String updown="u0";//上下扫风,默认关
String leftright="l0";//上下扫风,默认关
String power="off";//开关,默认开
int temp=26;//默认温度。16-30,自动,抽湿模式不支持温度调节
YKTools ykTools;
@Override
public int getLayoutId() {
return R.layout.activity_air;
}
@Override
public void initListener() {
}
@Override
public void initView() {
ykTools = new YKTools();
}
@Override
public void loadData() {
String rid = getIntent().getStringExtra("rid");
getCode((String) SPUtils.get(this, Constant.deviceId, ""), rid);
}
private void getCode(String hongwaiId, String rid) {
long time = System.currentTimeMillis() / 1000;
String beforeMD5 = (String) SPUtils.get(this, Constant.deviceId, "") + "none" + rid + time;
String client = getFive(time, beforeMD5);
AccessRequestService accessRequestService = ServiceGenerator2.getRequestService();
Observable Observable = accessRequestService.getYaokanCode(client, Constants.HONGWAI_URL, ParamsHelper.getYaokanCode(rid, hongwaiId));
addSubscription(Observable.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::getResult, throwable -> netFailure()));
}
private void getResult(String hongwaiCodeResult) {
L.e("hongwaiCodeResult:" + hongwaiCodeResult);
try {
JSONObject jsonObject = new JSONObject(hongwaiCodeResult.substring(1, hongwaiCodeResult.length() - 1));
comObject = jsonObject.getJSONObject("rc_command");
int size = comObject.length();
} catch (JSONException e) {
e.printStackTrace();
}
}
@OnClick({R.id.iv_bac, R.id.btn_power, R.id.iv_reduce, R.id.iv_plus, R.id.btn_wind_speed, R.id.btn_updown, R.id.btn_leftright, R.id.btn_energy, R.id.btn_powerer, R.id.btn_old})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.iv_bac:
finish();
break;
case R.id.btn_power:
if (power.equals("on")){
power="off";
}else {
power="on";
}
control(power);
break;
case R.id.iv_reduce:
if (temp>16){
temp--;
control(format());
}
break;
case R.id.iv_plus:
if (temp<30){
temp++;
control(format());
}
break;
case R.id.btn_wind_speed:
if (wind.equals("s0")){
wind="s1";
}else if (wind.equals("s1")){
wind="s2";
}else if (wind.equals("s2")){
wind="s3";
}else {
wind="s0";
}
control(format());
break;
case R.id.btn_updown:
if (updown.equals("uo")){
updown="u1";
}else {
updown="u0";
}
control(format());
break;
case R.id.btn_leftright:
if (leftright.equals("lo")){
leftright="l1";
}else {
leftright="l0";
}
control(format());
break;
case R.id.btn_energy:
control("r_s0_26_u0_l0_p0");
break;
case R.id.btn_powerer:
control(" r_s3_"+temp+"_u1_l1_p0");
break;
case R.id.btn_old:
mode="h";
control(format());
break;
}
}
private String format() {
return mode+"_"+wind+"_"+temp+"_"+updown+"_"+leftright+"_p0";
}
private boolean sendControl(String code) {
try {
if (comObject.getJSONObject(code) != null) {
String data=comObject.getJSONObject(code).getString("src");
int r = ykTools.irSendData((String) SPUtils.get(this, Constant.activeYaokan, ""), "01" + data + "/n");
if (r == 0) {
return true;
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
private void control(String code){
if (!sendControl(code)){
T.showShort(this,"发送失败");
}
}
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史