11. 钛极OS事件中心

钛极OS事件中心

 

TiJOS硬件事件中心主要用于与硬件设备总线相关的事件监听处理, 如GPIO事件等等, 类似于硬件中的中断处理, 与事件相关的硬件相关驱动均通过事件中心进行处理,如TiButton等。

 

Java包

tijos.framework.eventcenter

 

事件类型 - TiEventType

硬件事件类型有多种, 目前TiJOS支持GPIO事件和USB事件, 随着总线类型的增加,相应的事件类型也会增加。

 

事件枚举说明
GIPOGIPO总线事件
KEYBOARD键盘按键事件
USBUSB总线事件

 

事件监听器 - ITiEventListener

事件监听接口ITiEventListener用于支持事件回调,需要处理总线事件的传感器驱动均需要实现该接口。

 

事件接口说明
onEvent(ITiEvent evt)当事件发生时,由事件中心进行调用, ITiEvent中包含了事件的具体信息
getEventType( )返回事件类型,如TiEventType.GPIO

 

事件注册及事件处理

当需要处理硬件事件时,需要实现ITiEventListener接口并在事件中心中进行注册, 事件中心通过getEventCenter来获取,当事件发生时, 在OnEvent中进行相应事件的处理,一般过程如下:

 

  1. <font size="3"><font size="3">//GPIO事件监听器
  2. public class TiGPIOEventHandler implements ITiEventListener
  3. {
  4.       //在事件中心中注册GPIO事件
  5.      TiGPIOEventHandler()
  6.      {
  7.            TiEventCenter.getEventCenter().addListener(this);
  8.       }
  9.  
  10.       @Override
  11.      public TiEventType getEventType() {
  12.             return TiEventType.GPIO;
  13.      }
  14.  
  15.      //当事件发生时, onEvent被调用
  16.     @Override
  17.     public void onEvent(ITiEvent evt) 
  18.     {
  19.          //转换为指定的事件类进行处理
  20.          TiGPIOEvent event =  (TiGPIOEvent)evt;
  21.          if(event.getPin() == Pin1) 
  22.          {
  23.                switch(event.getIOEvent())
  24.                {
  25.                 //xxx
  26.                }
  27.           }
  28.      }   
  29. }</font></font>

复制代码

注意

  • 当同类型总线事件发生时,每个事件都会进入OnEvent调用中,驱动中应对发生事件的PIN进行过滤,只处理与自己相关的事件。

  • 在OnEvent中应尽快完成事件处理,以免影响后续事件, 对于处理时间较长的事件可在一个新的线程中进行处理从而避免事件堆积


GPIO事件 - TiGPIOEvent

TiGPIOEvent代表GPIO总线事件, 派生自ITiEvent, 一般在OnEvent中使用,包含了本次GPIO事件发生时的相关信息:

 

函数说明
TiEventType getType( )获取事件类型,总返回TiEventType.GPIO
long getTime( )获取事件发生时间,单位为微妙
int getPort( )获取事件发生的GPIO端口
int getPin( )获取事件发生的GPIO所属端口的管脚
int getIOEvent( )获取GPIO事件类型,包括EVENT_NONE,EVENT_RISINGEDGE,EVENT_FALLINGEDGE,EVENT_BOTHEDGE,具体请参考TiGPIO类说明


具体可参考相关GPIO总线例程。

 

键盘按键事件 - TiKeyboardEvent

TiKeyboardEvent代表钛极OS(TiJOS) 按键事件, 派生自ITiEvent, 一般在OnEvent中使用,包含了本次按键事件发生时的相关信息。

 

函数说明
TiEventType getType( )获取事件类型,总返回TiEventType.KEYBOARD
long getTime( )获取事件发生时间,单位为微妙
int getId( )获取事件发生的按键ID
int getEvent( )获取键盘事件类型


更多详细介绍请见钛云物联官网:www.tijos.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值