Documentation

v1.5.0

This release marks the end of OSPD specification v2.1.6 support. Post this release, LibOSDP would start supporting new features added in IEC Edition 1.0…

Date
Versionv1.5.0

This release marks the end of OSPD specification v2.1.6 support. Post this release, LibOSDP would start supporting new features added in IEC Edition 1.0 specification.

Features

  • libosdp: Introduce a lean-build system
  • tests: Add a command level unit test executor
  • libosdp: Add new command complete callback

Enhancements

  • libosdp: Add cmake option CONFIG_OSDP_STATIC_PD (configure --static-pd)
  • pd: Use better NAK error code when rejecting a command due to SC inactive
  • LibOSDP: Split build/send and receive/decode methods
  • Add new typedef and document osdp_log_fn_t
  • Remove implicit logging via printf()
  • Avoid allocs by switching log buf to static char[]
  • Add compile time switch to disable colours in osdp logs
  • Add Makefile target to clone utils submodules at init
  • phy: Allow non-conformant, 0 length, encrypted data blocks
  • cp: Add bounded exponential back-off for offline retries
  • cp: Add detection of a busy reply with sequence number 0
  • Mark some methods with __weak for portability

Fixes

  • Clean src/osdp_cp.o even if it is not built due to --single-pd
  • Just fix the description comment for OSDP_PD_NAK_SEQ_NUM
  • Call osdp_logger_init() before setting up CP/PD for early logging
  • Fix off-by-one at vsnprintf()'s return value assertion
  • Move osdp_millis_*() into utils::utils.c
  • Move unistd.h into CONFIG_DISABLE_PRETTY_LOGGING guard
  • Enable github workflows on lean build to keep them in sync
  • Fix coverity identified off-by-one out-of-bound array access
  • Fix coverity identified logical dead-code
  • sc: Fix potential out-of-bound buffer access
  • cp: Bypass unneeded packet decoding for a busy reply
  • cp: Don't regenerate random numbers for the challenge command
  • cp: Add the OSDP_ONLINE_RETRY_WAIT_MS timeout
  • pd: Fix device capabilities report
  • Call to osdp_dump was using incorrect length