【问题标题】:How can I implement testable, maintainable real-time logic?如何实现可测试、可维护的实时逻辑?
【发布时间】:2012-05-09 17:38:56
【问题描述】:

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

假设 2:您的应用程序将使用某种自定义算法将这些模块联系在一起,其中可能包括状态变量。示例包括 RTS 游戏、交易程序、车辆监控系统等。该算法可以用真值表表示,或者等效地用 programmable logic array 表示。

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

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

谢谢

【问题讨论】:

    标签: java c++ logic python-2.7


    【解决方案1】:

    你可能想看看Drools

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

    【讨论】:

    • 不错的项目。由于从链接上看不是很明显,它适用于 Java1.5+。
    【解决方案2】:

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

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

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

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

    尽管您可以找到一些分析工具,描述它们的性能,并将其纳入您的“实时”需求。

    【讨论】:

      猜你喜欢
      • 2022-09-25
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多