• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bacnet-js / client / 21899787580
83%

Build:
DEFAULT BRANCH: master
Ran 11 Feb 2026 09:37AM UTC
Jobs 1
Files 44
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Feb 2026 09:34AM UTC coverage: 82.951% (-0.02%) from 82.967%
21899787580

push

github

web-flow
feat: read schedule,calendar and trend (#64)

## Summary
This PR ports schedule/calendar/trend read compatibility from the legacy
`node-bacstack` implementation into `@bacnet-js/client`, and adds read
examples for manual validation.

Source reference:
- https://github.com/EveGun/node-bacstack

## What changed
- Added specialized decode paths in `ReadProperty.decodeAcknowledge`
for:
  - `WEEKLY_SCHEDULE`
  - `EXCEPTION_SCHEDULE`
  - `EFFECTIVE_PERIOD`
  - `DATE_LIST`
- Added BACnet `WEEKNDAY` support in ASN.1 decode flow.
- Added `decodeRange` integration in `ReadRange.decodeAcknowledge`.
- Fixed non-zero offset slicing in `ReadRange` fallback range buffer
handling.
- Fixed closing-tag length consumption in exception schedule decode.
- Added unit tests for schedule/calendar parsing and trend range
decoding.
- Added read examples:
  - `examples/read-schedule-weekly.ts`
  - `examples/read-schedule-exceptions.ts`
  - `examples/read-schedule-period.ts`
  - `examples/read-calendar-datelist.ts`
  - `examples/read-trend.ts`

## Type consistency
- Trend range `timestamp` now returns `Date` (instead of epoch number)
for consistency with other decoded date/time fields.

## Validation
- `npm run lint` ✅
- `npm run test:unit` ✅
- Docker-based compliance tests executed successfully in local
environment ✅
- Manually validated against a WAGO PFC200 device
(schedule/calendar/trend read paths) ✅

## Notes
- Write examples were intentionally removed from this read-focused
branch.
- Write-side porting will follow in a separate branch/PR.
- Parser behavior was validated against real BACnet traffic captures
from WAGO PFC200 communication (Wireshark), then confirmed with live
device reads.

877 of 1362 branches covered (64.39%)

Branch coverage included in aggregate %.

230 of 256 new or added lines in 3 files covered. (89.84%)

5166 of 5923 relevant lines covered (87.22%)

36.67 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
85.0
6.21% src/lib/services/ReadProperty.ts
25
64.85
3.35% src/lib/asn1.ts
Jobs
ID Job ID Ran Files Coverage
1 21899787580.1 11 Feb 2026 09:37AM UTC 44
82.95
GitHub Action Run
Source Files on build 21899787580
  • Tree
  • List 44
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #21899787580
  • 0ce3996b on github
  • Prev Build on master (#19532691339)
  • Next Build on master (#21907071234)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc