我有一个用于设备控制的 8 位数字输出板。每个外部设备都需要一位,并由不同的应用程序控制。我编写了一个类库和类 DigitalOutputPort (VB 2010),它封装了管理 8 位端口的驱动程序。每个设备应用程序都使用这个类,创建自己的实例。
为了设置数字输出端口的位,我必须向该端口写入一个字节:该字节是所有 8 位的位掩码:要将位号 0 - 1 - 2 设置为 HIGH,我必须写端口上的 7,要将所有 8 位设置为 HIGH,我必须写 256,依此类推...
当只有一个应用程序使用该类时,一切正常。但是如果两个应用程序想在那个端口上设置自己的位,我会遇到问题,因为我不知道其他应用程序设置的所有位的当前值(驱动程序没有这样的功能),当然,我不能改变一个位不改变所有其他(如果我不知道当前的位掩码)
通常这看起来像是两个应用程序之间共享数据的典型案例,我的第一个想法是将端口的当前值写入磁盘上的文件中,所有应用程序都可以访问和读取它。但是对于这个简单的问题来说似乎太重了。此外,它还可能产生性能和可靠性问题。
然后我想在课堂上使用共享字段(属性)。共享字段在类的所有实例之间保留其值:但在来自不同应用程序的实例之间也是如此吗?我找不到有关最后一点的更多信息,我必须进行相同的测试。
第三种方法是我只创建一个 DigitalOutputPort 类的实例,一个用于所有应用程序。第一个需要它的应用程序创建对象,所有其他应用程序将使用已经创建的对象。我比其他方式更喜欢这种方式,但我不知道是否以及如何做到这一点。
在您看来,哪种方法应该是正确的?
谢谢你的回复。