PolarSoft BACnet Stacks
If you're a software developer tasked with implementing BACnet, the international standard for building and control systems networking, you've come to the right place. If you've looked at the BACnet standard, you know that it's very complex, and you probably don't have the time to become that much of a BACnet expert. You probably don't have the time or resources necessary to develop BACnet support from the ground up. You need a source for reliable platforms to help jumpstart the process of getting your products communicating with other BACnet devices. You may even have multiple platforms that require a customized BACnet solution to fit your products. You need PolarSoft®.
Whether you need Windows or Linux or embedded applications down to the smallest of devices, our extensive collection of BACnet products is the first place to look.
Windows Applications - Binary Deployment
PolarSoft provides a Windows BACnet stack that is licensed based on binary deployment. This means that you pay a small royalty fee for each copy that you distribute. The pricing model makes this an attractive choice for applications that are deployed on PCs.
The BACdoor OEM Client/Server (BACDOC) is a Windows DLL that allows programs in C, C++, VB and .net to make use of an extensive collection of functions covering both client and server applications. The API provides multiple schemes for interacting with application programs, including windowed and windowless operation, and synchronous/asynchronous calls.
PolarSoft FreeRange is a set of modular software component modules that provide BACnet client and server application layer, network layer and media access (MAC) layer communications services to embedded systems programs. FreeRange is written entirely in the C language for ease of portability to various platforms.
FreeRange interfaces with the embedded system through simple function calls. FreeRange provides entrypoints that your application program must call periodically or under certain circumstances. Also, your application program must provide certain routines that FreeRange may call when needed, for example to send and receive characters from a serial port for MS/TP, or to handle specific service requests. An application template source file contains empty shells for these functions.
The FreeRange BACnet Stack implements generic handling for BACnet services, passing control to routines in your application program when particular services are requested.
Specific types of communications media, such as Ethernet 8802-3, ARCNET, MS/TP and BACnet/IP are handled by MAC layer drivers that interface with the FreeRange stack. The diagram illustrates the relationship of these programs with each other.
FreeRange automatically handles various services such as Who-Is, I-Am, and DeviceCommunicationControl execution. The FreeRange stack pre-qualifies ReadProperty and WriteProperty services and passes the parameters for these requests directly to your application. This allows your application to enforce whatever policies that you want on interpretation of BACnet object identifiers. The only exception is that most of the properties of the Device object are handled directly within FreeRange. ReadPropertyMultiple and WritePropertyMultiple are automatically reduced to single property reads and writes by the stack, simplifying implementation of these common services.
The stack is logically divided into five parts: core functions, stack routines, client routines, application routines and MAC drivers. Typically, you will only modify the application template and MAC drivers for a given implementation.
The stack also includes full routing functionality and a high-performance MAC layer interface. You can use FreeRange with a single media type, or with multiple ports with N-way routing. The BACnet device object may be homed on any single media type.
Major Supported Options
- N-way Routing
- BBMD functionality
- MS/TP Proxy functionality
32 bit Processor, >256K RAM, >512K Flash, 1ms timer resolution Recommended