如何实现可测试、可维护的实时逻辑

How can I implement testable, maintainable real-time logic?

本文关键字:维护 实时 测试 实现 何实现      更新时间:2023-10-16

假设1:你有一套用于实时监控的模块(非常可维护,有测试(。 它们都运行得非常快,但会重复执行。 它们都需要返回布尔标志,但也可能返回其他数据。 例如,如果观察到鹦鹉死亡或不死亡,CheckParrot 模块将返回。 如果找到任何内容,SeekMorlocks 模块将返回 true,但还会返回数字、航向和距离。

假设 2:应用程序将使用某种自定义算法将这些模块绑定在一起,其中可能包括状态变量。 示例包括 RTS 游戏、交易程序、车辆监控系统等。 该算法可以用真值表表示,也可以等效地用可编程逻辑阵列表示。

问题:有什么开源可以帮助实现可编程逻辑阵列,其中输入和输出是可执行模块? 目标是隔离算法(PLA(以进行独立测试,并轻松地将模块插入其中。

目前,我最感兴趣的是Java解决方案,但也对任何C++或Python感到好奇。

谢谢

你可能想看看流口水

它是规则引擎和一组用于创建/测试它们的工具。

据我所知,没有用于精确实时监控的库。 这是基于监视需要开销的事实,并且由于开销,它不会是实时的。

在嵌入式系统领域,我们通常会找到一些可以输出脉冲的测试点引脚(例如GPIO(。 然后,我们将示波器或逻辑分析仪连接到引脚,以捕获实时迹线数据。 我们要么使用该工具的数据分析功能,要么让该工具将数据下载到另一个可以处理数据的应用程序,例如LabView或MatLab。 这对应用程序的实时性影响最小。

您也许能够为您的处理器找到比处理器更快的在线仿真器,并且可以提供性能分析和其他实时数据收集。

请记住,数据输出需要时间,因此您的应用程序可能不再是"实时的"。 您可以将数据写入内存位置,然后让应用程序在退出之前转储数据。 我已经用JTAG调试器完成了这个。

尽管您可以找到一些分析工具,但可以表征它们的性能,并将其纳入您的"实时"需求中。