Commit Graph

242 Commits

Author SHA1 Message Date
k001a ea05c15ce2 Implemented Time_Delay and Event_Time_Stamp for analog-value object. 2011-07-06 20:55:45 +00:00
k001a 19a77ba46e Created descriptor for analog-value objects,
- writable Relinquish_Default and Units
- added properties required for intrinsic reporting.

Intrinsic reporting for analog-value. First commit. 
Not everything finished (inter alia Time_Delay, Event_Time_Stamps, ACK_Required doesn't work now).

Initialize all objects in Device_Init function.
Added function to read current time.
Defined enum BACNET_LIMIT_ENABLE.
Started cache address.
2011-07-05 19:44:36 +00:00
k001a ccf1335979 Added Notification Class object. I will use it to intrinsic reporting.
Notification Class objects can be disabled when define INTRINSIC_REPORTING (bacdef.h) will be removed.
2011-06-17 16:23:47 +00:00
skarg 8da85f6c79 Moved COV object handling into Device object.
Fixed COV for multiple subscriptions to same object.
2011-05-25 20:18:56 +00:00
petermcs f13191309e Corrected record count when setting up test logs so it is TL_MAX_ENTRIES and not 1000 2011-04-16 12:08:17 +00:00
skarg 7bb2149ea0 Refactored the example BACnet File object and file handler. Corrected bacfile_name compiler error. 2011-04-07 17:21:09 +00:00
petermcs 0b64a70dd9 Fixed declaration of Routed_Device_Set_Object_Name 2011-04-02 09:57:22 +00:00
skarg 7b1f8c7f5e Updated the example File object to have the same Object_Name API. Moved the File object header file to the demo/object directory with the rest of the demo object header files. 2011-04-01 22:25:26 +00:00
skarg deab12a5e1 Changed WhoHas and I-Have to use CharacterString instead of forcing ANSI X34 and C Strings. Affected all demos and ports object name, so I changed the object name function name to make sure it was noticed. 2011-03-24 16:53:02 +00:00
skarg 3efa7a2ea9 Moved lso back to its rightful place in include. 2011-03-24 16:48:06 +00:00
skarg e095715cec Moved include files for demo objects into demo/object, and updated makefiles to accommodate the move. This allows developers to create and maintain their own objects and the interfaces to them. 2011-03-22 20:53:13 +00:00
petermcs 6407f098ba We don't need to check for available space in the APDU once we have encoded the last entry in the object list 2011-03-14 11:13:10 +00:00
skarg 2f5d6fbaa1 Updated unit tests for objects and services, and corrected some portability problems. Thanks, Sergei! Didn't fix mstp or load control unit test results. 2010-12-27 00:04:38 +00:00
skarg 1c560c27b9 Refactored the DCC code in APDU for clarity. Added DCC check in demo server to prevend COV when DCC is not enabled. 2010-12-22 03:09:42 +00:00
skarg 350736f6bb Corrected DeviceCommunicationControl (DCC) for DISABLE_INITIATION state, which now allows I-Am in response to Who-Is. Did not add keep out for other initiated services like COV (to do). 2010-12-18 17:30:58 +00:00
skarg 2a0bf4926a Performed standard indent script indent.sh on project files. 2010-12-15 19:02:40 +00:00
skarg 8f1e8d82cd Changed Object Table from a global to a local variable and added a Device function to initialize it. 2010-12-13 03:41:55 +00:00
skarg 20ca252a8d Fixed compiler warning messages. 2010-12-12 05:42:42 +00:00
tbrennan3 de4ead47c6 Improvements to bacepics for the routing case; can now specify a DNET on the command line.
Not all there yet, however, for the routed case.
Added null tests and dummy string defaults in Add_Routed_Device().
2010-12-02 22:05:59 +00:00
tbrennan3 31f440e070 Implemented separate Who-Is and Who-Has handlers for the routed case, where we loop through all the Devices looking for matches.
Tested and improved the routing code.
Gateway demo now sends I-Am as each Device is added.
Added test for valid Network number when routing, and only send Reject message if this fails (and not if we just can't find a Device match).
Test the hop_count and discard the packet if would reach 0 and a destination Network is called for.
2010-12-02 20:33:43 +00:00
petermcs 072640f887 Added in call to trend_log_timer so Trendlogs are updated and changed stop time on initial setup of logs to the year 2020 instead of 2009 so they would accumulate some more records. 2010-11-26 13:16:55 +00:00
bacpack 47ecaeabaa To build the Routing demo define BAC_ROUTING in the top Makefile. The value is not important - the symbol has to be defined. 2010-11-25 05:10:01 +00:00
tbrennan3 a595bdb4b5 Resolved more code where we didn't need to define separate BAC_ROUTING functionality, since the npdu_encode_pdu() will do the right thing if our source address is for the gateway (root device), because src->net and/or src->len will be 0.
For the important Device_Object_Instance_Number(), will redirect to the Routed_Device_Object_Instance_Number() function if this is a routing build.
This leaves only the Who-Is and Who-Has handlers to be dealt with.
2010-11-24 22:04:02 +00:00
tbrennan3 22c14fccad Followed Steve's good recommendation, and made routed_get_my_address() be a variant of datalink_get_my_address() just when routing is in use. Haven't done anything about the sending functions yet.
Renamed Lookup_Routed_Device_Address() as Routed_Device_Address_Lookup(), and replaced it in the routed npdu handler with a function that finds the "next" gateway or routed device, as per the destination address.  (Less tied to the specifics of the gw_device.c implementation.)
Fixed a few build warnings (eg, %zu for size_t arguments).
Until we improve the makefile system, I've enabled BAC_ROUTING in config.h
2010-11-24 20:44:32 +00:00
petermcs a1eaffccff Added Get_Routed_Device_Address function 2010-11-17 23:14:07 +00:00
skarg 3d80d1a272 Corrected Multi-State Input and Output object Present_Value and number of states handling after being reminded at the BACnet Plugfest that "The Present_Value property shall always have a value greater than zero." 2010-11-17 08:13:33 +00:00
tbrennan3 6319e1a7d9 Good IDE tools can be sooo helpful. 2010-11-16 13:12:23 +00:00
bacpack 502cbcc2e6 1. In device.c, the Object_Table[] is now extern; it has to be defined by the user application (see demos); only the required BACnet objects have to be included.
2. Objects' .h files define macro to be used to initialize Object_Table[].
2010-11-13 19:57:29 +00:00
tbrennan3 a5f24fa19f Tweaked the comments for better Doxygen output. 2010-10-13 19:00:57 +00:00
tbrennan3 48411b8dbf Routing functionality complete, and working. (Have not done extensive testing, though.)
For building, made it possible to include or exclude the routing functionality with simple changes in the main Makefile and enables in lib/Makefile and include/config.h
The Device object (device.c and .h) was extended to support the virtually routed Devices, with most of the new functions in new file gw_device.c to replace their simpler cousins in device.c.
2010-10-13 15:59:39 +00:00
skarg e9249b5b5e Added test for a decoding problem where the stack is unable to decode something, and retrofitted into WriteProperty for each of the demo objects by returning an Error, Out of Range. 2010-10-12 01:17:50 +00:00
tbrennan3 5e5f38cb06 My gcc complained about a conflict with the function of the same name as the array, Binary_Output_Out_Of_Service. This fix lets it build. 2010-09-22 02:16:22 +00:00
skarg 9569f2c536 Fixed EOL and performed standard indentation. 2010-09-16 22:00:47 +00:00
skarg b769dcbe1d Indented. 2010-08-18 00:11:35 +00:00
skarg bc0de6b71f Cleaning up code by adding prototypes or include files where required. 2010-08-17 13:51:56 +00:00
skarg 6c9ef7211d Fixed indent script, and indented files. 2010-07-19 23:19:54 +00:00
skarg 8a96963e8b Removed deprecated property. 2010-06-26 03:53:17 +00:00
petermcs 702da8e212 Fixed up comparison size issue in write property handling for PROP_LOG_DEVICE_OBJECT_PROPERTY. Was only checking first 4 bytes instead of the full structure. 2010-06-13 10:35:12 +00:00
petermcs 61bb34d726 2nd pass at changing the error/reject/abort status reporting to improve BTL test compliance. ReadProperty fully done for core and demo objects. Will tackle other services next. 2010-06-07 15:52:33 +00:00
skarg ea250f422d Added some dynamic-ism to some properties of the demo Binary Input object. 2010-06-03 19:12:25 +00:00
petermcs 04e99f3671 Changes to reduce the number of warnings with Visual C++2008 warning level 4 to a minimum. 2010-05-14 14:21:48 +00:00
skarg 710cfccfef Indented using indent script. 2010-05-04 21:06:26 +00:00
skarg 74be776295 Cleaned up C++ comments 2010-05-04 21:01:48 +00:00
tbrennan3 c5977b8933 Added some function documentation and a little more support for Structured Views. 2010-04-15 20:45:22 +00:00
petermcs d78ce26067 Added support for non contiguous object arrays to the device object. This allows, for example, a single table of objects to be used for configuration of the device with the objects of a given type not required to be in a contiguous block. 2010-03-29 21:41:39 +00:00
petermcs 6cc780e562 Changed int apdu_len to bool status in Device_Write_Property as the return value is a bool and the return value for the object write functions is also bool. 2010-03-17 15:03:54 +00:00
tbrennan3 6a97eb5424 Added Doxygen Modules describing the Object Helper Functions (and how they're used) and the Handler-to-Objects interface functions of the Device Object.
Two small code corrections in device.c:
a) Fixed the return value of Device_Write_Property() so that a -1 value would also return False.
b) Fixed the string length checked when writing PROP_OBJECT_NAME for the Device object.
2010-03-14 04:34:52 +00:00
petermcs bfd3920698 Removed assumption that object instance and object index are one and the same. Added in missing Analog_Input_Instance_To_Index() function. 2010-03-11 16:57:55 +00:00
petermcs d639f48788 Fixed some errors in the handling of the status flags. 2010-03-04 14:27:47 +00:00
petermcs 51c3479240 Add in check for clients that send invalid start of epoch time with all 0s in the date. 2010-03-03 22:55:51 +00:00