upm/src/bacnetmstp/CMakeLists.txt

12 lines
414 B
CMake
Raw Normal View History

bacnetmstp: initial BACnet MS/TP implementation This driver is implemented as a singleton due to it's reliance on the bacnet-stack implementation. This implementation does not currently support multiple BACnet networks at the same time, though in the future it might, depending on the future of bacnet-stack development. The version of bacnet-stack used in developing this driver was 0.8.3. This driver is not intended to be used directly by end users, rather it is intended for UPM drivers supporting specific BACnet devices, such as the Veris E50H5 Energy Meter. Unfortunately, this means that a process can only support a single RS-485 BACnet network, though you can support multiple devices on that network. No examples are provided. Please look at the E50HX driver for an example of how to use this class in a BACnet MS/TP device driver if you want to write one. When initialized, the bacnet-stack library will attach to your RS-485 based BACnet network, and start a Master Finite State Machine (FSM) in a separate thread. This thread will handle the details of token passing and locating other Masters in the network (Poll For Master). This driver will appear as a BACnet Master device on the BACnet network, which supports only the required Device Object and any required services (readProp) and Device Object properties. When initializing the driver, it is important to select a Device Object Instance ID that is unique on your BACnet network. This is the unique identifier that will be used to identify your Master to the rest of the BACnet network. In addition, it may take some time after initialization before you will be able to communicate on the network, as the first thing that has to happen is that all Masters on the network need to be identified (handled by the Master FSM) and a token needs to be received before your Master can begin transmitting (making requests). This may take a couple of minutes on a large network. You can speed this process up by specifying a maxMaster (to initMaster()) that is smaller than the default (127) -- but only if you are CERTAIN that there are no masters with a MAC address higher than the value you choose. If you fail to follow this rule, you may introduce hard to identify token passing problems on the network for yourself and other BACnet Masters. Currently, this driver only supports the readProperty and writeProperty requests to other BACnet devices. In addition, array property reading and writing is not currently supported. Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-03-28 16:47:25 -06:00
set (libname "bacnetmstp")
set (libdescription "upm driver module for BACnet MS/TP devices")
set (module_src ${libname}.cxx device-client.c bacnetutil.cxx)
set (module_hpp ${libname}.hpp bacnetutil.hpp)
bacnetmstp: initial BACnet MS/TP implementation This driver is implemented as a singleton due to it's reliance on the bacnet-stack implementation. This implementation does not currently support multiple BACnet networks at the same time, though in the future it might, depending on the future of bacnet-stack development. The version of bacnet-stack used in developing this driver was 0.8.3. This driver is not intended to be used directly by end users, rather it is intended for UPM drivers supporting specific BACnet devices, such as the Veris E50H5 Energy Meter. Unfortunately, this means that a process can only support a single RS-485 BACnet network, though you can support multiple devices on that network. No examples are provided. Please look at the E50HX driver for an example of how to use this class in a BACnet MS/TP device driver if you want to write one. When initialized, the bacnet-stack library will attach to your RS-485 based BACnet network, and start a Master Finite State Machine (FSM) in a separate thread. This thread will handle the details of token passing and locating other Masters in the network (Poll For Master). This driver will appear as a BACnet Master device on the BACnet network, which supports only the required Device Object and any required services (readProp) and Device Object properties. When initializing the driver, it is important to select a Device Object Instance ID that is unique on your BACnet network. This is the unique identifier that will be used to identify your Master to the rest of the BACnet network. In addition, it may take some time after initialization before you will be able to communicate on the network, as the first thing that has to happen is that all Masters on the network need to be identified (handled by the Master FSM) and a token needs to be received before your Master can begin transmitting (making requests). This may take a couple of minutes on a large network. You can speed this process up by specifying a maxMaster (to initMaster()) that is smaller than the default (127) -- but only if you are CERTAIN that there are no masters with a MAC address higher than the value you choose. If you fail to follow this rule, you may introduce hard to identify token passing problems on the network for yourself and other BACnet Masters. Currently, this driver only supports the readProperty and writeProperty requests to other BACnet devices. In addition, array property reading and writing is not currently supported. Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-03-28 16:47:25 -06:00
if (BACNET_FOUND)
set (reqlibname "libbacnet")
include_directories(${BACNET_INCLUDE_DIRS})
upm_module_init()
upm_target_link_libraries(${libname} ${BACNET_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
bacnetmstp: initial BACnet MS/TP implementation This driver is implemented as a singleton due to it's reliance on the bacnet-stack implementation. This implementation does not currently support multiple BACnet networks at the same time, though in the future it might, depending on the future of bacnet-stack development. The version of bacnet-stack used in developing this driver was 0.8.3. This driver is not intended to be used directly by end users, rather it is intended for UPM drivers supporting specific BACnet devices, such as the Veris E50H5 Energy Meter. Unfortunately, this means that a process can only support a single RS-485 BACnet network, though you can support multiple devices on that network. No examples are provided. Please look at the E50HX driver for an example of how to use this class in a BACnet MS/TP device driver if you want to write one. When initialized, the bacnet-stack library will attach to your RS-485 based BACnet network, and start a Master Finite State Machine (FSM) in a separate thread. This thread will handle the details of token passing and locating other Masters in the network (Poll For Master). This driver will appear as a BACnet Master device on the BACnet network, which supports only the required Device Object and any required services (readProp) and Device Object properties. When initializing the driver, it is important to select a Device Object Instance ID that is unique on your BACnet network. This is the unique identifier that will be used to identify your Master to the rest of the BACnet network. In addition, it may take some time after initialization before you will be able to communicate on the network, as the first thing that has to happen is that all Masters on the network need to be identified (handled by the Master FSM) and a token needs to be received before your Master can begin transmitting (making requests). This may take a couple of minutes on a large network. You can speed this process up by specifying a maxMaster (to initMaster()) that is smaller than the default (127) -- but only if you are CERTAIN that there are no masters with a MAC address higher than the value you choose. If you fail to follow this rule, you may introduce hard to identify token passing problems on the network for yourself and other BACnet Masters. Currently, this driver only supports the readProperty and writeProperty requests to other BACnet devices. In addition, array property reading and writing is not currently supported. Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2016-03-28 16:47:25 -06:00
endif ()