硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1046|回复: 8
收起左侧

[有问必答] 关于系统的监控系统设计

[复制链接]

2

主题

33

回帖

39

积分

新手上路

积分
39
发表于 2024-12-4 08:24:59 | 显示全部楼层 |阅读模式
现在我有个需求是设计系统的监控模块,模块中有报警,故障,恢复三种类型的事件状态,每种类型中都有一些具体的事件。如何能系统的设计这一个监控模块比较好?

我使用了frerrtos,用1个事件组进行记录相应的事件是否发生或处理(流程是:事件发生 ---> 事件响应:记录响应事件编码等提示记录和操作 ---> 事件处理:大部分事件是人为进行处理,比如接触不良,进行部分模块更换或重新插拔等)。
事件响应和事件处理是异步的。开了两个task,一个是事件监控+响应,一个是事件处理。
使用事件组后发现,每个事件发生后对事件组进行置位,事件上报的代码有点分散,存在非常大的耦合性,事件处理那一部分也是一样的情况。
所以有什么比较好的系统监控框架可以进行参考或者中间件进行移植?
谢谢哥哥们!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-4 15:13:22 | 显示全部楼层
感觉简单些,这些都做到一个任务里面比较合适。
回复

使用道具 举报

2

主题

33

回帖

39

积分

新手上路

积分
39
 楼主| 发表于 2024-12-4 17:22:16 | 显示全部楼层
eric2013 发表于 2024-12-4 15:13
感觉简单些,这些都做到一个任务里面比较合适。

硬汉哥,这个怎么做到一个任务里面?
事件响应与事件处理两个事情是异步进行的,当事件响应后,就跳转到事件处理部分吗?
回复

使用道具 举报

16

主题

76

回帖

124

积分

初级会员

积分
124
发表于 2024-12-5 09:01:00 | 显示全部楼层
目前我也想在我自己的程序里加一个故障功能,也是在想如何解决。我的思路是故障信息确认是一个任务,将故障恢复放到故障对应模块的任务去做。(也只是想法,还未实践)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-5 09:17:00 | 显示全部楼层
浅末哈哈 发表于 2024-12-4 17:22
硬汉哥,这个怎么做到一个任务里面?
事件响应与事件处理两个事情是异步进行的,当事件响应后,就跳转到 ...

这个任务里面集成个简易的状态机实现,你看看合适不。感觉你的这个以状态机的方式独立集成到一个任务里面比较合适。
回复

使用道具 举报

2

主题

33

回帖

39

积分

新手上路

积分
39
 楼主| 发表于 2024-12-5 11:30:24 | 显示全部楼层
eric2013 发表于 2024-12-5 09:17
这个任务里面集成个简易的状态机实现,你看看合适不。感觉你的这个以状态机的方式独立集成到一个任务里面 ...

硬汉哥,状态机需要状态进行转换,当事件来临之后,状态转换到处理情况吗?这样的话不是会影响其他事件来临后的事件判断吗?

状态机我也考虑了以下,实现了一半,主要就是卡在状态迁移后的状态判断上面,就比如系统启动后,事件A来临,监控系统进行响应,若只是事件A的状态进行迁移的话是可行的,但是事件数量多,感觉重复代码太多了;若系统的状态进行迁移的话,下一个事件B来临,程序跑的是处理事件状态内的逻辑,这样整体的逻辑就出错了。。。
我可能考虑的不够全面
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-6 08:37:49 | 显示全部楼层
浅末哈哈 发表于 2024-12-5 11:30
硬汉哥,状态机需要状态进行转换,当事件来临之后,状态转换到处理情况吗?这样的话不是会影响其他事件来 ...

也可以省事些,你的裸机里面怎么处理的,到了OS下还继续那种函数处理就行。
回复

使用道具 举报

2

主题

33

回帖

39

积分

新手上路

积分
39
 楼主| 发表于 2024-12-9 14:04:06 | 显示全部楼层
eric2013 发表于 2024-12-6 08:37
也可以省事些,你的裸机里面怎么处理的,到了OS下还继续那种函数处理就行。

硬汉哥,我搞了一个简单的系统,包含:上报事件 -- 分类,分发事件 -- 响应、处理事件。这三步让监控更清晰一点。但是感觉太简陋了。。。但是又能用。。
这是个新项目,直接用freertos,没有前面的代码,不过你说的裸机处理。。其实我第一次写的时候就直接用switch case分类,一次就处理完了,感觉后面维护起来太困难了,所以就考虑通过增加一些数据结构啥的方便后期维护和迭代。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-12-10 08:06:20 | 显示全部楼层
浅末哈哈 发表于 2024-12-9 14:04
硬汉哥,我搞了一个简单的系统,包含:上报事件 -- 分类,分发事件 -- 响应、处理事件。这三步让监控更清 ...

也行,好用就行,慢慢优化。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:35 , Processed in 0.041351 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表