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 Service |
+ Initiate |
+ Execute |
+
+
+ | Who Is |
+ Yes |
+ Yes |
+
+
+ | I Am |
+ Yes |
+ Yes |
+
+
+ | Who Has |
+ Yes |
+ Yes |
+
+
+ | I Have |
+ Yes |
+ Yes |
+
+
+ | Read Property |
+ Yes |
+ Yes |
+
+
+ | Write Property |
+ Yes |
+ Yes |
+
+
+ | Device Communication Control |
+ Yes |
+ Yes |
+
+
+ | ReinitializeDevice |
+ Yes |
+ Yes |
+
+
+ | Atomic Read File |
+ Yes |
+ Yes |
+
+
+ | Atomic Write File |
+ Yes |
+ Yes |
+
+
+ | Time Synchronization |
+ Yes |
+ Yes |
+
+
+ | UTC Time Synchronization |
+ Yes |
+ Yes |
+
+
+ | Subscribe COV |
+ - |
+ - |
+
+
+ | Confirmed COV Notification |
+ Yes |
+ Yes |
+
+
+ | Unconfirmed COV Notification |
+ Yes |
+ Yes |
+
+
+ | 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
+
+
+
+
+
+ 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
+
+