Enable dynamic BACnet POSIX files for example (#374)

* Enable dynamic BACnet POSIX files for example

* Add basic unit test for BACnet File object.

* Use example file pathname in demo app.

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2023-01-04 13:11:45 -06:00
committed by GitHub
parent b91735af13
commit c9efd0b84d
8 changed files with 841 additions and 134 deletions
+75 -9
View File
@@ -40,6 +40,7 @@
#include "bacnet/bacdef.h"
#include "bacnet/bacenum.h"
#include "bacnet/bacint.h"
#include "bacnet/datetime.h"
#include "bacnet/apdu.h"
#include "bacnet/arf.h"
#include "bacnet/awf.h"
@@ -60,6 +61,10 @@ extern "C" {
uint32_t object_instance,
BACNET_CHARACTER_STRING * object_name);
BACNET_STACK_EXPORT
bool bacfile_object_name_set(
uint32_t object_instance,
char *new_name);
BACNET_STACK_EXPORT
bool bacfile_valid_instance(
uint32_t object_instance);
BACNET_STACK_EXPORT
@@ -71,9 +76,46 @@ extern "C" {
BACNET_STACK_EXPORT
unsigned bacfile_instance_to_index(
uint32_t instance);
BACNET_STACK_EXPORT
uint32_t bacfile_instance(
char *filename);
const char * bacfile_file_type(
uint32_t object_instance);
BACNET_STACK_EXPORT
void bacfile_file_type_set(
uint32_t object_instance,
const char *mime_type);
BACNET_STACK_EXPORT
bool bacfile_archive(
uint32_t instance);
BACNET_STACK_EXPORT
bool bacfile_archive_set(
uint32_t instance, bool status);
BACNET_STACK_EXPORT
bool bacfile_read_only(
uint32_t instance);
BACNET_STACK_EXPORT
bool bacfile_read_only_set(
uint32_t object_instance,
bool read_only);
BACNET_STACK_EXPORT
bool bacfile_file_access_stream(
uint32_t object_instance);
BACNET_STACK_EXPORT
bool bacfile_file_access_stream_set(
uint32_t object_instance,
bool access);
BACNET_STACK_EXPORT
BACNET_UNSIGNED_INTEGER bacfile_file_size(
uint32_t instance);
BACNET_STACK_EXPORT
bool bacfile_file_size_set(
uint32_t object_instance,
BACNET_UNSIGNED_INTEGER file_size);
/* this is one way to match up the invoke ID with */
/* the file ID from the AtomicReadFile request. */
/* Another way would be to store the */
@@ -105,13 +147,6 @@ extern "C" {
bool bacfile_write_record_data(
BACNET_ATOMIC_WRITE_FILE_DATA * data);
BACNET_STACK_EXPORT
void bacfile_init(
void);
BACNET_STACK_EXPORT
BACNET_UNSIGNED_INTEGER bacfile_file_size(
uint32_t instance);
/* handling for read property service */
BACNET_STACK_EXPORT
int bacfile_read_property(
@@ -122,6 +157,37 @@ extern "C" {
bool bacfile_write_property(
BACNET_WRITE_PROPERTY_DATA * wp_data);
BACNET_STACK_EXPORT
const char *bacfile_pathname(
uint32_t instance);
BACNET_STACK_EXPORT
void bacfile_pathname_set(
uint32_t instance,
const char *pathname);
BACNET_STACK_EXPORT
uint32_t bacfile_pathname_instance(
const char *pathname);
BACNET_STACK_EXPORT
uint32_t bacfile_read(
uint32_t object_instance,
uint8_t *buffer,
uint32_t buffer_size);
BACNET_STACK_EXPORT
bool bacfile_create(
uint32_t object_instance);
BACNET_STACK_EXPORT
bool bacfile_delete(
uint32_t object_instance);
BACNET_STACK_EXPORT
void bacfile_cleanup(
void);
BACNET_STACK_EXPORT
void bacfile_init(
void);
#ifdef __cplusplus
}
#endif /* __cplusplus */