BACnet Server API: Linux
The BACnet Server API is a shared library for Linux which can be used to build a BACnet Server,
a Gateway or a BACnet Client Application using C/C++, JAVA or Lua.
It's purpose is to make real time information available via BACnet Services so that other
BACnet devices can read/write to the BACnet Server. It's most common use would be as a gateway
for a Non BACnet system to allow other BAcnet Devices to monitor and control the Non BACnet system.
It supports BACnet/IP, BACnet Ethernet, BACnet MSTP, BACnet PTP and the Anex H Data Link Layers.
The SDK includes a license of the BACnet Operator Workstation,
BACnet device simulator and Linux development board.
Real Time Data from the Non BACnet system is stored inside BACnet Objects which are accessible
from other devices on the network. The information can be stored in Analog or Binary Objects in
one or more internal devices. The BACnet Server has the ability to act as more than
1 device to allow points to be grouped in a logical manner. An example of this might be for a
gateway to monitor 6 identical Chillers each with 500 internal points. 6 internal Devices can
be created each with 500 BACnet objects. Each of the 6 devices can be given a name to represent
the 6 Chillers, and the same addressing and object names can be used for the 500
BACnet objects for each Chiller. This simplifies the gateway and reduces the size of
the object list which has a size of 500 per chiller rather than 3000 if all points
were inside the same device.
Evaluation copy evalable for download.
Frequently Asked Questions
here for Frequently Asked Questions.
BACnet Server API
The BACnet Server API is broken up into 4 components as follows.
The Internal BACnet Objects module of the BACnet Server API
can be used to interact with BACnet Objects that are internal to the server.
Objects can be Analog or Binary Objects and can be accessed from other BACnet
Devices on the network.
API - Cache
The Cache module of the BACnet Server API can be used to read/write to
local or remote BACnet Objects using the BACnet Server cache.
The cache in the BACnet Server is optimised to use the service appriopriate
to the device from which information is being requested.
The cache locates a device using the whoIs/Iam service, and then checks to see if
readPropertyMultiple messages can be sent.
After the device capabilities are known, the BACnet Server will
issue the appropriate service to retreive the information.
API - Service Indication
The Service Indication module of the BACnet Server API
can be used to receive Service Messages that are initiated by
internal or remote BACnet Devices. Typical uses are for confirmed/unconfirmedEventNotifications
for Alarms and confirmed/unconfirmedCOVNotifications for COV notifications. The messages can be used
to write to a database etc.
API - Service Request
The Service Request module of the BACnet Server API is used to send BACnet Services to a
local or remote devices on the BACnet network.
The services operate synchronously, they do not return until a response has been returned or a timeout takes place.
Sample Source Code
There are many samples available in our help documentation which is
available from our downloads page
on this site.
Click here for the BACnet Protocol Implementation Conformance Statement (PIC).