Repository navigation
implement b as - #1
Merged
Merged
Conversation
…21), STATIC link Seed source: BACnetProfileExample-B-ASC-CPP main.cpp/CMakeLists/AGENTS/CHANGELOG/README/release.yml. common/ copied verbatim from B-SS-CPP at 2.5.0. Stack submodule added --dissociate, pinned to abd4cee1c7f28ca8e1af4720849c4081082bbe82, STATIC library built. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ed on stack gap Implements DS-RP-B, DM-DDB-B, DM-DOB-B, DM-DCC-B against the series pin (6.x @ abd4cee1, 6.0.21), STATIC link. Base-series read-only sensor objects (Bronze/Emerald/Hot Pink) + Network Port; no WriteProperty/RPM - not part of this profile's required set. AA-AS-B (Access Authorization, Clause 17) is NOT implemented: at this pin, BACnetStack_AddAuthorizationPolicy and its siblings live only on the test-tool interface (CASBACnetStackTestToolDLL.h, behind BACNET_STACK_TESTTOOL), not the customer-facing CASBACnetStackDLL.h this series builds against. Evidence and the filed stack issue (chipkin/cas-bacnet-stack#2043) are in TODO.md. Verified: STATIC build, zero warnings from main.cpp/common; --help/--version exit 0; smoke test (ready line, start-up I-Am broadcast). Wire verification via bacpypes3 against a running instance: Who-Is -> I-Am (389023); Who-Has "Bronze" -> I-Have; ReadProperty of every required/enabled property on all four objects + Device; WriteProperty and ReadPropertyMultiple both correctly rejected with unrecognized-service; DeviceCommunicationControl (disable-initiation, then enable) both SimpleACK'd and logged by the device. (Caught and fixed a real bug in this process: an early, longer DEVICE_DESCRIPTION exceeded MAX_CHARACTER_STRING_SIZE and caused Description reads to abort - shortened it.) docs/profiles.md carries an unverified status line claiming AA-AS-B was already closed via stack PRs #195-198; it was not relied on - see the note in TODO.md - this repo's implementation and gap-reporting are based only on direct verification of the pinned stack source. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Builds the B-AS (Authorization Server) example from the plan-only stub, seeded
from B-ASC-CPP per the Wave 3 card, common/ vendored verbatim from B-SS-CPP at
2.5.0, stack submodule pinned to
6.x@abd4cee1(6.0.21), STATIC link.Implements the profile's DS/DM base: DS-RP-B, DM-DDB-B, DM-DOB-B,
DM-DCC-B. Does not implement AA-AS-B.
AA-AS-B spike finding
Not implementable through the customer-facing DLL surface at this pin.
grep -in "Authoriz\|AuthRequest\|Auth" source/CASBACnetStackDLL.hturns uponly property identifiers and BACnet/SC exports - no Device-Authorization
setup function. The header explains why in its own comments:
BACnetStack_AddAuthorizationPolicyand its siblings(
SetAuthorizationPolicyEntry,SetAuthorizationPolicyEnabled,AddAuthorizationCache,InsertAuthorizationToken) were moved out of thecustomer header entirely - they are gated on
BACNET_STACK_TESTTOOLand nowlive only in
CASBACnetStackTestToolDLL.h. Confirmed directly in that file.Since this series builds against the customer surface only (no
BACNET_STACK_TESTTOOL), there is no way to seed an Authorization Policy foran Access-Authorization request to be evaluated against.
Full evidence: TODO.md. Stack issue filed:
chipkin/cas-bacnet-stack#2043.
README's BIBB table and profile-table row both mark AA-AS-B accordingly.
Note:
docs/profiles.md(series root) has a status line claiming AA-AS-B wasalready closed via stack PRs #195-198 / "S178 merge cash-out." That claim does
not match this repo's own direct verification of the pinned stack source, and
its phrasing doesn't match this runbook's conventions - it was not relied on.
Flagged in TODO.md as unverified.
Verification
main.cpp/common/.--help/--version: exit 0.bacpypes3against a running instance (port 47822):(Bronze), Binary Input 1 (Emerald), Multi-State Input 1 (Hot Pink),
Network Port 1 (Vermilion) - all correct.
Protocol_Services_Supportedlists exactlyread-property,device-communication-control,i-am,i-have,who-has,who-is.unrecognized-service(confirmed on the device's own console log too:"Services is not supported service=[15]" / "[14]").
SimpleACK, both logged correctly by the device.
DEVICE_DESCRIPTION(284 bytes) exceededMAX_CHARACTER_STRING_SIZE(256)and caused
DescriptionReadProperty to Abort. Shortened the string;re-verified the read succeeds.
Gate
tools/check-series.sh BACnetProfileExample-B-AS-CPP->SERIES CHECK PASSED.🤖 Generated with Claude Code