Full FreeRange (FFR)

Embedded BACnet Stack for 32 bit Processors

If you're a developer of microcomputer-based equipment, with applications in commercial buildings, you probably know about BACnet, the international standard for building and control systems networking. Many of your customers are specifying BACnet for new equipment. If you've looked at the BACnet standard, you know that even simple communications functions can present some daunting problems, and you probably don't have the time to become that much of a BACnet expert. You may not have the time or resources necessary to convert all of your existing products to BACnet, but you don't want to be excluded from consideration just because your products don't yet support BACnet. You need a reliable platform to help jumpstart the process of getting your existing products communicating with BACnet devices. But you need to be able to completely customize your BACnet solution to fit your products. You need FreeRange™.

 

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.

 

Supported Services

nameinitiateexecute
Who-IsXX
I-AmXX
Who-HasXX
I-HaveXX
DeviceCommunicationControlX
TimeSynchronizationXX
UTCTimeSynchronizationXX
ReinitializeDeviceX
Confirmed/UnconfirmedTextMessageXX
Confirmed/UnconfirmedPrivateTransferXX
AcknowledgeAlarmXX
Confirmed/UnconfirmedCOVNotificationXX
Unsubscribed COVNotificationXX
Confirmed/UnconfirmedEventNotificationXX
GetAlarmSummaryX
GetEventInformationX
GetEnrollmentSummaryX
SubscribeCOVXX
AtomicReadFileXX
AtomicWriteFileXX
AddListElementXX
RemoveListElementXX
CreateObjectX
DeleteObjectX
ReadPropertyXX
WritePropertyXX
ReadPropertyMultipleXX
WritePropertyMultipleXX
ReadPropertyConditionalXX
ReadRangeXX
VT-OpenX
VT-DataXX
VT-CloseXX

 

Major Supported Options

  • Segmentation
  • N-way Routing
  • BBMD functionality
  • MS/TP Proxy functionality

 

Specifications

Operating System:
Operating System-Independent (multi-threading OS recommended)
32 bit Processor, >256K RAM, >512K Flash, 1ms timer resolution Recommended

LANs:
BACnet/IP, MS/TP, Ethernet 8802-3, ARCNET, PTP

Licensing:
FreeRange is licensed on a one-time fee basis. The license provides for the unrestricted use of the development libraries, and their code components, for the development of BACnet products to be resold in binary form. The development libraries, and components, may not be resold or sublicensed or redistributed. License fees include fully commented source code, documentation, and one year warranty on all code produced by PolarSoft.