Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ C library hosted on Sourceforge and Github sites.
* [Github](https://github.com/bacnet-stack/bacnet-stack)
* [Sourceforge](https://bacnet.sourceforge.net/)

# Requirements Management

[StrictDoc](https://strictdoc.readthedocs.io/en/stable/) is the
open-source requirements management tool selected by the Zephyr Project.
Until the Zephyr Project includes their requirements management
content in a Zephyr release, BACnet-Stack will gathering preliminary
requirements management content using the same tool as Zephyr Project,
with our preliminary content gathered within the `reqmgnt/` tree
at the root of the `bacnet-stack-zephyr` repository.

# Coding Style and Guidelines

See Zephyr Project [Coding Guidelines](https://docs.zephyrproject.org/latest/contribute/coding_guidelines/index.html)
57 changes: 57 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_device_arch.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
[DOCUMENT]
TITLE: BACnet Stack Device Architecture
REQ_PREFIX: BKSTK-STRS-ARCH-DEV

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[SECTION]
TITLE: Physical View

[/SECTION]

[SECTION]
TITLE: Logical View

[TEXT]
STATEMENT: >>>
.. raw:: html

<pre class="mermaid">
---
title: HW Execution Lifetime
---
stateDiagram-v2
[*] --> ImmutableBootloader
ImmutableBootloader --> MutableBootloader
ImmutableBootloader --> HwWatchdog : Starts/Feeds

MutableBootloader --> [*]

MutableBootloader --> FwApplication
FwApplication --> [*]

FwApplication --> HwWatchdog : Feeds
MutableBootloader --> HwWatchdog : Feeds
ImmutableBootloader --> [*]
HwWatchdog --> [*]
</pre>
<<<

[/SECTION]

[SECTION]
TITLE: Concurrency View

[/SECTION]

[SECTION]
TITLE: Scenarios

[/SECTION]

102 changes: 102 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_fw-app_arch.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
[DOCUMENT]
TITLE: BACNet Stack FW/Application Executable Architecture
REQ_PREFIX: BKSTK-STRS-FWAPP-ARCH

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[SECTION]
TITLE: Physical View

[TEXT]
STATEMENT: >>>
.. raw:: html

<pre class="mermaid">
---
title: Physical Model Layering/Dependencies
---
stateDiagram-v2
state IndustrialDesign {
FrontPanel
Mechanics
}

state Interfaces {
CommPorts
Sensors
LoadControls
WallClockTime
}

state Security {
Crypto
Keys
}

state Core {
CPU
PersistentStorage
RAM
HwWatchdog
Timers
}

IndustrialDesign --> Interfaces
Interfaces --> Security
Security --> Core
Core --> Power
</pre>
<<<

[/SECTION]

[SECTION]
TITLE: Logical View

[TEXT]
STATEMENT: >>>
.. raw:: html

<pre class="mermaid">
---
title: Logical Model Layering/Dependencies
---
stateDiagram-v2
state OSServices {
CommDrivers
Storage
Timing
NonCommDrivers
FrontPanelDrivers
}

UI --> DeviceMgmt
DeviceMgmt --> EmbeddedApps
EmbeddedApps --> CommServices
CommServices --> CommDrivers
EmbeddedApps --> Engines
Engines --> NonCommDrivers
UI --> EmbeddedApps
UI --> Engines
UI --> FrontPanelDrivers
</pre>
<<<

[/SECTION]

[SECTION]
TITLE: Concurrency View

[/SECTION]

[SECTION]
TITLE: Scenarios

[/SECTION]

17 changes: 17 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_glossary.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[DOCUMENT]
TITLE: BACnet Stack Glossary
REQ_PREFIX: BKSTK-STRS-GLOSSARY

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[TEXT]
STATEMENT: >>>
TBD
<<<

32 changes: 32 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_network_arch.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[DOCUMENT]
TITLE: BACnet Stack Network Architecture
REQ_PREFIX: BKSTK-STRS-NWK-ARCH

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[SECTION]
TITLE: Physical View

[/SECTION]

[SECTION]
TITLE: Logical View

[/SECTION]

[SECTION]
TITLE: Concurrency View

[/SECTION]

[SECTION]
TITLE: Scenarios

[/SECTION]

113 changes: 113 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_stakeholder_con-ops.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
[DOCUMENT]
TITLE: BACnet Stack Concept of Operation
REQ_PREFIX: BKSTK-STRS-CONOPS

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[SECTION]
TITLE: Deployment Context

[TEXT]
STATEMENT: >>>
Building Automation and Control networks may span multiple structures
and run on intranets that may span multiple continents.
<<<

[SECTION]
TITLE: Physical View

[/SECTION]

[SECTION]
TITLE: Logical View

[TEXT]
STATEMENT: >>>
.. raw:: html

<pre class="mermaid">
---
title: Entity Relationship Diagram (draft)
---
erDiagram
Cloud-Client }o--|| BACnet : Requests
Desk-Mobile-App }o--|| BACnet : Manages
User }o--|| BACnet : Adjusts
BACnet ||--o{ Physical-Environment : Senses
BACnet ||--o{ Physical-Controls : Directs
BACnet ||--o{ Cloud-Services : Reports-to
</pre>
<<<

[/SECTION]

[SECTION]
TITLE: Concurrency View

[TEXT]
STATEMENT: >>>
Each entity in the Entity Relationship Diagram operates concurrently.

Every device in a BACnet network operates concurrently.
<<<

[/SECTION]

[SECTION]
TITLE: Scenarios

[TEXT]
STATEMENT: >>>
.. raw:: html

<pre class="mermaid">
---
title: Turn off Lights (conceptual - draft)
---
sequenceDiagram
participant CloudClient as Cloud <br/> Client
participant DeskMobileApp as Desktop/Mobile <br/> Application
actor User
participant BACnet as BACnet <br/> Network
participant PhysEnv as Physical <br/> Environment
participant PhysControl as Physical <br/> Controls
participant CloudServices as Cloud <br/> Services

User -->> BACnet : Flip Switch to OFF
BACnet ->> PhysControl : Turn off Lighting
PhysControl -->> BACnet : Request Started

BACnet ->> User : Indicate request in progress
BACnet ->> DeskMobileApp : Publish updated status <br/> - lights going off
BACnet ->> CloudClient : Publish updated status <br/> - lights going off
BACnet ->> CloudServices : Log change request started

PhysEnv -->> BACnet : Lighting "OFF"
PhysControl -->> BACnet : Request concluded

BACnet ->> User : Indicate request concluded
BACnet ->> DeskMobileApp : Publish updated status <br/> - lights off
BACnet ->> CloudClient : Publish updated status <br/> - lights off
BACnet ->> CloudServices : Log change request completed
</pre>
<<<

[/SECTION]

[/SECTION]

[DOCUMENT_FROM_FILE]
FILE: bacnet_network_arch.sdoc

[DOCUMENT_FROM_FILE]
FILE: bacnet_device_arch.sdoc

[DOCUMENT_FROM_FILE]
FILE: bacnet_fw-app_arch.sdoc

17 changes: 17 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_stakeholder_constraints.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[DOCUMENT]
TITLE: BACnet Stack Stakeholder Constraints
REQ_PREFIX: BKSTK-STRS-CONSTRAINTS

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

[SECTION]
TITLE: Standards & Regulations

[/SECTION]

12 changes: 12 additions & 0 deletions reqmgmt/docs/stakeholder_needs/bacnet_stakeholder_needs.sdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[DOCUMENT]
TITLE: BACnet Stack Stakeholder Needs
REQ_PREFIX: BKSTK-STRS-NEEDS

[GRAMMAR]
IMPORT_FROM_FILE: bacnet_stakeholder_needs.sgra

[TEXT]
STATEMENT: >>>
SPDX-LICENSE-IDENTIFIER: Apache-2.0
<<<

Loading
Loading