我正在构建一个与嵌入式设备通信的.net应用程序(xp,vista,7)。我将能够通过IP,串口和调制解调器连接。 问题:我是否应该在我的应用程序中允许某种类型的开放连接,这将允许我通过操作系统中可能设置的其他一些通道连接到设备,只是为了允许将来可扩展而无需在设备上进行任何更改?我只是想象操作系统能够为通过操作系统设置到设备的所有通信通道提供服务。就像管理员通过SMTP或其他协议设置一些频道一样。 我只是不想让自己陷入困境并忽略一些更开放的架构。
感谢。
答案 0 :(得分:2)
我会说:不。
原因1:不要设计您不需要的功能。
原因2:如果另一个系统需要访问,它可以通过分离器使用TCP或串行端口。不确定调制解调器可以做什么。类似的功能很难实现并且自己做对。
答案 1 :(得分:0)
我对你的问题感到有点困惑,但我认为你得到的是你应该将通信方法与应用程序中的更高级代码隔离开来。
答案是肯定的,在您的应用程序中创建一个抽象层,让该层通过您需要的任何方式(调制解调器,IP,串行等)处理与设备的通信。这可能是最好的方法是定义一个支持所需通信调用的接口,然后创建实现该接口的类,这些类完成所选通信方法所需的工作。这样,除了必须选择一种通信方法之外,更高级别的代码并不关心使用什么通信方法。
通过使用这种方法,它很容易为软件添加通信方法。根据设备的操作编写进行通信脏工作的类,并添加一些方法在主应用程序中选择该通信方法。
在操作系统方面,你必须有代码来管理与设备通信的低级细节,因为这些细节通常取决于连接类型,我试图强制连接管理没有看到任何好处以某种方式进入操作系统,这只会使管理变得复杂。您可以通过守护“通信管理器”并将应用程序的其余部分分开来简单地查看或处理收集的数据来获得一些收益。
我不知道您会如何期望应用程序端的任何体系结构都会以某种方式创建一种情况,即设备不需要更新以通过新协议进行报告,因为SMTP合规性,例如,绝对需要新的设备上的代码。
答案 2 :(得分:0)
我也对这个问题感到困惑;你可以更精确(和简洁)吗?
我要提出的一个意见是,您可能会考虑在串行端口/调制解调器通道上实施PPP,以便在整个过程中使用TCP / IP,并允许通过所有通道进行多次连接。