Skip to content

Commit 47ba359

Browse files
authored
Merge pull request #20 from bacnet-stack/feature/add-bacnet-lighting-device-profile
Added BACnet Lighting Device B-LD profile sample
2 parents 1d5c945 + 08a0af3 commit 47ba359

File tree

12 files changed

+372
-13
lines changed

12 files changed

+372
-13
lines changed

zephyr/CMakeLists.txt

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ set(BACNETSTACK_SRCS
250250
${BACNETSTACK_SRC}/bacnet/basic/sys/keylist.h
251251
${BACNETSTACK_SRC}/bacnet/basic/sys/linear.c
252252
${BACNETSTACK_SRC}/bacnet/basic/sys/linear.h
253+
${BACNETSTACK_SRC}/bacnet/basic/sys/lighting_command.c
254+
${BACNETSTACK_SRC}/bacnet/basic/sys/lighting_command.h
253255
${BACNETSTACK_SRC}/bacnet/basic/sys/mstimer.c
254256
${BACNETSTACK_SRC}/bacnet/basic/sys/mstimer.h
255257
${BACNETSTACK_SRC}/bacnet/basic/sys/ringbuf.c
@@ -260,11 +262,17 @@ set(BACNETSTACK_SRCS
260262
${BACNETSTACK_SRC}/bacnet/basic/tsm/tsm.h
261263
${BACNETSTACK_SRC}/bacnet/basic/sys/bits.h
262264
${BACNETSTACK_SRC}/bacnet/basic/sys/bytes.h
265+
${BACNETSTACK_SRC}/bacnet/calendar_entry.c
266+
${BACNETSTACK_SRC}/bacnet/calendar_entry.h
267+
${BACNETSTACK_SRC}/bacnet/channel_value.c
268+
${BACNETSTACK_SRC}/bacnet/channel_value.h
263269
${BACNETSTACK_SRC}/bacnet/config.h
264270
${BACNETSTACK_SRC}/bacnet/cov.c
265271
${BACNETSTACK_SRC}/bacnet/cov.h
266272
${BACNETSTACK_SRC}/bacnet/credential_authentication_factor.c
267273
${BACNETSTACK_SRC}/bacnet/credential_authentication_factor.h
274+
${BACNETSTACK_SRC}/bacnet/dailyschedule.c
275+
${BACNETSTACK_SRC}/bacnet/dailyschedule.h
268276
${BACNETSTACK_SRC}/bacnet/datalink/arcnet.h
269277
${BACNETSTACK_SRC}/bacnet/datalink/bacsec.c
270278
${BACNETSTACK_SRC}/bacnet/datalink/bacsec.h
@@ -320,6 +328,10 @@ set(BACNETSTACK_SRCS
320328
${BACNETSTACK_SRC}/bacnet/ptransfer.h
321329
${BACNETSTACK_SRC}/bacnet/rd.c
322330
${BACNETSTACK_SRC}/bacnet/rd.h
331+
${BACNETSTACK_SRC}/bacnet/secure_connect.c
332+
${BACNETSTACK_SRC}/bacnet/secure_connect.h
333+
${BACNETSTACK_SRC}/bacnet/special_event.c
334+
${BACNETSTACK_SRC}/bacnet/special_event.h
323335
${BACNETSTACK_SRC}/bacnet/readrange.c
324336
${BACNETSTACK_SRC}/bacnet/readrange.h
325337
${BACNETSTACK_SRC}/bacnet/reject.c
@@ -333,6 +345,8 @@ set(BACNETSTACK_SRCS
333345
${BACNETSTACK_SRC}/bacnet/timesync.c
334346
${BACNETSTACK_SRC}/bacnet/timesync.h
335347
${BACNETSTACK_SRC}/bacnet/version.h
348+
${BACNETSTACK_SRC}/bacnet/weeklyschedule.c
349+
${BACNETSTACK_SRC}/bacnet/weeklyschedule.h
336350
${BACNETSTACK_SRC}/bacnet/whohas.c
337351
${BACNETSTACK_SRC}/bacnet/whohas.h
338352
${BACNETSTACK_SRC}/bacnet/whois.c
@@ -341,14 +355,6 @@ set(BACNETSTACK_SRCS
341355
${BACNETSTACK_SRC}/bacnet/wp.h
342356
${BACNETSTACK_SRC}/bacnet/wpm.c
343357
${BACNETSTACK_SRC}/bacnet/wpm.h
344-
${BACNETSTACK_SRC}/bacnet/weeklyschedule.c
345-
${BACNETSTACK_SRC}/bacnet/weeklyschedule.h
346-
${BACNETSTACK_SRC}/bacnet/dailyschedule.c
347-
${BACNETSTACK_SRC}/bacnet/dailyschedule.h
348-
${BACNETSTACK_SRC}/bacnet/calendar_entry.c
349-
${BACNETSTACK_SRC}/bacnet/calendar_entry.h
350-
${BACNETSTACK_SRC}/bacnet/special_event.c
351-
${BACNETSTACK_SRC}/bacnet/special_event.h
352358
)
353359

354360
message(STATUS "BACNETSTACK: CONFIG_BACNET_BASIC_OBJECT_DEVICE_SERVER \"${CONFIG_BACNET_BASIC_OBJECT_DEVICE_SERVER}\"")
@@ -539,5 +545,12 @@ zephyr_compile_definitions(
539545
$<$<BOOL:${CONFIG_BACAPP_ACTION_COMMAND}>:BACAPP_ACTION_COMMAND>
540546
$<$<BOOL:${CONFIG_BACAPP_SCALE}>:BACAPP_SCALE>
541547
$<$<BOOL:${CONFIG_BACAPP_SHED_LEVEL}>:BACAPP_SHED_LEVEL>
548+
$<$<BOOL:${CONFIG_BACAPP_ACCESS_RULE}>:BACAPP_ACCESS_RULE>
549+
$<$<BOOL:${CONFIG_BACAPP_CHANNEL_VALUE}>:BACAPP_CHANNEL_VALUE>
550+
551+
552+
553+
554+
542555
)
543556

zephyr/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,18 @@ config BACAPP_SHED_LEVEL
312312
help
313313
BACnet data types supported for WriteProperty: BACAPP_SHED_LEVEL
314314

315+
config BACAPP_ACCESS_RULE
316+
bool "BACnet data types supported for WriteProperty: BACAPP_ACCESS_RULE"
317+
default false
318+
help
319+
BACnet data types supported for WriteProperty: BACAPP_ACCESS_RULE
320+
321+
config BACAPP_CHANNEL_VALUE
322+
bool "BACnet data types supported for WriteProperty: BACAPP_CHANNEL_VALUE"
323+
default false
324+
help
325+
BACnet data types supported for WriteProperty: BACAPP_CHANNEL_VALUE
326+
315327
config BACAPP_PRINT_ENABLED
316328
bool "BACnet app print"
317329
default false

zephyr/include/bacnet_basic/bacnet_basic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ void bacnet_basic_init_callback_set(bacnet_basic_callback callback,
2323
void bacnet_basic_task(void);
2424
void bacnet_basic_task_callback_set(bacnet_basic_callback callback,
2525
void *context);
26+
void bacnet_basic_task_object_timer_set(unsigned long milliseconds);
2627

2728
unsigned long bacnet_basic_uptime_seconds(void);
2829
unsigned long bacnet_basic_packet_count(void);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: MIT
2+
3+
cmake_minimum_required(VERSION 3.13.1)
4+
5+
get_filename_component(MY_PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
6+
7+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
8+
project(${MY_PROJECT_NAME})
9+
10+
target_sources(app PRIVATE src/main.c)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
.. _b-ss_sample:
2+
3+
BACnet Profile B-LD Sample
4+
##########################
5+
6+
Overview
7+
********
8+
9+
This is a simple application demonstrating configuration of a
10+
BACnet Lighting Device (B-LD) device profile.
11+
12+
Requirements
13+
************
14+
15+
* A board with Ethernet support, for instance: nucleo_f429zi
16+
17+
Building and Running
18+
********************
19+
20+
This sample can be found under :bacnet_file:`samples/profiles/b-ld` in
21+
the BACnet tree.
22+
23+
The sample can be built for several platforms.
24+
25+
Compile this sample for the `nucleo_f429zi` board:
26+
27+
west build -b nucleo_f429zi -p always bacnet/zephyr/samples/profiles/b-ld/
28+
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# General config
2+
#CONFIG_ASSERT=y
3+
#CONFIG_ASSERT_LEVEL=2
4+
#CONFIG_ASSERT_VERBOSE=y
5+
6+
# Compiler library config
7+
#CONFIG_PICOLIBC=y
8+
#CONFIG_PICOLIBC_USE_MODULE=y
9+
#CONFIG_REQUIRES_FULL_LIBC=y
10+
#CONFIG_MINIMAL_LIBC=y
11+
12+
# system
13+
# some heap is needed for the shell
14+
CONFIG_HEAP_MEM_POOL_SIZE=2048
15+
CONFIG_KERNEL_MEM_POOL=y
16+
CONFIG_MAIN_THREAD_PRIORITY=7
17+
#CONFIG_PICOLIBC=y
18+
CONFIG_ISR_STACK_SIZE=8192
19+
CONFIG_MAIN_STACK_SIZE=8192
20+
CONFIG_IDLE_STACK_SIZE=2048
21+
CONFIG_INIT_STACKS=y
22+
23+
# BACnet Library
24+
CONFIG_BACNETSTACK=y
25+
CONFIG_BACNETSTACK_LOG_LEVEL=3
26+
CONFIG_BACNETSTACK_BACNET_BASIC=y
27+
# BACnet Library - options
28+
CONFIG_BACNET_MAX_CHARACTER_STRING_BYTES=128
29+
CONFIG_BACAPP_MINIMAL=y
30+
# BACnet Library - objects
31+
CONFIG_BACNET_BASIC_OBJECT_NETWORK_PORT=y
32+
CONFIG_BACAPP_HOST_N_PORT=y
33+
CONFIG_BACNET_BASIC_OBJECT_LIGHTING_OUTPUT=y
34+
CONFIG_BACAPP_LIGHTING_COMMAND=y
35+
# BACnet Library - shell
36+
CONFIG_BACNET_BASIC_DEVICE_SHELL=y
37+
# BACnet settings subsystem
38+
#CONFIG_BACNETSTACK_BACNET_SETTINGS=y
39+
#CONFIG_BACNET_SETTINGS=y
40+
#CONFIG_BACNET_SETTINGS_SHELL=y
41+
42+
# BACnet Datalink Options
43+
CONFIG_BACDL_BIP=y
44+
CONFIG_BACDL_BIP_PORT=47808
45+
# don't define index if you want to use the default interface
46+
# note: with DHCP and AutoIP enabled, index 0=AutoIP, 1=DHCP
47+
CONFIG_BACDL_BIP_ADDRESS_INDEX=1
48+
49+
# networking
50+
CONFIG_NETWORKING=y
51+
CONFIG_NET_L2_ETHERNET=y
52+
#CONFIG_NET_ARP=y
53+
#CONFIG_NET_TCP=y
54+
CONFIG_NET_UDP=y
55+
CONFIG_NET_SHELL=y
56+
CONFIG_NET_SOCKETS=y
57+
CONFIG_NET_IPV4=y
58+
CONFIG_NET_IPV4_LOG_LEVEL_DBG=n
59+
CONFIG_NET_IF_MAX_IPV4_COUNT=2
60+
CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=2
61+
CONFIG_NET_IF_MCAST_IPV4_ADDR_COUNT=2
62+
# Dynamic IP address
63+
CONFIG_NET_DHCPV4=y
64+
CONFIG_NET_DHCPV4_LOG_LEVEL_DBG=n
65+
CONFIG_NET_IPV4_AUTO=y
66+
CONFIG_NET_IPV4_AUTO_LOG_LEVEL_DBG=n
67+
CONFIG_NET_ICMPV4_LOG_LEVEL_DBG=n
68+
# read the MAC address from settings and set via net_mgmt()
69+
CONFIG_NET_MGMT_EVENT=y
70+
CONFIG_NET_L2_ETHERNET_MGMT=y
71+
CONFIG_NET_CONNECTION_MANAGER=y
72+
73+
# Static IP address pre-configuration
74+
#CONFIG_NET_CONFIG_SETTINGS=y
75+
#CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
76+
#CONFIG_NET_CONFIG_MY_IPV4_NETMASK="255.255.255.0"
77+
#CONFIG_NET_CONFIG_MY_IPV4_GW="192.0.2.2"
78+
# Network debug config
79+
CONFIG_NET_LOG=y
80+
CONFIG_NET_SHELL=y
81+
82+
#CONFIG_DNS_RESOLVER=y
83+
#CONFIG_SLIP_STATISTICS=n
84+
85+
CONFIG_NET_TX_STACK_SIZE=8192
86+
CONFIG_NET_RX_STACK_SIZE=8192
87+
88+
# Enable Shell, Console, and Logging features
89+
CONFIG_CONSOLE=y
90+
CONFIG_PRINTK=y
91+
CONFIG_SHELL=y
92+
CONFIG_KERNEL_SHELL=y
93+
CONFIG_THREAD_MONITOR=y
94+
#CONFIG_BOOT_BANNER=n
95+
CONFIG_THREAD_NAME=y
96+
CONFIG_DEVICE_SHELL=y
97+
#CONFIG_POSIX_CLOCK=y
98+
#CONFIG_DATE_SHELL=y
99+
CONFIG_LOG=y
100+
CONFIG_LOG_BACKEND_UART=y
101+
CONFIG_SHELL_LOG_BACKEND=n
102+
#CONFIG_LOG_STRDUP_BUF_COUNT=4
103+
#CONFIG_LOG_STRDUP_MAX_STRING=96
104+
#CONFIG_NET_CONN_LOG_LEVEL_DEFAULT=n
105+
#CONFIG_NET_CONN_LOG_LEVEL_DBG=y
106+
#CONFIG_NET_IF_LOG_LEVEL_DEFAULT=n
107+
CONFIG_NET_IF_LOG_LEVEL_DBG=n
108+
CONFIG_NET_LOG=y
109+
110+
# enable the thread, stack, and runtime stats
111+
CONFIG_THREAD_ANALYZER=y
112+
CONFIG_THREAD_STACK_INFO=y
113+
CONFIG_THREAD_RUNTIME_STATS=y
114+
#CONFIG_THREAD_RUNTIME_STATS_USE_TIMING_FUNCTIONS=n
115+
#CONFIG_SCHED_THREAD_USAGE=y
116+
#CONFIG_SCHED_THREAD_USAGE_ANALYSIS=y
117+
CONFIG_STATS=y
118+
CONFIG_STATS_SHELL=y
119+
120+
#
121+
# Storage
122+
#
123+
#CONFIG_FLASH=y
124+
#CONFIG_FLASH_MAP=y
125+
#CONFIG_FLASH_PAGE_LAYOUT=y
126+
# native_posix uses a simulated flash
127+
#CONFIG_FLASH_SIMULATOR=y
128+
#CONFIG_DISK_ACCESS=y.
129+
#CONFIG_FILE_SYSTEM=y
130+
#CONFIG_FILE_SYSTEM_LITTLEFS=y
131+
#CONFIG_FILE_SYSTEM_SHELL=y
132+
#CONFIG_NVS=y
133+
#CONFIG_SETTINGS=y
134+
#CONFIG_SETTINGS_NVS=y
135+
#CONFIG_SETTINGS_RUNTIME=y
136+
#CONFIG_SETTINGS_FILE=y
137+
#CONFIG_SETTINGS_SHELL=y
138+
139+
CONFIG_TEST_RANDOM_GENERATOR=y
140+
CONFIG_TIMER_RANDOM_GENERATOR=y
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
sample:
2+
name: BACnet Lighting Device (B-LD)
3+
4+
tests:
5+
bacnet-stack.sample.profile.b-ld.bacdl_none:
6+
tags: bacnet
7+
platform_allow: qemu_x86 native_posix native_posix_64 native_sim
8+
bacnet-stack.sample.profile.b-ld.bacdl_mstp:
9+
platform_allow: native_sim
10+
extra_configs:
11+
- CONFIG_BACDL_MSTP=y
12+
tags: introduction
13+
bacnet-stack.sample.profile.b-ld.bacdl_bip:
14+
platform_allow: native_sim
15+
extra_configs:
16+
- CONFIG_BACDL_BIP=y
17+
tags: introduction
18+
bacnet-stack.sample.profile.b-ld.bacdl_bip6:
19+
platform_allow: native_sim
20+
extra_configs:
21+
- CONFIG_BACDL_BIP6=y
22+
tags: introduction
23+
bacnet-stack.sample.profile.b-ld.bacdl_ethernet:
24+
platform_allow: native_sim
25+
extra_configs:
26+
- CONFIG_BACDL_ETHERNET=y
27+
tags: introduction

0 commit comments

Comments
 (0)