From 43ee40a83fa6f0aac02bec2efa3204bfc67c88de Mon Sep 17 00:00:00 2001 From: skarg Date: Wed, 6 Dec 2006 21:43:49 +0000 Subject: [PATCH] --- bacnet-stack/doc/htdocs/images/BACnet.png | Bin 0 -> 11912 bytes bacnet-stack/doc/htdocs/index.html | 483 ++++++++++++++++++++++ 2 files changed, 483 insertions(+) create mode 100644 bacnet-stack/doc/htdocs/images/BACnet.png create mode 100644 bacnet-stack/doc/htdocs/index.html diff --git a/bacnet-stack/doc/htdocs/images/BACnet.png b/bacnet-stack/doc/htdocs/images/BACnet.png new file mode 100644 index 0000000000000000000000000000000000000000..29c7b57d76b00b0018ae0d01fa056a4f69de840c GIT binary patch literal 11912 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 KiskZ_U;iH+ + + + + BACnet stack - open source BACnet protocol stack + + +

BACnet Stack

+

An open source BACnet protocol stack for embedded systems

+
+

About this Project

+

This BACnet protocol stack library + provides a BACnet application layer, network layer and media access (MAC) + layer communications services for an embedded system.

+ +

BACnet - A Data Communication Protocol for Building + Automation and Control Networks - see bacnet.org. BACnet is a standard data + communication protocol for Building Automation and Control Networks. BACnet + is an open protocol, which means anyone can contribute to the standard, and + anyone may use it. The only caveat is that the BACnet standard document + itself is copyrighted by ASHRAE, and they sell the document to help defray + costs of developing and maintaining the standard (just like IEEE or ANSI or + ISO).

+ +

For software developers, the BACnet protocol is a standard way to send and + receive messages on the wire containing data that is understood by other + BACnet compliant devices. The BACnet standard defines a standard way to + communicate over a number of wires, known as Data Link/Physical Layers: + Ethernet, EIA-485, EIA-232, ARCNET, and LonTalk. The BACnet standard also + defines a standard way to communicate using UDP, IP and HTTP (Web + Services).

+ + There are other open source projects for BACnet:

+
    +
  • VTS - visual test shell for + Win32, used for Visually testing a BACnet implementation. It also includes + a detailed network sniffer for BACnet messages, and the ability to send + any BACnet services. The source code is in the public domain.
  • +
  • Wireshark - an open source, + cross platform protocol analyzer with BACnet support. The detailed BACnet + support in began in version 0.10.11 released on May 4, 2005 when Wireshark + was known as Ethereal.
  • +
  • BACnet4Linux - a + LGPL BACnet application that requires Linux as the OS.
  • +
  • BACnet Firewall Router -an + application that combines BACnet routing capability with traffic management + functions to carefully control access to building automation and control + networks.
  • +
  • BACpypes - a + BACnet stack written in Python.
  • +
+ +

There are also commercial BACnet protocol source code libraries for BACnet + that are designed for embedded use:

+
    +
  • CimetricsTM - has a source library + called BACstac/32 as part of their BACNet Protocol Stack SDK.
  • +
  • Polarsoft - has a + protocol stack source library for embedded use called FreeRangeTM and PolarSoft® FreeRange VSB (Very + Small BACnet stack).
  • +
  • SCADA Engine - The BACnet + Linux Server is a complete BACnet Device running on the linux platform. + The entire source code is available for custom applications and has been + written in ANSI C which has been succesfully ported to Unix, + VxWorks etc.
  • +
+ +

Licensing

+

Our BACnet protocol stack implementation is specifically designed for the + embedded BACnet appliance, using a GPL with exception license (like eCos), + which means that any changes to the core code that are distributed are + made available, but the BACnet library can be linked to + proprietary code without it becoming GPL. + See the eCos license overview for + easy to read details about this exception to the GPL. + The license does not require users to release the source code of any + applications that are developed with this BACnet stack.

+ +

The text of the GPL exception included in each source file is as + follows:

+ +
+

"As a special exception, if other files instantiate templates or + use macros or inline functions from this file, or you compile + this file and link it with other works to produce a work based + on this file, this file does not by itself cause the resulting + work to be covered by the GNU General Public License. However + the source code for this file must still be made available in + accordance with section (3) of the GNU General Public License."

+

+ +

The source code

+

The source code is written in C for portability, and includes + unit tests (PC based unit tests) and example application code. + Since the code is designed to be + portable, it compiles with GCC as well as other compilers, + such as Borland C++, Visual C++, MinGW, or MicroChip C18. + The source code is also designed to be readable, understandable, + and most importantly, easy to use.

+ +

The BACnet protocol is an ASHRAE/ANSI/ISO standard, so this library + adheres to that standard. BACnet has no royalties or licensing restrictions, + and registration for a BACnet + vendor ID is free.

+ +

What the code does

+ +

The stack comes with unit tests and demo applications + that can be run under Linux, Win32, RTOS-32, or just about any embedded + microcontroller.

+ +

The unit tests can be run in a command shell on Linux using the + unittest.sh script, or using individual .mak files. They were tested under + Debian GNU/Linux and Ubuntu Linux.

+ +

The BACnet stack was functionally tested + using VTS (Visual Test Shell), + another project hosted on SourceForge, as well as various BACnet controllers, + BACnet workstations, and through BACnet routers.

+ +

Using a master Makefile in the project root directory, a dozen + demo applications can be created that run under Linux or Win32. + Linux supports BACnet Ethernet, BACnet/IP, or ARCNET data link layer + for communication, and BACnet/IP is supported under Win32. BACnet Ethernet + can also be used under Win32 with the WinPcap library. + Root priveleges are required to run the Ethernet or ARCNET interfaces + on Linux, but not needed to run BACnet/IP.

+ + + $ make clean all
+ $ demo/server/bacsrv 123
+ BACnet Server Demo - Device #123
+
+ $ demo/readprop/bacrp
+ bacrp device-instance object-type object-instance property [index]
+
+ $ demo/writeprop/bacwp
+ bacwp device-instance object-type object-instance property tag value [priority] [index]
+
+ $ demo/readfile/bacarf
+ bacarf device-instance file-instance local-name
+
+ $ demo/writefile/bacawf
+ bacawf device-instance file-instance local-name
+
+ $ demo/reinit/bacrd
+ Usage: bacrd device-instance state [password]
+ Send BACnet ReinitializeDevice service to device.
+
+ $ demo/whohas/bacwh
+ Usage: bacwh object-type object-instance | object-name
+ Send BACnet WhoHas request to devices, and wait for responses.
+
+ $ demo/dcc/bacdcc
+ Usage: bacdcc device-instance state timeout [password]
+ Send BACnet DeviceCommunicationControl service to device.
+
+ $ demo/timesync/bacts
+ Received TimeSyncronization Request
+ 2006/8/30 07:10:45.00
+
+ $ demo/ucov/bacucov
+ Usage: bacucov pid device-id object-type object-instance time property tag value [priority] [index]
+
+ $ demo/whois/bacwi
+ Usage: bacwi device-instance | device-instance-min device-instance-max
+ Send BACnet WhoIs request to devices, and wait for responses.
+
+ The device-instance can be 0 to 4194303, or -1 for ALL.
+ The device-instance can also be specified as a range.
+
+
+ +

The demos can be compiled under Win32 using Borland C++ or + Microsoft Visual C++, both of which + are free (as in beer) command line compilers. Be sure to pick up the free + patches (service packs) for the Borland C++ compiler (SP1, SP2), as well as the free turbo debugger. It might also be possible to create Win32 projects using the free Visual Studio Express Edition or MinGW - Minimalist GNU for Windows, but I have haven't tried it. I have used Code::Blocks for compiling the unit tests using the MinGW compiler, but have not tried to get the demos working with MinGW. I have used Code::Blocks with the Borland C++ compiler and it successfully compiles the code.

+ +

There is a Makefile in the ports/rtos32 directory, and a sample + application that runs under RTOS-32. + It currently uses the BACnet/IP data link layer for communication, and also + has an MS/TP datalink layer sample application. + It compiles using Borland C++.

+ +

There is a project in the ports/pic18 directory, and a sample + application that can be build using MP-Lab + and the Microchip compiler MCC18. The MS/TP portion is now working, + and had a good showing at the BACnet International plugfest.

+ + + +

BACnet services supported matrix

+

The BACnet stack currently implements the following services listed in the + the table. We plan to add the rest of the services as we go. + With the services that are implemented, you could build a BACnet device + that meets the standardized profile for a BACnet Smart Sensor, + BACnet Smart Actuator, or a BACnet Application Specific Controller.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BACnet ServiceInitiateExecute
Who IsYesYes
I AmYesYes
Who HasYesYes
I HaveYesYes
Read PropertyYesYes
Write PropertyYesYes
Device Communication ControlYesYes
ReinitializeDeviceYesYes
Atomic Read FileYesYes
Atomic Write FileYesYes
Time SynchronizationYesYes
UTC Time SynchronizationYesYes
Subscribe COV--
Confirmed COV NotificationYesYes
Unconfirmed COV NotificationYesYes
Read Property Multiple--
Read Property Conditional--
Read Range--
Write Property Multiple--
Get Alarm Summary--
Get Event Information--
Get Enrollment Summary--
Acknowledge Alarm--
Confirmed Event Notification--
Unconfirmed Event Notification--
Unconfirmed Text Message--
Confirmed Text Message--
Add List Element--
Remove List Element--
Create Object--
Delete Object--
Unconfirmed Private Transfer--
Confirmed Private Transfer--
VT Open--
VT Data--
VT Close--
+ +

BACnet Objects

+ +

The BACnet stack currently implements a Device Object, and + handles all of the ReadProperty inquiries for the required + Device Object properties. The stack handles Who-Is inquiries + with an I-Am, WhoHas with I-Have, and handles reject messages for + services not currently supported. There is built in handling for + DeviceCommunicationControl.

+ +

The example handlers interact with example objects, including + Analog Input, Analog Output, Analog Value, Binary Input, + Binary Output, Binary Value, Life Safety Point, + and Multi-state Output objects. + The objects can be accessed using WriteProperty, + ReadProperty, or Who-Has services. Adding other BACnet objects + is only a matter of setting up ReadProperty, WriteProperty, or + I-Have handling for the required properties and any other + properties that you want to support.

+ +

File Objects are conditionally included in the demonstation + applications. The files can be access using WriteProperty, + ReadProperty, Who-Has, AtomicWriteFile, or AtomicReadFile services.

+ +

Getting Involved

+ +

If you want to help out on this project, join the developers mailing list, introduce yourself, and tell us what you would like to do. + If you are trying to implement a BACnet device or service using this project, + you are welcome to join the developers mailing list as well.

+ +

More details about the project can be found on + the BACnet Source Forge Project Page

+ +

There is documentation that describes the mechanisms in the BACnet Stack. + I wrote up some answers to some frequently asked questions. Of course, + there are a handful of text files in the doc directory of the project.

+ +

BACnet + Stack file download

+ +

BACnet Developer Resources

+ +There are a number of resources that can help you develop a BACnet product or project. + +
    +
  • VTS - visual test shell for + Win32, used for Visually testing a BACnet implementation. It also includes + a detailed network sniffer for BACnet messages, and the ability to send + any BACnet services. The source code is in the public domain.
  • +
  • Wireshark - an open source, + cross platform protocol analyzer with BACnet support. The detailed BACnet + support in began in version 0.10.11 released on May 4, 2005 when Wireshark + was known as Ethereal.
  • +
  • Ubuntu Linux or + Debian Linux - my + development platforms of choice. + Linux makes a great development platform + because all the necessary development tools are included.
  • +
  • Code::Blocks - a free cross-platform + open source C/C++ IDE. Includes the MinGW compiler for Win32.
  • +
+ +

BACnet Developer Help

+ +

BACnet® International Developer Resources

+ +

Products and Projects that use this BACnet Stack

+ +

Did you develop a product using this BACnet stack? Let us know, and you +can get a little recognition for your hard work!

+ +

SCInterface™ = Sensor Control Interface - middleware + platform for managing legacy and modern-day sensors through a centralized + interface

+ +

BACnetSim - a +portable implementation of the BACnet data communication protocol. +BACnetSim is meant for embedded devices and use MS/TP as the media +access layer. BACnetSim is a fork of bacnet-stack-0.0.1

+ +
+ + SourceForge.net Logo + +

ASHRAE® and + BACnet® are registered trademarks of the American + Society of Heating, Refrigerating and Air-Conditioning Engineers, Inc., + 1791 Tullie Circle NE, Atlanta, GA 30329.

+

Updated 24-Oct-2006 by Steve Karg

+ +