package com.yw.sdkdemo.gpio; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.yw.gpio.Gpio; import com.yw.gpio.GpioManager; import com.yw.pulse.PulseManager; import com.yw.sdkdemo.R; /** * Created by xushuang on 2024/5/9 * E-mail: mitgic92@gmail.com * Description: */ public class GpioActivity extends AppCompatActivity implements View.OnClickListener { private Button bt_register_acc; private Button bt_get_acc; private Button bt_register_power_down; private Button bt_get_power_down; private Button bt_get_pulse; private TextView tv_pilse_count; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gpio); initView(); initListener(); } GpioManager.GpioListener gpioListener = GpioManager.GpioListener.create(Gpio.TIo_IN_ACCON, new GpioManager.Listener() { @Override public void onGpio(Gpio gpio, int value) { runOnUiThread(new Runnable() { @Override public void run() { if (value == 1) { Toast.makeText(GpioActivity.this, "ACC on", Toast.LENGTH_SHORT).show(); } else if (value == 0) { Toast.makeText(GpioActivity.this, "ACC off", Toast.LENGTH_SHORT).show(); } } }); } }); GpioManager.GpioListener powerDownListener = GpioManager.GpioListener.create(Gpio.TIo_IN_MAINPOW_DET,true, new GpioManager.Listener() { @Override public void onGpio(Gpio gpio, int value) { Log.d("GpioActivity", "main power:" + value); runOnUiThread(new Runnable() { @Override public void run() { // Toast.makeText(GpioActivity.this, "主掉电:" + value, Toast.LENGTH_SHORT).show(); } }); } }); PulseManager.IListener pulseListener = new PulseManager.IListener() { @Override public void onPulse(long l, long l1) { runOnUiThread(new Runnable() { @Override public void run() { tv_pilse_count.setText(String.format("脉冲总数: %d", l)); } }); } }; private void initView() { bt_register_acc = (Button) findViewById(R.id.bt_register_acc); bt_get_acc = (Button) findViewById(R.id.bt_get_acc); bt_register_power_down = (Button) findViewById(R.id.bt_register_power_down); bt_get_power_down = (Button) findViewById(R.id.bt_get_power_down); bt_get_pulse = (Button) findViewById(R.id.bt_get_pulse); tv_pilse_count = (TextView) findViewById(R.id.tv_pilse_count); } String selectedGpioName; private void initListener() { bt_register_acc.setOnClickListener(this); bt_get_acc.setOnClickListener(this); bt_register_power_down.setOnClickListener(this); bt_get_power_down.setOnClickListener(this); bt_get_pulse.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_get_acc: int result = GpioManager.getInstance().getGpioValue(Gpio.TIo_IN_ACCON); Toast.makeText(GpioActivity.this, " value :" + result, Toast.LENGTH_SHORT).show(); break; case R.id.bt_register_acc: GpioManager.getInstance().register(gpioListener); break; case R.id.bt_register_power_down: GpioManager.getInstance().register(powerDownListener); break; case R.id.bt_get_power_down: int ret = GpioManager.getInstance().getGpioValue(Gpio.TIo_IN_MAINPOW_DET); Toast.makeText(GpioActivity.this, "主掉电 value :" + ret, Toast.LENGTH_SHORT).show(); break; case R.id.bt_get_pulse: PulseManager.getInstance().register(pulseListener); break; } } @Override protected void onDestroy() { super.onDestroy(); GpioManager.getInstance().unRegister(gpioListener); PulseManager.getInstance().unregister(pulseListener); } }