Commit Graph

463 Commits

Author SHA1 Message Date
skarg 755f5087ef Merged revision(s) 3160 from branches/releases/bacnet-stack-0-8-0:
Added BACDL_NONE for testing without a physical datalink.
........
2018-12-05 23:58:23 +00:00
skarg 77360ad46f Added example Network Port object 2018-08-30 01:19:31 +00:00
skarg 1e6aef6a3b Added BACnet/IPv6 network port enumeration. 2018-08-08 15:40:12 +00:00
skarg 9914f30a65 Merged revision(s) 3181 from branches/releases/bacnet-stack-0-8-0:
Added BDT backup and restore to file option API. Thank you to Mario de Sousa for the patch.
........
2018-06-10 02:25:47 +00:00
skarg 04c94698e5 Added WritePropertyMultiple demo application. 2017-11-01 21:33:48 +00:00
skarg 9186440c56 Added missing Engineering Units. Thank you Mario. 2017-08-31 05:33:24 +00:00
skarg 6560623fa6 Added property enumerations from BACnet 2016 standard. Thank you, Mario Sousa! 2017-08-24 17:09:57 +00:00
skarg 6b0134d6d4 added engineering units from 135-2012ag and 135-2012ar 2017-08-16 03:51:47 +00:00
skarg 0b5a514cf7 Adds two new functions to the ring buffer implementation, one to walk the ring by getting a pointer to the next element in the ring, and the other to Pop (remove) a specified element from somewhere in the ring and then move any elements up towards the head to fill the gap left. With these new functions in place, the Linux MS/TP datalink MSTP_Get_Reply() has been updated to walk the ring buffer to try to find the matching reply. If it is found then it is processed in the same way as usual, and then removed from the ring.
When a packet is received which expects a reply a copy is stored in the PDU ring buffer so it can be matched with the reply. Unfortunately when the reply is received it is only checked against the first entry in the ring buffer. This can cause a failure if a second packet expecting a reply has been received while waiting for the first reply to arrive.
This is a known issue in the bacnet-stack open source stack, and there is a outstanding FIXME in the latest version of the source code:

        /* The ANSWER_DATA_REQUEST state is entered when a  */
        /* BACnet Data Expecting Reply, a Test_Request, or  */
        /* a proprietary frame that expects a reply is received. */
        /* FIXME: MSTP_Get_Reply waits for a matching reply, but
           if the next queued message doesn't match, then we
           sit here for Treply_delay doing nothing */

The fix for this is to check all the messages in the PDU queue to see if any of them match, and if one does then handle it in the normal way. Thank you to Ian Smith of Abelon Systems Ltd. for the patch!
2017-06-25 18:06:27 +00:00
skarg 134c628041 Fixed compilation of unit tests. 2017-01-01 05:42:55 +00:00
skarg 13c85c5aea Fixed the BITMASK_CHECK macro to actually compare to the mask. 2017-01-01 05:23:51 +00:00
skarg 2bb0045028 Added function to BIP to detect when the UDP port number changed. 2017-01-01 05:23:01 +00:00
skarg a2cd7c478c Added structure name. 2017-01-01 05:20:39 +00:00
skarg f2b754336d Updated ringbuffer library to remove alloc and include data-peek and data-put. 2017-01-01 05:20:13 +00:00
skarg 98d919546c Refactored memcopy range check. 2017-01-01 05:18:13 +00:00
skarg 5e5dc533af Fixed JavaDoc comments. 2017-01-01 05:17:31 +00:00
skarg aad3c42b82 Added wildcard date comparison functions. 2017-01-01 05:15:28 +00:00
skarg 66013584fa Added buffer size to COV handler function parameters. 2017-01-01 05:14:33 +00:00
skarg 93834e7c45 Added DCC enum text names. 2017-01-01 05:13:55 +00:00
skarg f0c727ff29 Added functions to encode/decode unsigned64 values. 2017-01-01 05:12:59 +00:00
skarg 8afd5669f7 Added encode/decode for BACnet address. 2017-01-01 05:12:06 +00:00
skarg d416303844 Added function to get the DCC password from demo handler. 2017-01-01 05:08:40 +00:00
skarg 7bf98e590a Added buffer size to COV handler function parameters. 2017-01-01 05:07:10 +00:00
skarg 03cc5fc09c Merged revision(s) 3061 from branches/releases/bacnet-stack-0-8-0:
Fixed typedef so that uses of it are const.
........
2016-10-25 13:56:57 +00:00
skarg ec2b585e18 Added Protocol-Revision 19 definition. 2016-10-16 14:15:51 +00:00
skarg 795254ca0c Updated Protocol_Revision requirements per the 135-2016 BACnet standard. 2016-10-13 21:25:35 +00:00
skarg bc61349fe9 Fixed compile errors and warnings for IPv6 on Win32 port. 2016-10-02 21:11:50 +00:00
skarg ea3b5e0479 Added missing header files for IPv6 2016-10-01 20:41:00 +00:00
skarg c9d152bf15 Merged revision(s) 3044 from branches/releases/bacnet-stack-0-8-0:
Added BACnet/IPv6 datalink layer and example BACnet/IPv4 to BACnet/IPv6 router.
BVLC6 layer is working on Linux port without BBMD features yet. Win32 is implemented, untested.
Tested during BACnet North American Plugfest 2016.
........
2016-10-01 20:23:03 +00:00
skarg 54869fa4ef Added enumerations for Network Port object. 2016-09-29 16:00:18 +00:00
skarg 10aa414351 Fixed line endings and SVN props with fixup.sh script 2016-09-08 15:56:11 +00:00
skarg 27a3c1ff0f Fixed compile errors 2016-09-08 15:51:11 +00:00
skarg 964085d458 Merged revision(s) 3031 from branches/releases/bacnet-stack-0-8-0:
Added checks for OPTIONAL context tagged decoding to be sure it is not a closing tag.
Added makefile for unit test in bacdevobjpropref.c module, and improved unit test.
https://sourceforge.net/p/bacnet/bugs/49/
........
2016-09-07 21:06:17 +00:00
skarg 278af89fa2 Added enhancement to address cache: Top Protected Entry: entries from 0 to Top_Protected_Entry are not removed by address_remove_oldest()function. When I-am attack occurs only entries between Top_Protected_Entry and MAX_ADDRESS_CACHE can be removed. 2016-08-12 21:57:57 +00:00
skarg 03de7f191e Added TimeSynchronization server example. 2016-07-26 21:27:34 +00:00
skarg 1302c1be7b Nikola Jelić implemented the Access Objects for BACnet (Access Door, Access Point, Access Credential, Access Rights, Access User, Access Zone, and Credential Data Input). 2016-07-17 19:23:19 +00:00
skarg 3465c43a6a Changed typedef structure to use const keyword to reduce RAM overhead. 2016-06-29 20:27:39 +00:00
skarg f8bcd58cea Fixed some warnings detected by CSTAT.
Consolidated some unit tests and added a single test prototype to header file.
2016-06-08 21:55:12 +00:00
skarg 397ef31d41 Added BACnet Error and Abort demos to send messages for Wireshark capture validation. 2016-05-20 20:43:05 +00:00
skarg b47afd500d Added UnconfirmedEventNotification demo application to generate Wireshark captures 2016-05-19 02:18:41 +00:00
skarg 40f25d8898 added I-Am demo and script to create vendor ID capture for Wireshark validation. 2016-05-16 17:33:50 +00:00
skarg 3362eecdff Added security for BACnet stack, based on the BACnet 2012 standard, clause 24.
Implemented the majority of functionalities presented in the standard, but there are several features that this patch currently lacks:
- Set-Master-Key message has a specific order of key adding and decoding which is not covered
- There is no general secure-apdu-handler function
- Checks for the type of keys used for signing/encryption of specific messages is not implemented
- The status of encrypted flag during the calculation of the signature is ambiguous
There is a Linux implementation using the OpenSSL library, with function prototypes broad enough to allow for different implementations.
Thank you, Nikola Jelić!
2016-04-20 17:00:51 +00:00
skarg 85143200af Merged revision(s) 2969 from branches/releases/bacnet-stack-0-8-0:
Fix Send_TimeSyncUTC() to calculate the right length for datalink_send_pdu(). Added Send_TimeSyncUTC_Remote(). [bugs:#44]
........
2016-03-30 20:46:43 +00:00
ekh 4f0efc6d75 A couple of bugfixes and Microsoft cleanups by Ed 2016-03-15 07:49:22 +00:00
skarg 94dbe3d429 Added BACnetTimeValue functions. Added demo Schedule object. Integrated new objects with demo server and unit tests. Thank you, Nikola Jelić! 2015-11-24 22:22:17 +00:00
skarg 23fb73fefc Added Date Time Wildcard compare functions and unit tests. Thank you, Nikola Jelić! 2015-11-24 20:34:54 +00:00
skarg 8a48241e14 Fixed the unit tests after integration of property-list property and device-object-property-reference properties. Thank you for noticing it was broken, Nikola Jelić, and for sending in fixes. 2015-11-04 16:53:21 +00:00
skarg 4db370cc3a Un-refactored property-list module to lower resource requirements on small devices. 2015-10-18 03:39:28 +00:00
skarg a294e3c691 Merged revision(s) 2900 from branches/releases/bacnet-stack-0-8-0:
Cleanup of unit test exports.
........
2015-10-18 00:30:43 +00:00
skarg 5a0ed5a9e0 Merged revision(s) 2898 from branches/releases/bacnet-stack-0-8-0:
Cleanup of unit test exports.
........
2015-10-18 00:27:09 +00:00