TA的每日心情 | 奋斗 2023-7-8 16:17 |
---|
签到天数: 971 天 连续签到: 1 天 [LV.10]以坛为家III
|
做这个按键Button实际上比较麻烦,钛极小龟的开发板上提给用户的两类按键,一类是机械按键,另个一类是触摸按键
机械按键虽然有三个,但实际上给用户应用的按键就一个。
触摸按键 使用的是 import tijos.framework.sensor.button.TiButton ITiButtonEventListener ; 做的
可是机械按键 使用的是 import tijos.framework.platform.peripheral.TiKeyboard; ITiKeyboardListener 来做的,使上述的方法是无法使用。
具体的代码如下:
- import tijos.framework.devicecenter.TiGPIO;
- import tijos.framework.platform.peripheral.ITiKeyboardListener;
- import tijos.framework.platform.peripheral.TiKeyboard;
- import tijos.framework.sensor.button.ITiButtonEventListener;
- import tijos.framework.sensor.button.TiButton;
- import tijos.framework.util.Delay;
- public class TiJOSButton {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- try {
- /*
- * 定义使用的TiGPIO port
- */
- int gpioPort0 = 0;
- /*
- * 定义使用的TiGPIO pin
- */
- int gpioPin6 = 6;
- int gpioPin4 = 4;
- /*
- * 资源分配, 将gpioPort0与gpioPin0/1/3/4分配给TiGPIO对象gpio0
- */
- TiGPIO gpio0 = TiGPIO.open(gpioPort0, gpioPin4,gpioPin6);
- /*
- * 资源绑定, 创建TiButton对象buttonS1/S2/S3/S4并将gpio0和gpioPin0/1/3/4与其绑定
- */
- //TiButton buttonS1 = new TiButton(gpio0, gpioPin6,false);
- TiButton buttonTouch = new TiButton(gpio0, gpioPin4,true);//触发电平:高电平
- // 创建监听对象
- KeyEventListener keyLc = new KeyEventListener();
- TiKeyboard keyBoard = TiKeyboard.getInstance();
- /*
- * 资源使用, 创建事件监听对象并设置事件监听 在事件监听中处理按键事件逻辑
- */
- ButtonEventListener lc = new ButtonEventListener();
- //buttonS1.setEventListener(lc);
- buttonTouch.setEventListener(lc);
- keyBoard.setEventListener(keyLc);// 设置键盘事件监听对象
- while (true) {
- Delay.msDelay(1000);
- }
- }catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- }
- }
- /**
- * 1.此类实现了ITiButtonEventListener四按键事件监听接口
- * 在onPressed与onReleased方法中不要阻塞处理事件太久,
- * 因为TiJOS系统所有事件分发在同一个事件监听线程中,若阻塞
- * 太久会影响其他事件的分发,导致事件响应不及时甚至丢失。
- *
- * 2.如果实际应用中,需要较长时间来处理某事件,建议在新的线程中
- * 处理。
- */
- class ButtonEventListener implements ITiButtonEventListener{
- @Override
- /**
- * 按键按下事件处理
- */
- public void onPressed(TiButton button) {
- // TODO Auto-generated method stub
- System.out.println("onPressed" + " time(us):" + button.getEventTime() + " buttonPinID:" + button.getSignalPinID());
- }
- @Override
- /**
- * 按键释放事件处理
- */
- public void onReleased(TiButton button) {
- // TODO Auto-generated method stub
- System.out.println("onReleased" + " time(us):" + button.getEventTime() + " buttonPinID:" + button.getSignalPinID());
- }
- }
- class KeyEventListener implements ITiKeyboardListener{
- @Override
- public void onPressed(int id, long time) {
- // TODO Auto-generated method stub
- System.out.println("onPressed" + " time(us):" + time + " buttonPinID:" + id);
- }
- @Override
- public void onReleased(int id, long time) {
- // TODO Auto-generated method stub
- System.out.println("onReleased" + " time(us):" + time + " buttonPinID:" + id);
- }
-
- }
-
复制代码 TiButton ITiButtonEventListener 两个类的代码如下:
button.rar
(1.3 KB, 下载次数: 0, 售价: 1 与非币)
|
|