TP6-事件机制
- 格式:ppt
- 大小:299.00 KB
- 文档页数:26
TP(触摸屏)事件在多种应用场景中都非常常见,它们通常涉及到用户与设备的交互。
以下是一些常见的TP事件应用场景:
1. 智能手机和平板电脑:在这些设备上,用户通过触摸屏幕来进行操作,如滑动、点击、长按等。
TP事件用于检测和响应用户的触摸行为,实现应用程序的用户界面交互。
2. 计算机操作系统:许多现代操作系统支持触摸屏输入,TP事件用于处理用户在触摸屏上的操作,如窗口管理、应用程序切换等。
3. 汽车导航系统:在现代汽车中,导航系统经常使用触摸屏来提供用户界面。
TP事件用于导航系统的交互,如输入目的地、查看地图、选择音乐等。
4. 信息亭和自助服务终端:这些终端通常使用触摸屏来提供用户交互界面,TP事件用于处理用户的查询和交易,如购票、查询信息等。
5. 游戏控制:一些游戏可能会使用触摸屏作为控制机制,TP事件用于捕捉玩家的触摸输入,实现游戏角色的移动、攻击等操作。
6. 教育工具:在教育领域,触摸屏可以用于互动学习应用程序,TP事件帮助跟踪学生的触摸操作,以评估学习进度和理解程度。
7. 医疗设备:一些医疗设备可能使用触摸屏来允许医护人员进行操作,TP事件用于确保设备的准确响应,如输入患者信息、调整设备设置等。
8. 工业控制系统:在制造业和工业自动化中,触摸屏可以用于控制面板,TP事件用于确保对机器的精确控制,如启动、停止、监控等。
在设计和开发这些应用时,开发者需要考虑TP事件的捕获、处理和响应,以确保用户界面友好、响应迅速且准确无误。
基于事件触发的时滞阿络系统稳定性研究韩俊先乔静兵任宁袁瑞赵思(河北机电职业技术学院,河北邢台054000)摘要:笔者针对网络控制系统中,特别是空气压缩机远程监控系统中存在的网络时滞等情况,引入事件触发机制,利用线性矩阵不等式技术和李雅普诺夫方法设计一种新的状态反馈控制器,来保证系统的渐进稳定,并同时完成了触发条件的设计.最后,利用MATLAB给出了仿真实例,证明了设计的控制器能保证系统的渐进稳定,并且和时间触发相比,拥有节省带宽资源和加快系统响应的优越性.关键词:事件触发;渐进稳定;线性矩阵不等式;网络控制系统中图分类号:TP273文献标识码:A文章编号:4003-9767(2021)06-192-04Study on Event-triggered Control Mechanism for the Time-delayNetwork SystemsHAN Junxian,QIAO Jingbing,REN Ning,YUAN Rui,ZHAO Si(Hebei Institute of Mechanical and Electrical Technology,Xingtai Hebei054000,China) Abstract:Aiming at a class of network control system,especially the time-delay in the air compressor remote monitoring system, the event-triggered control is applied,and a new state feedback controller and an event triggering condition are designed by the Lyapunov stability theory and the linear matrix inequality in order to ensure the asymptotic stability.Finally,the method is verified effective by MATLAB simulation and the simulation shows that the system with the event-triggered control can save bandwidth resources and accelerate system response.Keywords:event-triggered control;asymptotic stability;LMI;network control system0引言随着计算机技术和通信技术的日益成熟,网络控制系统得到快速发展,已广泛应用在各行各业,特别是空气压缩机远程监控等工业领域。
关于thinkphp6中事件的理解上⼀篇⽂章转载了其他博主关于tp6事件的例⼦,下来说说⾃⼰对事件的理解----------------------------------------------------------------------按照thinkphp官⽅⽂档的解释,事件其实不⽤写event类,只需要写个监听类实现 handle() ⽅法,通过监听标⽰(event.php⽂件配置或动态添加监听)触发即可。
下⾯操作下这样的流程:1.添加监听类 可以命令:php think make:listener TestListen 其实就是建⽴⼀个类: <?phpnamespace app\listener;class TestListener{/*** 事件监听处理* @return mixed*/public function handle(){echo "测试监听...执⾏";}}2.配置监听在event.php 设置监听(数组形式给定⼀个监听标⽰后边跟监听类数组)<?php// 事件定义⽂件return ['bind' => [// 更多事件绑定],'listen' => ['AppInit' => [],'HttpRun' => [],'HttpEnd' => [],'LogLevel' => [],'LogWrite' => [],// 更多事件监听'test' => ['app\listener\TestListener'],],'subscribe' => [// 更多事件订阅],];3.触发事件在控制器或其他业务⾥⾯触发<?phpdeclare (strict_types = 1);namespace app\adminapi\controller\pc;use think\facade\Event;class Index{public function index(){//其他业务逻辑后下⾯要触发⼀个事件Event::trigger('test');//return '您好!这是⼀个[pc--adminapi]⽰例应⽤';}}⽤tp6的话⼤多情况下我们是这样⽤的.=============================================================借⽤⼀个事件的流程,我们下来使⽤事件类,在实现⼀个事件.下来想⽤thinkphp6来实现这个机制(这次⽤到事件类)分析下图⽚的流程:我们可以定义⼀个:打⼩孩事件类,然后触发这个事件,后监听类(监护⼈)执⾏处理⽅法.1.创建打⼩孩事件 php think make:event HitChild<?phpdeclare (strict_types = 1);namespace app\event;class HitChild{public$evildoer;public function __construct($evildoer){$this->evildoer = $evildoer;echo$this->evildoer."打⼩孩<br>";}}2.创建监听类 php think make:listener ParentListener (监听类要实现处理⽅法handle) 这⾥监听者和事件做⼀个绑定<?phpdeclare (strict_types = 1);namespace app\listener;class ParentListener{/*** 事件监听处理** @return mixed*/public function handle(\app\event\HitChild $event){//echo "检测到".$event->evildoer."打我家⼩孩,我要报警!<br>";}}3.把事件绑定和事件监听配置到event.php⽂件中<?php// 事件定义⽂件return ['bind' => ['hitchild' => 'app\event\HitChild',// 更多事件绑定],'listen' => ['AppInit' => [],'HttpRun' => [],'HttpEnd' => [],'LogLevel' => [],'LogWrite' => [],// 更多事件监听'test' => ['app\listener\TestListener'],'hitchild' => ['app\listener\ParentListener'],],'subscribe' => [// 更多事件订阅],];4.控制器中触发事件public function hitchild(){//其他业务后,触发事件Event::trigger(app()->make(\app\event\Hitchild::class,["⽼王"]));return "controller--hitchild";}添加了事件类是不是可以把,事件触发者的信息传递给处理⽅法~~。
Computer Engineering and Applications 计算机工程与应用2021,57(5)网络控制系统是将通信网络引入控制闭环的复杂分布式控制系统,其空间分布的传感器、控制器和执行器等系统组件经由共享通信网络传递信息。
该系统高度融合物理系统与信息系统,具有柔性高、成本低、安装和维护方便等优点[1],广泛应用于智能电网、智慧交通、精准农业等领域。
在共享通信网络为网络控制系统带来诸多便利的同时,来自网络空间的恶意攻击使其面临重大的安全挑战。
针对网络控制系统的攻击大概分为拒绝服务攻击和欺骗攻击,拒绝服务攻击通过阻塞通信网络使有用数据包不能按时送达,欺骗攻击通过篡改数据包内容而破坏数据包的真实性和完整性[2],虚假数据注入(False Data Injection ,FDI )攻击为欺骗攻击的典型代表。
近年来,考虑网络攻击影响的安全控制系统研究引起了广泛关注,其中多数成果研究了拒绝服务攻击对网络控制系统的影响,仅有少量研究对FDI 攻击下的安全控制策略进行了探索。
例如:考虑传感器至控制器通道中具有伯努利分布的FDI 攻击影响,文献[3]设计了分布式脉冲控制器,保证了多智能体系统的均方有界一致性。
考虑文献[3]中随机FDI 攻击影响,文献[4]研究了基于采样数据的非线性多智能体系统均方一致性。
考虑传感器至控制器以及控制器至执行器通道中均存在欺骗攻击下网络化系统事件触发安全控制李富强1,2,郜丽赛2,郑宝周1,谷小青11.河南农业大学理学院,郑州4500022.上海大学机电工程与自动化学院,上海市电站自动化技术重点实验室,上海200444摘要:针对网络控制系统受欺骗攻击问题,提出了事件触发器与安全控制器协同设计策略。
提出了离散事件触发机制,克服了连续事件触发机制需要新增专用硬件且需要复杂计算避免芝诺现象局限。
建立了有机融合欺骗攻击、事件触发机制、网络诱导延时及外部扰动多约束参数的闭环系统时滞模型,推导出了欺骗攻击下事件触发控制系统渐近稳定的充分条件,得到了事件触发器与安全控制器的协同设计条件。
MTK MMI event 小结 1在MTK MMI 里面有各种event,最常见的有跟交互相关的按键event,触摸屏event;跟各种具体事件比如电话event,短信event,电量event,信号量event,timer event等等;MTK 都有相应的处理方式,跟交互相关的按键和触摸屏各有一套自己的机子,timer event 已经在MTK timer 小结 3 介绍过,还有一套机制就是处理各种其他事件,它主要分为普通事件和interrupt event,interrupt event 主要用于需要弹出的对话框的event;M T K MMI event 小结 2今天主要看分析,常用事件机制;做过MTK开发的人应该知道:要接受MTK L4 层的消息,用一个注册函数SetProtocolEventHandler,注册一个event 的处理函数;比如短信,电话,电池电量,信号量等等都是通过这个函数来注册消息;当L4 层处理完封装事件后,就会把这个event 发送到MMI task 里来消息发送可以看MTK task 小结 5 ,然后MMI task 通过这个event 机制,找到相应的处理函数,进行处理;实现这种机制,也是考虑到灵活性和扩张性;如果都在MMI task 里面,用switch case 来处理,那就很疯狂了,长度不说,写个应用,定义个消息,都要去改MMI task,所以这个机制实现虽然比较简单,但是还是很有必要的;昨天也说到,这个机制的event 主要有两种,普通event 和intrrupt event中断事件,这些主要是一些需要中断当前应用的事件主要是看那些弹出框,比如电话,有些应用需要提前处理这个消息,还有些应用需要在这个事件处理完毕后处理;还是看代码吧在MMI task 最后,会调用函数ProtocolEventHandler,这个函数就是找到相应event 的相应处理函数平台不一样,可能实际的函数名字有些区别,但是流程基本上一样的,我这里被define 到mmi_frm_execute_current_protocol_handler注意:event的处理函数使用SetProtocolEventHandler来注册;ventID == eventID{ntryFuncPtr;ventID = protocolEventHandlercount - 1.eventID;protocolEventHandlercount.entryFuncPtr = protocolEventHandlercount - 1.entryFuncPtr;protocolEventHandlercount - 1.eventID = eventID;protocolEventHandlercount - 1.entryFuncPtr = PsFuncPtr currFuncPtr;}break;}}}4c4CMMIKeyCode;if mmi_frm_is_2step_keyCode{nKeyPadStatusKeyMapIndex = KEY_HALF_PRESS_DOWN;pressKey = HALF_DOWN_STATUS;key_is_pressing_count++;}else{nKeyPadStatusKeyMapIndex = KEY_EVENT_DOWN;pressKey = FULL_DOWN_STATUS;key_is_pressing_count++;}}}elseendif / defined__MMI_TOUCH_SCREEN__ ||defined__MMI_HANDWRITING_PAD__ /MMIKeyCode;if mmi_frm_is_2step_keyCode{nKeyPadStatusKeyMapIndex = KEY_HALF_PRESS_DOWN;key_is_pressing_count++;= KEY_HALF_PRESS_DOWN;}else{nKeyPadStatusKeyMapIndex = KEY_EVENT_DOWN; / same with KEY_FULL_PRESS_DOWN /key_is_pressing_count++;= KEY_EVENT_DOWN;}MMIKeyCode;KeyEventHandlerKEYBRD_MESSAGE & KeyBrdMsg;}else{/ Ignore the event /}}/ ++Robin, modified by Max Chen /else if MsgType == DRV_WM_KEYLONGPRESS{if nKeyPadStatusKeyMapIndex == KEY_EVENT_DOWN{KEYBRD_MESSAGE KeyBrdMsg;nKeyPadStatusKeyMapIndex = KEY_LONG_PRESS;= KEY_LONG_PRESS;= nKeyPadMapKeyMapIndex.nMMIKeyCode;KeyEventHandlerKEYBRD_MESSAGE & KeyBrdMsg;}else{/ Ignore the event /}}else if MsgType == DRV_WM_KEYREPEATED{if nKeyPadStatusKeyMapIndex == KEY_LONG_PRESS || nKeyPadStatusKeyMapIndex == KEY_REPEAT{KEYBRD_MESSAGE KeyBrdMsg;nKeyPadStatusKeyMapIndex = KEY_REPEA T;= KEY_REPEA T;= nKeyPadMapKeyMapIndex.nMMIKeyCode;KeyEventHandlerKEYBRD_MESSAGE & KeyBrdMsg;}else{/ Ignore the event /}}else if MsgType == DRV_WM_KEYFULLPRESS{/Only in two-stage key will have KEY_FULL_PRESS_DOWN, and it followed after KEY_HALF_PRESS_DOWN/if nKeyPadStatusKeyMapIndex == KEY_HALF_PRESS_DOWN{KEYBRD_MESSAGE KeyBrdMsg;nKeyPadStatusKeyMapIndex = KEY_EVENT_DOWN;= KEY_EVENT_DOWN;= nKeyPadMapKeyMapIndex.nMMIKeyCode;KeyEventHandlerstruct KEYBRD_MESSAGE&KeyBrdMsg;}else{/ Ignore the event /}}else if MsgType == DRV_WM_ENABLE_TWOKEY_DETECTION || MsgType ==DRV_WM_ENABLE_THREEKEY_DETECTION ||MsgType == DRV_WM_DISABLE_MULTIKEY_DETECTION {/ Ignore the event /}else{MMI_TRACEMMI_FW_TRC_G6_FRM_DETAIL,MMI_FRM_ERROR_PROC_KEYEVENT_HDLR;MMI_ASSERT0;}}KeyEventHandler 函数主要判断是否要真的处理该事件,可以看成是一个按键事件的拦截,比如应用切换过程中,需要一个切换动画,而这个动画工程中,需要处理忽略这些按键;就需要特殊的处理;static void KeyEventHandlerKEYBRD_MESSAGE eventKey{MMI_BOOL is_hdlr_enabled = MMI_TRUE;kbd_pre_func{is_hdlr_enabled = eventKey;}if frm_p->currKeyType == KEY_EVENT_DOWN &&isInCall && GetWapCallPresent &&IsBitReset, frm_p->currKeyType{RegisterEndKeyHandlerInCall;}先看一下初始化函数:mmi_pen_initvoid mmi_pen_initvoid{g_pen_initialized = KAL_TRUE;// 看到这两个函数指针,是不是感觉很熟悉对,就是跟key 一样,前置处理和后置处理函数// 这个看多了,不用细看代码就能猜到了;= NULL;= NULL;// 设置手写输入法的区域,手写输入法在触摸屏这里需要特殊处理;mmi_pen_stop_capture_strokes;// 设置触摸屏采样时间间隔,参数一是在普通状态下,采样时间间隔,参数二是手写输入法状态下,采样时间间隔mmi_pen_config_sampling_periodMMI_PEN_SAMPLING_PERIOD_1,MMI_PEN_SAMPLING_PERIOD_2;// 设置超时时间间隔mmi_pen_config_timeout_periodMMI_PEN_LONGTAP_TIME,MMI_PEN_REPEA T_TIME, MMI_PEN_STROKE_LONGTAP_TIME;// 设置move 的间距,也就是两个点之间多少个pixel 算move 事件;mmi_pen_config_move_offsetMMI_PEN_SKIP_MOVE_OFFSET,MMI_PEN_SKIP_STROKE_MOVE_OFFSET,MMI_PEN_SKIP_LONGTAP_OFFSET,MMI_PEN_SKIP_STROKE_LONGTAP_OFFSET;// 设置drv 的回调函数,也就是当产生事件时,会回调这个函数touch_panel_cb_registrationmmi_pen_touch_panel_sendilm, NULL;// 设置MMI 层消息MSG_ID_TP_EVENT_IND 的处理函数SetProtocolEventHandlermmi_pen_touch_panel_event_ind, MSG_ID_TP_EVENT_IND;}在驱动drv 这一层,触摸屏有一个task-- MOD_TP_TASK,在处理事件,MOD_TP_TASK 会回调用touch_panel_cb_registration 注册的函数,当pen event 事件产生了,这个pen event 缓存里取,这里注册的是:mmi_pen_touch_panel_sendilm 函数,这个函数就是简单的向MMI task 发送一个消息MSG_ID_TP_EVENT_IND,让MMI task 来处理;这里这么做的原因也很简单,drv 的task 优先级是很高的,要处理的东西也很多,所以希望回调函数能很快处理完这个事情发送一个消息很快,这里可以想一下pc 上的中断,这两者差不多;当然中断还有更多其他原因,比如内核态和用户态等等,需要回调函数尽可能快处理,发送消息到消息队列扯远了;;;;还有一点需要说明的是,现在触摸屏的手机越来越普遍,那么该善触摸屏的体验是非常重要的,可惜的是MTK 的又不是多点触摸,处理起来很费劲;这个时候就需要充分利用好这里的几个设置,采样时间间隔,以及move 事件距离;需要时,让自己app可以捕获尽可能多的点,然后自己进行计算,来判断用户行为;这对改善体验很有帮助;当然这个也是比较耗电的,不需要时,一定要设置回普通状态;。
1 总则 (4)2 参考文献 (4)3 符号和缩略语 (6)4 SIM卡应用工具箱概述 (7)4.1 概要信息下载 (7)4.2 主动式SIM卡命令 (8)4.3 下载数据到SIM卡 (8)4.4 菜单选择 (8)4.5 SIM卡呼叫控制 (8)4.6 SIM卡的MO短消息控制 (9)4.7 事件下载 (9)4.8 安全 (9)5 概要信息下载 (9)5.1 过程 (9)5.2 TERMINAL PROFILE的结构和编码: (9)6 主动式SIM卡 (11)6.1 概述 (11)1.2 主动式SIM卡命令描述 (14)1.2.1 DISPLAY TEXT (14)1.2.1.1 命令和过程 (14)1.2.1.2 FETCH(DISPLAY TEXT)命令结构 (15)1.1.2 GET INKEY (16)1.1.2.1 命令和过程 (16)1.1.2.2 FETCH(GET INKEY)命令结构 (18)1.1.3 GET INPUT (18)1.1.3.1 命令和过程 (18)1.1.3.2 FETCH(GET INPUT)命令结构 (20)1.1.4 MORE TIME (21)1.1.4.1 命令和过程 (21)1.1.4.2 FETCH(MORE TIME)命令结构 (21)1.1.5 PLAY TONE (21)1.1.5.1 命令和过程 (21)1.1.5.2 FETCH(PLAY TONE)命令结构 (22)1.1.6 POLL INTERVAL (24)1.1.6.1 命令和过程 (24)1.1.6.2 FETCH(POLL INTERV AL)命令结构 (24)1.1.7 REFRESH (25)1.1.7.1 命令和过程 (25)1.1.1.2 FETCH(REFRESH)命令结构 (27)1.1.8 SET UP MENU (27)1.1.8.1 命令和过程 (27)1.1.8.2 FETCH(SET UP MENU)命令结构 (28)1.1.9 SELECT ITEM (30)1.1.1.1 命令和过程 (30)1.1.1.2 FETCH(SELECT ITEM)命令结构 (31)1.1.10 SEND SHORT MESSAGE (32)1.1.10.1 命令和过程 (32)1.1.10.2 FETCH(SEND SHORT MESSAGE)命令结构 (34)1.1.11 SEND SS (36)1.1.11.1 命令和过程 (36)1.1.11.2 FETCH(SEND SS)命令结构 (37)1.1.12 SEND USSD (39)1.1.12.1 命令和过程 (39)1.1.12.2 FETCH(SEND USSD)命令结构 (40)1.1.13 SET UP CALL (41)1.1.13.1 命令和过程 (41)1.1.13.2 FETCH(SET UP CALL)命令结构 (43)1.1.14 POLLING OFF (45)1.1.14.1 命令和过程 (45)1.1.14.2 FETCH(POLLING OFF)命令结构 (45)1.1.15 PROVIDE LOCAL INFORMATION (46)1.1.15.1 命令和过程 (46)1.1.15.2 FETCH(PROVIDE LOCAL INFORMA TION)命令结构 (47)1.1.16 SET UP EVENT LIST (47)1.1.16.1 命令和过程 (47)1.1.16.2 FETCH(SET UP EVENT LIST)命令结构 (48)7 命令结果(TERMINAL RESPONSE) (48)1.1.1.1 TERMINAL RESPONSE 命令结构 (50)8 下载数据到SIM卡 (54)8.1 点到点短消息(SMS-PP)数据下载 (54)8.1.1 过程 (54)8.1.2 ENVELOPE (SMS点到点下载) 命令结构 (55)1.2 小区广播短消息(SMS-CB)数据下载 (56)1.1.1 过程 (56)1.1.2 ENVELOPE (小区广播下载) 命令结构 (56)9 菜单选择(MENU SELECT) (57)9.1 过程 (57)9.2 ENVELOPE(菜单选择)命令结构 (57)10 SIM卡的呼叫控制 (58)10.1 移动端发起的呼叫过程 (58)10.2 补充业务及USSD的过程 (59)10.3 给用户的指示 (61)10.4 固定拨号的交互操作 (62)1.5 支持禁止拨号(BDN)业务 (62)1.6 ENVELOPE(呼叫控制)命令结构 (63)11 SIM卡的MO短消息控制 (65)11.1 过程 (65)11.2 ENVELOPE(MO短消息控制)命令结构 (65)12 器终止 (67)12.1 过程 (67)12.2 ENVELOPE(定时器终止)命令结构 (67)13 事件下载 (68)13.1 MT呼叫事件 (68)13.1.1 过程 (68)13.1.2 ENVELOPE(事件下载-MT呼叫)命令结构 (68)13.2 已连接呼叫事件 (70)13.2.1 过程 (70)13.2.2 ENVELOPE(事件下载-已连接呼叫)命令结构 (70)1.3 呼叫拆线事件 (71)1.3.1 过程 (71)1.3.2 ENVELOPE(事件下载-呼叫拆线)命令结构 (71)13.4 位置状态事件 (73)13.4.1 过程 (73)13.4.2 ENVELOPE(事件下载-位置状态)命令结构 (73)13.5 用户动作事件 (74)13.5.1 过程 (74)13.5.2 ENVELOPE(事件下载-用户动作)命令结构 (74)13.6 空闲屏幕可用事件 (75)13.6.1 过程 (75)13.6.2 ENVELOPE(事件下载-空闲屏幕可用)命令结构 (75)14 标记值 (75)14.1 ME到SIM卡方向的BER-TLV标记 (75)14.2 SIM卡到ME方向的BER-TLV标记 (76)14.3 双向SIMPLE-TLV标记 (76)14.4 命令及下一个动作指示器的类型 (78)14.5 允许命令类型及设备标识的组合 (79)附录A ME支持的SIM卡应用工具箱 (81)附录B SIM卡应用工具箱通信的结构 (82)附录C (83)中国移动通信集团公司企业标准业务卡管理体系子体系1SIM卡应用技术规范Digital cellular telecommunications system (Phase 2+)Specification of the SIM Application Toolkit for theSubscriber Identity Module - Mobile Equipment(SIM - ME) interface1总则本规范的制定是为了保证中国移动通信集团公司900/1800MHz TDMA数字蜂窝移动通信网的移动台中支持“SIM卡应用工具箱”的SIM卡和移动设备(ME)之间能够正常运行。