一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌入式设备事件检测处理方法与流程

2022-11-23 13:28:52 来源:中国专利 TAG:


1.本发明涉及嵌入式设备运维技术领域,特别指一种嵌入式设备事件检测处理方法。


背景技术:

2.随着物联网应用在生活中的不断普及,各种嵌入式设备层出不穷、百花齐放,这些嵌入式设备为了安全性和可靠性,会做很多保护及故障处理,这些保护及故障处理归为事件。为了判断嵌入式设备是否存在故障以及一些保护措施是否有被触发,需要对这些事件进行检测和处理。
3.这些事件对应信号的类型多种多样,有数字信号(只有0和1两种状态)和模拟信号两种形式(大于或者小于某个范围触发报警),有的信号干扰较大需要做滤波处理,有的信号实时性很高一但发生需要立即处理,有的信号实时性较低需要较长时间才能触发,不同信号(事件)触发故障后所执行的动作也不尽相同。
4.然而,传统上对不同类型的事件没有一个统一的处理方法,导致mcu占用内存资源较大,可移植性差,且无法同时处理数字信号和模拟信号对应的事件,无法记录当前事件发生的时间、原因,不便于后续的分析。
5.因此,如何提供一种嵌入式设备事件检测处理方法,实现提升嵌入式设备事件检测处理的准确性以及效率,成为一个亟待解决的技术问题。


技术实现要素:

6.本发明要解决的技术问题,在于提供一种嵌入式设备事件检测处理方法,实现提升嵌入式设备事件检测处理的准确性以及效率。
7.本发明是这样实现的:一种嵌入式设备事件检测处理方法,包括如下步骤:
8.步骤s10、设定一用于设定事件检测数据结构以及事件标志、提供事件检测功能api以及事件恢复api的evevntmanager类,一用于存储事件日志的eventdb类,一用于提供flash读取api、写入api以及擦除api的flash类,一用于缓存事件日志的ringbuffer类;
9.步骤s20、所述事件检测功能api基于使能信号触发事件的检测功能,基于所述事件检测数据结构进行故障录波并执行预设的动作,同步记录事件日志,通过所述ringbuffer类缓存事件日志,更新所述事件标志;
10.步骤s30、所述事件恢复api基于使能信号触发事件的恢复功能,基于所述事件检测数据结构执行预设的动作,同步记录事件日志,通过所述ringbuffer类缓存事件日志,更新所述事件标志;
11.步骤s40、将缓存的所述事件日志通过eventdb类存储至数据库中,通过所述flash类存储至flash中。
12.进一步地,所述步骤s10中,所述事件检测数据结构包括事件存储配置、触发配置、触发门槛、触发时长、故障位序、事件时刻、事件状态以及事件回调函数;
13.所述事件存储配置包括事件类型以及flash存储标识;所述触发配置包括检测标识、恢复标识、记录存储标识、主动上传标识、故障录波标识、事件等级、消息发送标识、自动清除标识以及回调函数参数;所述触发门槛为事件触发阈值,格式为数字信号或者模拟信号;所述触发时长用于记录事件持续时间,按次数统计;所述故障位序用于标识事件触发时对应事件标志的位置;所述事件时刻用于记录事件触发的时刻;所述事件状态用于记录事件当前的状态,通过状态机扫描获取;所述事件回调函数用于执行预设的动作。
14.进一步地,所述步骤s10中,所述eventdb类向evevntmanager类提供存储api、导出api以及清除api,支持事件日志的存储、导出以及清除。
15.进一步地,所述步骤s20具体包括:
16.步骤s21、事件初始化后,mcu通过所述事件检测功能api检测事件检测数据结构中的检测标识是否使能,若是,则进入步骤s22;若否,则结束流程;
17.步骤s22、清除原有的所述触发时长以及事件状态,重新进行记录;
18.步骤s23、基于所述触发门槛判断当前事件是否满足触发条件,若是,则进入步骤s24;若否,则进入步骤s22;
19.步骤s24、基于次数统计事件持续时间,判断所述事件持续时间是否达到触发时长,若是,则进入步骤s25;若否,则继续统计;
20.步骤s25、基于所述事件检测数据结构的故障录波标识进行故障录波,基于所述事件等级对应的优先级,通过所述事件回调函数执行预设的动作,同步记录包括事件源、事件触发值以及事件时刻的事件日志,通过所述ringbuffer类缓存事件日志,基于所述故障位序更新对应的事件标志。
21.进一步地,所述步骤s30具体包括:
22.步骤s31、事件初始化后,mcu通过所述事件恢复api检测事件检测数据结构中的恢复标识是否使能,若是,则进入步骤s32;若否,则结束流程;
23.步骤s32、清除原有的所述触发时长以及事件状态,重新进行记录;
24.步骤s33、基于所述触发门槛判断当前事件是否满足触发条件,若是,则进入步骤s34;若否,则进入步骤s32;
25.步骤s34、基于次数统计事件持续时间,判断所述事件持续时间是否达到触发时长,若是,则进入步骤s35;若否,则继续统计;
26.步骤s35、基于所述事件检测数据结构的事件等级对应的优先级,通过所述事件回调函数执行预设的动作,同步记录包括事件源、事件触发值以及事件时刻的事件日志,通过所述ringbuffer类缓存事件日志,基于所述故障位序清除对应的事件标志。
27.进一步地,所述步骤s40具体为:
28.mcu通过所述事件检测功能api周期性检测ringbuffer类是否缓存有事件日志,将检测到的所述事件日志通过eventdb类的存储api存储至数据库中,通过所述flash类的写入api存储至flash中。
29.本发明的优点在于:
30.通过设定evevntmanager类、eventdb类、flash类以及ringbuffer类,将事件检测处理分为3层4类,通过evevntmanager类设定事件检测数据结构用于对不同类型事件的处理方法进行统一,且事件检测数据结构的触发门槛的格式为数字信号或者模拟信号,即可
同时处理数字信号和模拟信号对应的事件,并在事件处理过程中同步记录包括事件源、事件触发值以及事件时刻的事件日志,便于后续的分析,不仅节约故障定位时间,还降低了运维成本,且记录的事件日志先通过ringbuffer类进行缓存,再将缓存的事件日志通过eventdb类和flash类进行存储,有效降低中断占用时间,提高mcu利用率,最终极大的提升了嵌入式设备事件检测处理的准确性以及效率。
附图说明
31.下面参照附图结合实施例对本发明作进一步的说明。
32.图1是本发明一种嵌入式设备事件检测处理方法的流程图。
33.图2是本发明的架构示意图。
34.图3是本发明事件检测的流程图。
35.图4是本发明事件恢复的流程图。
具体实施方式
36.本技术实施例中的技术方案,总体思路如下:通过设定事件检测数据结构用于对不同类型事件的处理方法进行统一,以提升嵌入式设备事件检测处理的准确性;由于flash写入速度较慢,如果处于中断中将导致中断执行时间被拉长,使得很多重要任务得不到执行,通过ringbuffer类对记录的事件日志先进行缓存,而这个过程基本不耗时,然后在主流程中取缓存的事件日志并存储,能有效降低中断占用,提高mcu利用率,进而提升嵌入式设备事件检测处理的效率。
37.请参照图1至图4所示,本发明一种嵌入式设备事件检测处理方法的较佳实施例,包括如下步骤:
38.步骤s10、设定一用于设定事件检测数据结构以及事件标志、提供事件检测功能api以及事件恢复api的evevntmanager类,一用于存储事件日志的eventdb类,一用于提供flash读取api、写入api以及擦除api的flash类,一用于缓存事件日志的ringbuffer类;
39.步骤s20、所述事件检测功能api基于使能信号触发事件的检测功能,基于所述事件检测数据结构进行故障录波并执行预设的动作,同步记录事件日志,通过所述ringbuffer类缓存事件日志,更新所述事件标志;
40.步骤s30、所述事件恢复api基于使能信号触发事件的恢复功能,基于所述事件检测数据结构执行预设的动作,同步记录事件日志,通过所述ringbuffer类缓存事件日志,更新所述事件标志;
41.步骤s40、将缓存的所述事件日志通过eventdb类存储至数据库中,通过所述flash类存储至flash中。
42.本发明通过上述步骤,提供一种可配置、支持多种事件类型、函数可重入、占用mcu资源少、可产生事件日志、支持事件自动恢复的事件检测处理方法。
43.所述步骤s10中,所述事件检测数据结构包括事件存储配置(savecfg)、触发配置(config)、触发门槛(valuethreshold)、触发时长(timethreshold)、故障位序(faultorder)、事件时刻(cnttick)、事件状态(state)以及事件回调函数((*callback)(uint16_tdata));
44.所述事件存储配置包括事件类型以及flash存储标识,所述flash存储标识即用于标识是否固化到flash中;所述触发配置包括检测标识、恢复标识、记录存储标识、主动上传标识、故障录波标识、事件等级、消息发送标识、自动清除标识以及回调函数参数;所述触发门槛为事件触发阈值,格式为数字信号或者模拟信号,当事件的信号值高于或者低于所述触发门槛,则触发对应的事件检测或者事件恢复;所述触发时长用于记录事件持续时间,按次数统计;所述故障位序用于标识事件触发时对应事件标志的位置;所述事件时刻用于记录事件触发的时刻;所述事件状态用于记录事件当前的状态,通过状态机扫描获取;所述事件回调函数用于执行预设的动作,即事件触发时执行的动作。
45.所述步骤s10中,所述eventdb类向evevntmanager类提供存储api、导出api以及清除api,支持事件日志的存储、导出以及清除。
46.所述步骤s20具体包括:
47.步骤s21、事件初始化后,mcu通过所述事件检测功能api检测事件检测数据结构中的检测标识是否使能,若是,则进入步骤s22;若否,则结束流程;
48.步骤s22、清除原有的所述触发时长以及事件状态,重新进行记录;
49.步骤s23、基于所述触发门槛判断当前事件是否满足触发条件,若是,则进入步骤s24;若否,则进入步骤s22;
50.步骤s24、基于次数统计事件持续时间,判断所述事件持续时间是否达到触发时长,若是,则进入步骤s25;若否,则继续统计;
51.步骤s25、基于所述事件检测数据结构的故障录波标识进行故障录波,基于所述事件等级对应的优先级,通过所述事件回调函数执行预设的动作,同步记录包括事件源、事件触发值以及事件时刻的事件日志,通过所述ringbuffer类缓存事件日志,基于所述故障位序更新对应的事件标志,即置位对应的所述事件标志。
52.所述步骤s30具体包括:
53.步骤s31、事件初始化后,mcu通过所述事件恢复api检测事件检测数据结构中的恢复标识是否使能,若是,则进入步骤s32;若否,则结束流程;
54.步骤s32、清除原有的所述触发时长以及事件状态,重新进行记录;
55.步骤s33、基于所述触发门槛判断当前事件是否满足触发条件,若是,则进入步骤s34;若否,则进入步骤s32;
56.步骤s34、基于次数统计事件持续时间,判断所述事件持续时间是否达到触发时长,若是,则进入步骤s35;若否,则继续统计;
57.步骤s35、基于所述事件检测数据结构的事件等级对应的优先级,通过所述事件回调函数执行预设的动作,同步记录包括事件源、事件触发值以及事件时刻的事件日志,通过所述ringbuffer类缓存事件日志,基于所述故障位序清除对应的事件标志。
58.所述步骤s40具体为:
59.mcu通过所述事件检测功能api周期性检测ringbuffer类是否缓存有事件日志,将检测到的所述事件日志通过eventdb类的存储api存储至数据库中,通过所述flash类的写入api存储至flash中。
60.本发明兼顾数字信号和模拟信号,基于触发时长灵活配置检测次数以实现滤波,不同事件可执行不同的操作,通过事件回调函数实现事件多样化,事件日志记录更让后续
分析处理锦上添花、提高效率,且mcu使用率低,事件恢复还可让事件自动运行,减少不必要的后续冗余操作。
61.综上所述,本发明的优点在于:
62.通过设定evevntmanager类、eventdb类、flash类以及ringbuffer类,将事件检测处理分为3层4类,通过evevntmanager类设定事件检测数据结构用于对不同类型事件的处理方法进行统一,且事件检测数据结构的触发门槛的格式为数字信号或者模拟信号,即可同时处理数字信号和模拟信号对应的事件,并在事件处理过程中同步记录包括事件源、事件触发值以及事件时刻的事件日志,便于后续的分析,不仅节约故障定位时间,还降低了运维成本,且记录的事件日志先通过ringbuffer类进行缓存,再将缓存的事件日志通过eventdb类和flash类进行存储,有效降低中断占用时间,提高mcu利用率,最终极大的提升了嵌入式设备事件检测处理的准确性以及效率。
63.虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献