【发布时间】:2018-01-01 02:37:33
【问题描述】:
我正在研究一种嵌入式系统协议,用于从微控制器与计算机进行通信。微控制器代码使用 C 语言,计算机应用程序使用 C#。出于调试目的,我目前在 Visual Studio 项目中拥有微控制器部分,因为它比直接在微控制器上编译和单步执行要快。我希望能够在我的 C# 应用程序和 C 控制台应用程序之间来回传递数据,并且都在它们自己的调试器中运行,这样我就可以逐步完成通信循环的所有步骤。
我已经看到一些看起来应该可以通过从 C 控制台应用程序重定向标准输入和标准输出来实现的参考,但所有示例都是从 C# 应用程序启动进程时的。由于这两个应用程序都需要从它们的 VS 调试会话中启动,因此我不确定如何使此连接正常工作。
我所需要的只是一种在每个方向发送字节数组并在另一个应用程序中接收它的方法。
任何帮助将不胜感激!
谢谢, 约翰维克斯
【问题讨论】:
-
windows中进行进程间通信的方式有很多种。套接字是我的首选方式,其他方法是管道和共享内存。这是关于 IPC 的 windows 文章:msdn.microsoft.com/en-us/library/windows/desktop/…
-
他们平时是怎么交流的?
-
如果是串口,就用串口,为你的微控制器代码写一个适配层发送串口。然后,您可以使用虚拟串行端口来连接它们。
-
如果您不想要虚拟串口,则将您的串口伪装成 tcp 连接。我所做的另一种方法是将我的 C 代码编译到一个库中,然后创建一个托管库。我这样做是为了模拟各种外围设备(如 I2C)并创建可视化并检查代码没有不必要地磨损闪存等
-
最后一点,如果你在 Visual Studio 中进行单元测试,很多那种测试风格就会消失(我写 SeaTest 是为了对这种事情进行单元测试)github.com/keithn/seatest
标签: c# c console console-application communication