package com.alfeye.powerdemo;
|
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Looper;
|
import android.os.Message;
|
import android.support.v7.app.AppCompatActivity;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.View;
|
import android.widget.Button;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.EditText;
|
import android.widget.SeekBar;
|
import android.widget.TextView;
|
|
import com.alfeye.a1io.A1IoDevBaseUtil;
|
import com.alfeye.a1io.A1IoDevManager;
|
import com.alfeye.seriallib.Listener.OnRadarDistanceListener;
|
import com.alfeye.seriallib.SerialDevice.RadarDistanceSensor;
|
|
import butterknife.BindView;
|
import butterknife.ButterKnife;
|
import butterknife.OnClick;
|
|
public class TestDistanceActivitys extends AppCompatActivity {
|
private static final String TAG = TestDistanceActivitys.class.getSimpleName();
|
|
@BindView(R.id.ev_value)
|
EditText evValue;
|
@BindView(R.id.btn_set_TH)
|
Button btnSetTH;
|
@BindView(R.id.btn_get_TH)
|
Button btnGetTH;
|
@BindView(R.id.tv_TH_value)
|
TextView tvTHValue;
|
@BindView(R.id.btn_clear)
|
Button btnClear;
|
@BindView(R.id.tv_dis_txt)
|
TextView tvDisTxt;
|
@BindView(R.id.tv_set_result_txt)
|
TextView tvSetResultTxt;
|
@BindView(R.id.seekbar)
|
SeekBar seekbar;
|
@BindView(R.id.tv_seekbar_progress)
|
TextView tvSeekbarProgress;
|
@BindView(R.id.ev_dl_value)
|
EditText evDlValue;
|
@BindView(R.id.btn_set_DL)
|
Button btnSetDL;
|
@BindView(R.id.btn_get_DL)
|
Button btnGetDL;
|
@BindView(R.id.cbox_gpio_hled)
|
CheckBox cboxGpioHled;
|
private RadarDistanceSensor distanceSensor;
|
private StringBuffer stringBuffer;
|
|
private static final int WHAT_CLOSE_LED = 100;
|
private boolean flag_gpio_HLed = true; //高电平亮灯
|
|
private Handler mHandler = new Handler(Looper.getMainLooper()) {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
Log.d(TAG, "onRevData_distance:WHAT_CLOSE_LED>>> " + WHAT_CLOSE_LED);
|
if (msg.what == WHAT_CLOSE_LED) {
|
closeLED();
|
}
|
}
|
};
|
private A1IoDevBaseUtil basUtil;
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
basUtil.openDIST();
|
}
|
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_test_distance);
|
ButterKnife.bind(this);
|
stringBuffer = new StringBuffer();
|
|
tvSeekbarProgress.setText("PP阈值: " + seekbar.getProgress());
|
|
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
@Override
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
distanceSensor.setSignalThreshold(progress);
|
tvSeekbarProgress.setText("PP阈值: " + progress);
|
}
|
|
@Override
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
|
}
|
|
@Override
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
|
}
|
});
|
cboxGpioHled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
flag_gpio_HLed = isChecked;
|
Log.d(TAG, "onRevData_distance: " + flag_gpio_HLed);
|
}
|
});
|
|
|
distanceSensor = new RadarDistanceSensor("/dev/ttyUSB0", new OnRadarDistanceListener() {
|
@Override
|
public void onRevData(final int data) {
|
Log.d(TAG, "onRevData_distance: " + data);
|
|
openLED();
|
|
runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
stringBuffer.insert(0, "雷达测距: " + data + "\n");
|
if (stringBuffer.length() > 1200) {
|
stringBuffer.delete(800, stringBuffer.length());
|
}
|
tvDisTxt.setText(stringBuffer.toString());
|
}
|
});
|
}
|
|
@Override
|
public void onCmdResult(final String result) {
|
runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
if (result.contains("OK") || result.contains("TH")) {
|
tvSetResultTxt.append(result);
|
}
|
}
|
});
|
}
|
});
|
distanceSensor.open();
|
|
basUtil = A1IoDevManager.initIOManager();
|
}
|
|
private void openLED() {
|
if (flag_gpio_HLed) {
|
//高电平亮灯
|
basUtil.openLED(100);
|
} else {
|
//低电平亮灯
|
basUtil.closeLED();
|
}
|
|
if (mHandler.hasMessages(WHAT_CLOSE_LED)) {
|
mHandler.removeMessages(WHAT_CLOSE_LED);
|
}
|
mHandler.sendEmptyMessageDelayed(WHAT_CLOSE_LED, 2000);
|
}
|
|
private void closeLED() {
|
if (flag_gpio_HLed) {
|
//低电平亮灯
|
basUtil.closeLED();
|
} else {
|
//高电平亮灯
|
basUtil.openLED(100);
|
}
|
}
|
|
@Override
|
public void onBackPressed() {
|
super.onBackPressed();
|
finish();
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
|
distanceSensor.close();
|
|
mHandler.removeMessages(WHAT_CLOSE_LED);
|
closeLED();
|
basUtil.closeDIST();
|
basUtil.closeLED(); //低电平亮灯
|
}
|
|
@OnClick({R.id.btn_set_TH, R.id.btn_get_TH, R.id.btn_set_DL, R.id.btn_get_DL, R.id.btn_clear})
|
public void onViewClicked(View view) {
|
switch (view.getId()) {
|
case R.id.btn_set_TH:
|
String value = evValue.getText().toString();
|
if (!TextUtils.isEmpty(value)) {
|
distanceSensor.sendSetTH(Integer.valueOf(value.trim()));
|
}
|
break;
|
|
case R.id.btn_get_TH:
|
distanceSensor.sendGetTH();
|
break;
|
|
case R.id.btn_set_DL:
|
String dlValue = evDlValue.getText().toString();
|
if (!TextUtils.isEmpty(dlValue)) {
|
distanceSensor.sendSetDL(Integer.valueOf(dlValue.trim()));
|
}
|
break;
|
|
case R.id.btn_get_DL:
|
distanceSensor.sendGetDL();
|
break;
|
|
case R.id.btn_clear:
|
tvDisTxt.setText("");
|
stringBuffer.delete(0, stringBuffer.length());
|
|
tvSetResultTxt.setText("");
|
break;
|
default:
|
break;
|
}
|
}
|
|
}
|