Skip to content

Commit 94205be

Browse files
committed
Added BACnet Lighting Supervisor B-LS profile sample
1 parent 47ba359 commit 94205be

File tree

9 files changed

+442
-0
lines changed

9 files changed

+442
-0
lines changed

zephyr/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ set(BACNETSTACK_SRCS
203203
${BACNETSTACK_SRC}/bacnet/basic/service/h_wp.h
204204
${BACNETSTACK_SRC}/bacnet/basic/service/h_wpm.c
205205
${BACNETSTACK_SRC}/bacnet/basic/service/h_wpm.h
206+
${BACNETSTACK_SRC}/bacnet/basic/service/h_write_group.c
207+
${BACNETSTACK_SRC}/bacnet/basic/service/h_write_group.h
206208
${BACNETSTACK_SRC}/bacnet/basic/service/s_abort.h
207209
${BACNETSTACK_SRC}/bacnet/basic/service/s_ack_alarm.h
208210
${BACNETSTACK_SRC}/bacnet/basic/service/s_arfs.h
@@ -355,6 +357,8 @@ set(BACNETSTACK_SRCS
355357
${BACNETSTACK_SRC}/bacnet/wp.h
356358
${BACNETSTACK_SRC}/bacnet/wpm.c
357359
${BACNETSTACK_SRC}/bacnet/wpm.h
360+
${BACNETSTACK_SRC}/bacnet/write_group.c
361+
${BACNETSTACK_SRC}/bacnet/write_group.h
358362
)
359363

360364
message(STATUS "BACNETSTACK: CONFIG_BACNET_BASIC_OBJECT_DEVICE_SERVER \"${CONFIG_BACNET_BASIC_OBJECT_DEVICE_SERVER}\"")
@@ -393,6 +397,7 @@ set(BACNETSTACK_BASIC_SRCS
393397
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_INTEGER_VALUE}>:${BACNETSTACK_SRC}/bacnet/basic/object/iv.c>
394398
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LOAD_CONTROL}>:${BACNETSTACK_SRC}/bacnet/basic/object/lc.c>
395399
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LIGHTING_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/lo.c>
400+
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_BINARY_LIGHTING_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/blo.c>
396401
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_LIFE_SAFETY_POINT}>:${BACNETSTACK_SRC}/bacnet/basic/object/lsp.c>
397402
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_MULTISTATE_INPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/ms-input.c>
398403
$<$<BOOL:${CONFIG_BACNET_BASIC_OBJECT_MULTISTATE_OUTPUT}>:${BACNETSTACK_SRC}/bacnet/basic/object/mso.c>

zephyr/Kconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,12 @@ config BACNET_BASIC_OBJECT_LIGHTING_OUTPUT
546546
help
547547
Use the BACnet basic lighting output object
548548

549+
config BACNET_BASIC_OBJECT_BINARY_LIGHTING_OUTPUT
550+
bool "Use the BACnet basic binary lighting output object"
551+
default false
552+
help
553+
Use the BACnet basic binary lighting output object
554+
549555
config BACNET_BASIC_OBJECT_LIFE_SAFETY_POINT
550556
bool "Use the BACnet basic life-safety point object"
551557
default false

zephyr/samples/profiles/b-ld/README.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,24 @@ Overview
99
This is a simple application demonstrating configuration of a
1010
BACnet Lighting Device (B-LD) device profile.
1111

12+
L.11.2 BACnet Lighting Device (B-LD)
13+
*************************************
14+
15+
A B-LD is any device that implements Binary Lighting Output and/or Lighting Output objects
16+
17+
Data Sharing
18+
************
19+
20+
* Ability to provide values for any of its BACnet objects upon request
21+
* Ability to allow modification of some or all of its BACnet objects by another device
22+
23+
Device and Network Management
24+
*****************************
25+
26+
* Ability to respond to queries about its status
27+
* Ability to respond to requests for information about any of its objects
28+
* Ability to respond to communication control messages
29+
1230
Requirements
1331
************
1432

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: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
.. _b-ss_sample:
2+
3+
BACnet Profile B-LS Sample
4+
##########################
5+
6+
Overview
7+
********
8+
9+
This is a simple application demonstrating configuration of a
10+
BACnet Lighting Supervisor (B-LS) device profile.
11+
12+
L.11.1 BACnet Lighting Supervisor (B-LS)
13+
****************************************
14+
15+
A B-LS is any device that implements Channel objects and optionally
16+
Lighting Output and/or Binary Lighting Output objects
17+
with the ability to forward channel writes to other BACnet devices.
18+
19+
Data Sharing
20+
************
21+
22+
* Ability to provide values for any of its BACnet objects upon request
23+
* Ability to allow modification of some or all of its BACnet objects
24+
by another device
25+
* Ability to execute WriteGroup commands
26+
* Ability to propagate Channel values to objects external to the dev
27+
28+
Device and Network Management
29+
*****************************
30+
31+
* Ability to find other BACnet devices
32+
* Ability to respond to queries about its status
33+
* Ability to respond to requests for information about any of its objects
34+
* Ability to respond to communication control messages
35+
* Ability to synchronize its internal clock upon request
36+
37+
Requirements
38+
************
39+
40+
* A board with Ethernet support, for instance: nucleo_f429zi
41+
42+
Building and Running
43+
********************
44+
45+
This sample can be found under :bacnet_file:`samples/profiles/b-ls` in
46+
the BACnet tree.
47+
48+
The sample can be built for several platforms.
49+
50+
Compile this sample for the `nucleo_f429zi` board:
51+
52+
west build -b nucleo_f429zi -p always bacnet/zephyr/samples/profiles/b-ls/
53+
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
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+
CONFIG_BACNET_BASIC_OBJECT_BINARY_LIGHTING_OUTPUT=y
36+
CONFIG_BACNET_BASIC_OBJECT_CHANNEL=y
37+
CONFIG_BACAPP_CHANNEL_VALUE=y
38+
CONFIG_BACAPP_DEVICE_OBJECT_PROPERTY_REFERENCE=y
39+
CONFIG_BACAPP_DOUBLE=y
40+
CONFIG_BACAPP_COLOR_COMMAND=y
41+
# BACnet Library - shell
42+
CONFIG_BACNET_BASIC_DEVICE_SHELL=y
43+
# BACnet settings subsystem
44+
#CONFIG_BACNETSTACK_BACNET_SETTINGS=y
45+
#CONFIG_BACNET_SETTINGS=y
46+
#CONFIG_BACNET_SETTINGS_SHELL=y
47+
48+
# BACnet Datalink Options
49+
CONFIG_BACDL_BIP=y
50+
CONFIG_BACDL_BIP_PORT=47808
51+
# don't define index if you want to use the default interface
52+
# note: with DHCP and AutoIP enabled, index 0=AutoIP, 1=DHCP
53+
CONFIG_BACDL_BIP_ADDRESS_INDEX=1
54+
55+
# networking
56+
CONFIG_NETWORKING=y
57+
CONFIG_NET_L2_ETHERNET=y
58+
#CONFIG_NET_ARP=y
59+
#CONFIG_NET_TCP=y
60+
CONFIG_NET_UDP=y
61+
CONFIG_NET_SHELL=y
62+
CONFIG_NET_SOCKETS=y
63+
CONFIG_NET_IPV4=y
64+
CONFIG_NET_IPV4_LOG_LEVEL_DBG=n
65+
CONFIG_NET_IF_MAX_IPV4_COUNT=2
66+
CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=2
67+
CONFIG_NET_IF_MCAST_IPV4_ADDR_COUNT=2
68+
# Dynamic IP address
69+
CONFIG_NET_DHCPV4=y
70+
CONFIG_NET_DHCPV4_LOG_LEVEL_DBG=n
71+
CONFIG_NET_IPV4_AUTO=y
72+
CONFIG_NET_IPV4_AUTO_LOG_LEVEL_DBG=n
73+
CONFIG_NET_ICMPV4_LOG_LEVEL_DBG=n
74+
# read the MAC address from settings and set via net_mgmt()
75+
CONFIG_NET_MGMT_EVENT=y
76+
CONFIG_NET_L2_ETHERNET_MGMT=y
77+
CONFIG_NET_CONNECTION_MANAGER=y
78+
79+
# Static IP address pre-configuration
80+
#CONFIG_NET_CONFIG_SETTINGS=y
81+
#CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
82+
#CONFIG_NET_CONFIG_MY_IPV4_NETMASK="255.255.255.0"
83+
#CONFIG_NET_CONFIG_MY_IPV4_GW="192.0.2.2"
84+
# Network debug config
85+
CONFIG_NET_LOG=y
86+
CONFIG_NET_SHELL=y
87+
88+
#CONFIG_DNS_RESOLVER=y
89+
#CONFIG_SLIP_STATISTICS=n
90+
91+
CONFIG_NET_TX_STACK_SIZE=8192
92+
CONFIG_NET_RX_STACK_SIZE=8192
93+
94+
# Enable Shell, Console, and Logging features
95+
CONFIG_CONSOLE=y
96+
CONFIG_PRINTK=y
97+
CONFIG_SHELL=y
98+
CONFIG_KERNEL_SHELL=y
99+
CONFIG_THREAD_MONITOR=y
100+
#CONFIG_BOOT_BANNER=n
101+
CONFIG_THREAD_NAME=y
102+
CONFIG_DEVICE_SHELL=y
103+
#CONFIG_POSIX_CLOCK=y
104+
#CONFIG_DATE_SHELL=y
105+
CONFIG_LOG=y
106+
CONFIG_LOG_BACKEND_UART=y
107+
CONFIG_SHELL_LOG_BACKEND=n
108+
#CONFIG_LOG_STRDUP_BUF_COUNT=4
109+
#CONFIG_LOG_STRDUP_MAX_STRING=96
110+
#CONFIG_NET_CONN_LOG_LEVEL_DEFAULT=n
111+
#CONFIG_NET_CONN_LOG_LEVEL_DBG=y
112+
#CONFIG_NET_IF_LOG_LEVEL_DEFAULT=n
113+
CONFIG_NET_IF_LOG_LEVEL_DBG=n
114+
CONFIG_NET_LOG=y
115+
116+
# enable the thread, stack, and runtime stats
117+
CONFIG_THREAD_ANALYZER=y
118+
CONFIG_THREAD_STACK_INFO=y
119+
CONFIG_THREAD_RUNTIME_STATS=y
120+
#CONFIG_THREAD_RUNTIME_STATS_USE_TIMING_FUNCTIONS=n
121+
#CONFIG_SCHED_THREAD_USAGE=y
122+
#CONFIG_SCHED_THREAD_USAGE_ANALYSIS=y
123+
CONFIG_STATS=y
124+
CONFIG_STATS_SHELL=y
125+
126+
#
127+
# Storage
128+
#
129+
#CONFIG_FLASH=y
130+
#CONFIG_FLASH_MAP=y
131+
#CONFIG_FLASH_PAGE_LAYOUT=y
132+
# native_posix uses a simulated flash
133+
#CONFIG_FLASH_SIMULATOR=y
134+
#CONFIG_DISK_ACCESS=y.
135+
#CONFIG_FILE_SYSTEM=y
136+
#CONFIG_FILE_SYSTEM_LITTLEFS=y
137+
#CONFIG_FILE_SYSTEM_SHELL=y
138+
#CONFIG_NVS=y
139+
#CONFIG_SETTINGS=y
140+
#CONFIG_SETTINGS_NVS=y
141+
#CONFIG_SETTINGS_RUNTIME=y
142+
#CONFIG_SETTINGS_FILE=y
143+
#CONFIG_SETTINGS_SHELL=y
144+
145+
CONFIG_TEST_RANDOM_GENERATOR=y
146+
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 Supervisor (B-LS)
3+
4+
tests:
5+
bacnet-stack.sample.profile.b-ls.bacdl_none:
6+
tags: bacnet
7+
platform_allow: qemu_x86 native_posix native_posix_64 native_sim
8+
bacnet-stack.sample.profile.b-ls.bacdl_mstp:
9+
platform_allow: native_sim
10+
extra_configs:
11+
- CONFIG_BACDL_MSTP=y
12+
tags: introduction
13+
bacnet-stack.sample.profile.b-ls.bacdl_bip:
14+
platform_allow: native_sim
15+
extra_configs:
16+
- CONFIG_BACDL_BIP=y
17+
tags: introduction
18+
bacnet-stack.sample.profile.b-ls.bacdl_bip6:
19+
platform_allow: native_sim
20+
extra_configs:
21+
- CONFIG_BACDL_BIP6=y
22+
tags: introduction
23+
bacnet-stack.sample.profile.b-ls.bacdl_ethernet:
24+
platform_allow: native_sim
25+
extra_configs:
26+
- CONFIG_BACDL_ETHERNET=y
27+
tags: introduction

0 commit comments

Comments
 (0)