我想从一个商业软件包中监控一个模拟过程。商业软件提供了C API接口,该接口具有用于进程的初始化回调函数以及在模拟过程中的每个步骤执行的回调函数。在每个步骤中,我希望监控/绘制回调函数中可用的大约10个浮点值。我计划使用LightningChart、http://www.arction.com/等绘图工具来监视和查看这些值。在更新图表的每个步骤中,我将使用C++/CLI包装器来调用.NET制图库。
我已经创建了一个简单的dll,利用API回调函数将值输出到一个文本文件,完成后我将在该文件中执行绘图和分析。虽然我的目标是实时查看数据。
我的问题是,如何在模拟流程初始化回调中调用表单,使其在整个流程中保持不变,并且可以在每个步骤中进行更新。另外,理想的数据结构是什么来存储同样持久的过程参数值?当使用C++通过回调函数将数据值写入文本文件时,在我的i7处理器上的速度大约是每秒1700步。在不使用API和回调函数存储数据的情况下,模拟速度约为每秒4000步。我显然希望在绘制实时数据图表时,速度会大大减慢,这是可以接受的。有什么想法吗?
发布于 2013-01-03 14:27:03
当您打算绘制实时数据图表时,我建议您使用内存映射文件在模拟进程和回调函数之间共享数据。这将比在物理文件上执行I/O操作更快,并且您将能够共享数据。在初始化函数中,您可以创建表单,并使用内存映射文件从回调更新表单上的值。以下是有关内存映射文件link1 link2的一些链接
https://stackoverflow.com/questions/14132740
复制相似问题