这是关于一个需要通过软件控制的机电系统。目前还不清楚它将被写入哪种语言,但由于它并不重要,所以让我们用Java来说。控制软件中的层从真正的机电系统和仿真程序中提取
1.问题是我们需要通过CAN发送消息。所以我们有控制软件,发生了一些事件,我们通过CAN发送消息。机电系统将作出反应。
现在的第2件事情是,显然它能够在没有真正的机电系统的情况下测试软件,因为它减少了工作量。所以我想写另一个程序,一个模拟程序。
所以我想象一下,仿真程序会通知CAN消息何时发送并作出反应。
如何实现这一目标?
我指的是真正的机电一体化系统,控制软件需要在总线上直接发送CAN信息(也许通过一些本地代码)。对于仿真程序,需要某种进程间通信。控制软件的设计必须如何设计:它不在意是否有一些正在侦听的仿真程序或真正的机械系统获取CAN消息?
我首先想到的是控制软件总是通过进程间通信方式发送“CAN消息”。让我们说,为了简单起见,它是RMI。然后通过总线发送真正的CAN消息,同一控制软件中有一些模块通过RMI获取“CAN消息”,并将它们转发给真正的CAN总线。 现在仿真程序也可以通过RMI接收“CAN消息”,并且可以对其做出反应。
这是一个很好的方法吗?因为我发现控制软件中存在一些开销,通过进程间通信与自己进行通信,这在原则上并不是必需的。但是我看不出有其他可能性有抽象层,这样我就没有特殊的代码用于控制软件中的模拟程序。
谢谢您的反馈!