0

有没有人在 BACnet 服务器上使用 bacnet4j 构建多个虚拟本地设备?必须做些什么,才能实现这一目标?

这基本上是可能的吗?

4

2 回答 2

0

是的,您可以使用 bacnet4j 创建 BACnet 服务器。以下示例显示如何使用模拟值 BACnet 对象设置设备:

    IpNetwork network = new IpNetwork("10.78.20.255", 0xBAC5);
    Transport transport = new Transport(network);

    // create device with random device number
    int localDeviceID = 10000 + (int) ( Math.random() * 10000);
    LocalDevice localDevice = new LocalDevice(localDeviceID, transport);
    localDevice.initialize();

    System.out.println("Local device is running with device id " + localDeviceID);

    // create sample BACnet object
    ObjectIdentifier objectId = new ObjectIdentifier(ObjectType.analogValue, 1);
    BACnetObject object = new BACnetObject(localDevice, objectId);

    localDevice.addObject(object);

请注意,您必须确保对象标识符(示例中的模拟值 1)在设备上是唯一的。

于 2015-06-04T13:34:57.640 回答
0

我的建议是考虑使用环回地址,或者更确切地说(不是众所周知的)回溯地址范围。

换句话说,尽管很多人都知道 127.0.0.1 的 IP(v4) 地址是环回地址,但没有多少人知道/停下来意识到它是 A 类地址,换句话说,有很多(本地) 除了典型/默认的 127.0.0.1 地址之外,您可以使用/在此 127.xyz 环回范围内可用的 IP(v4) 地址,例如 127.0.0.2/etc - 两者(/范围内的所有地址)都将(/应该)解析到您的本地计算机,因此允许您的所有(虚拟)设备具有相同的(BACnet)端口#但都分配/使用唯一的 IP 地址。

于 2021-08-24T21:30:24.680 回答