Files
bacnet_stack/bacnet-stack
..
2005-04-21 19:47:33 +00:00
2005-06-13 12:48:25 +00:00
2005-04-21 19:50:05 +00:00
2004-11-16 22:21:02 +00:00
2005-04-01 11:24:10 +00:00
2005-04-02 11:12:00 +00:00
2005-04-01 11:24:10 +00:00
2005-05-27 17:16:55 +00:00
2005-05-27 17:16:55 +00:00
2005-06-18 23:36:08 +00:00
2005-04-22 23:23:04 +00:00
2005-06-12 01:01:30 +00:00
2005-06-18 23:36:08 +00:00
2005-06-12 01:01:30 +00:00
2005-06-13 19:38:14 +00:00
2005-06-13 19:38:14 +00:00
2005-06-02 11:22:36 +00:00
2004-11-16 22:21:02 +00:00
2005-03-23 21:24:47 +00:00
2005-04-02 11:11:29 +00:00
2005-03-23 21:24:47 +00:00
2005-06-13 19:38:14 +00:00
2005-06-12 01:00:42 +00:00
2005-05-03 21:04:16 +00:00
2004-11-16 19:46:29 +00:00
2005-05-05 16:04:34 +00:00
2004-11-16 19:46:29 +00:00
2004-09-22 19:08:48 +00:00
2004-09-22 19:08:48 +00:00
2004-09-22 19:08:48 +00:00
2004-09-22 19:08:48 +00:00
2005-06-18 23:36:08 +00:00
2005-06-18 23:36:08 +00:00
2005-06-18 23:36:08 +00:00
2005-04-22 23:23:04 +00:00
2005-06-18 23:36:08 +00:00
2005-06-18 23:36:08 +00:00
2005-06-12 01:01:30 +00:00
2005-06-18 23:36:08 +00:00
2005-06-12 01:01:30 +00:00
2005-06-18 23:36:08 +00:00
2005-04-20 17:09:26 +00:00
2004-09-22 19:08:48 +00:00
2004-09-22 19:08:48 +00:00
2005-06-18 23:36:08 +00:00
2005-03-17 19:16:47 +00:00
2005-04-09 14:26:33 +00:00
2005-03-23 23:09:04 +00:00
2005-03-23 23:09:04 +00:00
2005-03-23 18:45:08 +00:00
2004-09-22 19:08:48 +00:00
2005-04-20 17:09:26 +00:00
2005-06-12 01:01:30 +00:00
2005-06-12 01:01:30 +00:00
2005-03-21 03:48:14 +00:00
2005-05-04 20:56:27 +00:00
2005-03-23 23:09:04 +00:00
2005-03-10 01:17:31 +00:00
2005-05-26 18:53:16 +00:00
2005-05-26 18:53:16 +00:00
2005-05-23 02:48:39 +00:00

BACnet open source protocol stack for embedded systems
Version 0.0.2

Welcome to the wonderful world of BACnet and true device interoperability!

About this Project
------------------

This BACnet 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 various 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).

This 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 get to come
back into the core code, but the BACnet library can be linked to proprietary
code without the proprietary code becoming GPL. Note that some of the source
files are designed as skeleton or example files, and are not copyrighted.

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 code is written in C for portability, and includes unit tests (PC based
unit tests). Since the code is designed to be portable, it compiles with GCC as
well as other compilers, such as Borland C++ or MicroChip C18.

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 that can be run in a command shell using the
test.sh script. The unit tests can also be run using individual .mak files.
They were tested on a Linux PC.

The BACnet stack was functionally tested using VTS (Visual Test Shell), another
project hosted on SourceForge, as well as various controllers and workstations.
Using the Makefile in the project root directory, a sample application is
created that runs under Linux. It uses the BACnet Ethernet physical layer for
communication. It requires root priveleges to run the 802.2 Ethernet interface.

$ make clean all
$ sudo ./bacnet

The BACnet stack currently supports the following services marked 
with an X, and hopefully will support the rest of the services listed 
in the future.
                                 Initiate  Execute
                                 --------  -------
Who Is                                        X
I Am                                X
Read Property                                 X
Read Property Multiple 
Write Property
Write Property Multiple 
Device Communication Control   
ReinitializeDevice 
Time Synchronization 
UTC Time Synchronization 
Atomic Read File 
Atomic Write File 
Subscribe COV 
Confirmed COV Notification 
Unconfirmed COV Notification
Get Alarm Summary 
Get Event Information 
Acknowledge Alarm 
Confirmed Event Notification 
Unconfirmed Event Notification 
Who Has 
I Have

The BACnet stack currently implements a Device Object, and handles most of the
Read Property inquiries for the required Device Object properties. The stack
handles Who-Is inquiries with an I-Am, and handles reject messages for services
not currently supported.

If you want to help this project, join the developers mailing list at:
http://lists.sourceforge.net/mailman/listinfo/bacnet-developers

I hope that you get your BACnet Device working!

Steve Karg
skarg@users.sourceforge.net