package com.rehome.sgbaxj.activity;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.TextView;

import com.rehome.sgbaxj.R;
import com.rinsun.mtdriver.MTnativeInterface;

public class CustomDialogActivity extends Activity {
    private TextView title;
    private TextView msg;
    private TextView btnStart;
    private TextView btnClose;

    MTnativeInterface mt = MTnativeInterface.getInstance();//获取传感器调用接口
    String type = "7";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //必须在调用setContentView()之前调用requestWindowFeature()
        //requestWindowFeature(Window.FEATURE_LEFT_ICON);//要标题栏显示图标
        //全屏操作,一定要放在加载根view之前
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().getDecorView().setBackgroundColor(Color.TRANSPARENT);
        setContentView(R.layout.dialog_activity);
        initView();
        initData();
    }

    private  void initView(){
        title = findViewById(R.id.tv_title);
        msg = findViewById(R.id.tv_msg);
        btnClose = findViewById(R.id.dialog_commit);
        btnStart = findViewById(R.id.dialog_cancel);
        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(type.equals("7")){
                    startCheckTemp();
                }
                if(type.equals("11")){
                    startCheckVibration();
                }
            }
        });
        btnClose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //使用完一定记得关闭电源
                mt.RFIDclose();
                mt.IRTclose();
                mt.VIBclose();
                mt.RPMclose();
                finish();
            }
        });

        //回调函数（自动返回数据）。CMDtype:数据类型，参数说明见“说明文档.txt”
        mt.setOnReceiveListener(new MTnativeInterface.OnReceiveListener() {
            @Override
            public void onShowMessage(byte[] recBuff, int CMDtype, int tag) {
                /* 根据CMDtype区分数据类型，普通测量值/频谱数据/配置数据。如果10秒没读到数据会返回超时提示并关闭电源 */
                System.out.println("-------------");
                System.out.println(new String(recBuff) + "/" + CMDtype + "/" + tag);
                if (CMDtype == MTnativeInterface.CMD_VIBD_R) {
                    //收到普通测量值
                    updateUIByVibration(new String(recBuff));//可直接显示数据
                }
                if (CMDtype == MTnativeInterface.CMD_TEMP_R) {
                    //收到普通测量值
                    updateUIByTemp(new String(recBuff));//可直接显示数据
                }
            }
        });
    }
    private void initData() {
        Intent intent = getIntent();
        type = intent.getStringExtra("type");
        if(type.equals("7")){
            title.setText("测温" + "(℃)");
        }
        if(type.equals("11")){
            title.setText("测振" + "(mm)");
        }
    }
    public void startCheckTemp() {
        /*=====测温示例，参数说明见“说明文档.txt”=================================================================*/
        mt.IRTopen(MTnativeInterface.TEMP_25);//开启电源。
        mt.IRTread(95);
    }

    public void startCheckVibration() {
        /*=======测振示例，参数说明见“说明文档.txt”================================================================*/
        mt.VIBopen();//开启电源。
        //振动值测量。（振动值测量和频谱采集同时只能使用其中一个）
        //读振动加速度（加速度回传了2个值，取第一个就可以）
        //CMD_VIBA_R  振动加速度（加速度回传了2个值，取第一个就可以）
        //CMD_VIBD_R  振动位移
        //CMD_VIBA_R  振动速度
        mt.VIBread(MTnativeInterface.CMD_VIBD_R, 0);
    }
    @Override
    protected void onPause() {
        super.onPause();
        //使用完一定记得关闭电源
        mt.RFIDclose();
        mt.IRTclose();
        mt.VIBclose();
        mt.RPMclose();
    }

    @Override
    protected void onResume() {
        super.onResume();
        if(type.equals("7")){
            title.setText("测温" + "(℃)");
        }
        if(type.equals("11")){
            title.setText("测振" + "(mm)");
        }
    }
    @Override
    public void onDestroy() {
        //使用完一定记得关闭电源
        mt.RFIDclose();
        mt.IRTclose();
        mt.VIBclose();
        mt.RPMclose();
        super.onDestroy();
    }
    public void updateUIByTemp(final String info) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (info != null) {
                    msg.setText(info);
                }
            }
        });
    }

    public void updateUIByVibration(final String info) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (info != null) {
                    msg.setText(info);
                }
            }
        });
    }
}