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; } } }