Skip to content

Releases: astarte-platform/astarte-device-sdk-cpp

v0.9.0

11 Feb 15:50
v0.9.0
d977675

Choose a tag to compare

Astarte Device SDK C++ v0.9.0 release.

CHANGELOG

Added

  • Initial MQTT implementation. This supports transmitting datastreams, but does not yet support setting/unsetting properties or receiving data.
  • Added the astarte::device::mqtt namespace containing all MQTT-specific functionality.
  • New astarte::device::mqtt::DeviceMqtt class implementing an Astarte device using the MQTT transport layer.
  • New astarte::device::mqtt::Config class for configuring an Astarte device using the MQTT transport layer.
  • New astarte::device::mqtt::PairingApi class for interacting with the Astarte pairing API.
  • Comprehensive set of error classes encapsulated in std::expected objects.
  • Helper scripts to build samples on Windows platforms.

Changed

  • Reorganized the SDK namespace structure. The AstarteDeviceSdk namespace has been replaced by astarte::device.
  • Removed the Astarte prefix from all classes and enums.
  • Renamed AstarteDeviceGRPC into DeviceGrpc and moved it to the astarte::device::grpc namespace.
  • Renamed AstarteStoredProperty into StoredProperty
  • Renamed AstartePropertyIndividual into PropertyIndividual
  • Renamed AstarteDatastreamObject into DatastreamObject
  • Renamed AstarteMessage into Message
  • Renamed AstarteDatastreamIndividual into DatastreamIndividual
  • Renamed AstarteDeviceGRPC into DeviceGRPC
  • Renamed AstarteDevice into Device
  • Renamed AstarteData into Data
  • Renamed AstarteType into Type
  • Renamed AstarteOwnership into Ownership
  • Replaced the exception system with std::expected return types. This uses the native C++ implementation where supported, falling back to a third-party dependency on older C++ versions.
  • Updated Astarte message hub protos to v0.10.1. As of version v0.10.0, protos no longer define their own CMake package. Instead, they provide CMake functions to add compiled protos to the Astarte device target. Consequently, pkg-config now yields a single package for the Astarte device instead of two distinct packages for the device and proto sources.

Removed

  • All library-specific exception classes. Users should migrate to the new error reporting system.

v0.8.1

29 Oct 08:51
v0.8.1
9287636

Choose a tag to compare

Astarte Device SDK C++ v0.8.1 release.

CHANGELOG

Changed

  • Forward port from v0.7.1

Other Changes Since v0.7.1

Fixed

  • An integer overflow in the exponential backoff module. The bug caused the calculated reconnection delay to wrap around to a negative value, leading to zero delay connection attempts during a network outage.

v0.7.1

28 Oct 15:56
v0.7.1
1c434cf

Choose a tag to compare

Astarte Device SDK C++ v0.7.1 release.

CHANGELOG

Changed

  • Forward port from v0.6.2

Other Changes Since v0.6.2

Fixed

  • An integer overflow in the exponential backoff module. The bug caused the calculated reconnection delay to wrap around to a negative value, leading to zero delay connection attempts during a network outage.

v0.6.2

28 Oct 13:05
v0.6.2
6d63d67

Choose a tag to compare

Astarte Device SDK C++ v0.6.2 release.

CHANGELOG

Fixed

  • An integer overflow in the exponential backoff module. The bug caused the calculated reconnection delay to wrap around to a negative value, leading to zero delay connection attempts during a network outage.

v0.8.0

10 Oct 16:07
v0.8.0
49f7d89

Choose a tag to compare

Astarte Device SDK C++ v0.8.0 release.

CHANGELOG

Added

  • Support for the Conan package manager. Users can build the library as a Conan package and import it into their Conan projects.

Fixed

  • Bug preventing build with the Microsoft compiler #113.

v0.7.0

13 Aug 16:29
v0.7.0
fa9f4b9

Choose a tag to compare

Astarte Device SDK C++ v0.7.0 release.

CHANGELOG

Added

  • API calls to fetch stored device properties in the gRPC Astarte device.

Changed

  • Use C++20 as the minimum required library version.
  • The gRPC Astarte device introspection can now be modified dynamically while the device is connected.

Removed

  • Avoid using a timeout to check the device connection status.

v0.6.1

11 Aug 09:10
v0.6.1
542c0d0

Choose a tag to compare

Astarte Device SDK C++ v0.6.1 release.

CHANGELOG

Added

  • Astarte classes can now be formatted, using the standard library's formatter by default. If it's not available, the feature uses the fmtlib library from spdlog as a fallback. To use this fallback, you must enable the ASTARTE_PUBLIC_SPDLOG_DEP option in CMake.

Fixed

  • Qt sample compilation errors on Windows machines.

v0.6.0

21 Jul 10:33
v0.6.0
1527d37

Choose a tag to compare

Astarte Device SDK C++ v0.6.0 release.

CHANGELOG

Added

  • Added is_connected method to the Astarte device. Users can evaluate through that method if the device is connected to the Astarte message hub.
  • All gRPC messages can be logged usign spdlog with trace level logging enabled.
  • Method to add a json interface as a string directly, without reading it from a file
  • Method to convert an AstarteMessage and AstarteData that returns an std::option instead of an exception
  • A new Qt sample showing how to use the Astarte device library in a Qt project.
  • ASTARTE_ENABLE_FORMAT and ASTARTE_PUBLIC_PROTO_DEP CMake options.
  • AstarteDatastreamIndividual, AstartePropertyIndividual and AstarteDatastreamObject (renaming of AstarteObject) classes, representing the different Astarte data types.
  • get_starded.md, a step by step guide useful to try the SDK functionalities guide.

Changed

  • The AstarteDevice is now an abstract class transport independent. Users should instantiate the AstarteDeviceGRPC class which is the gRPC specific Astarte device class.
  • Astarte device poll requires a timeout parameter.
  • Reference version of the Astarte message hub is v0.8.0
  • Bump the Astarte message hub proto definitions to v0.8.4.
  • The USE_SYSTEM_GRPC option has been moved to the Astarte message hub proto and prefixed with ASTARTE_.
  • The grpc sample has been renamed to simple.
  • The value contained in an Astarte message can now be directly converted to one of: AstarteDatastreamIndividual, AstartePropertyIndividual and AstarteDatastreamObject using the into method.
  • The connection procedure is now asynchrnonous. When connect is called the device will attempt to connect untill the disconnect function is called or the object is destroyed. The device will use an exponential backoff to avoid network congestion.
  • Enums elements are now named using a k prefix and camel case format.

Removed

  • base64 has been fully removed as a dependency.

v0.5.0-beta

20 Mar 11:03
v0.5.0-beta
3b2eb7c

Choose a tag to compare

v0.5.0-beta Pre-release
Pre-release

Astarte Device SDK C++ v0.5.0 beta release.

CHANGELOG

Added

  • Initial SDK release, supports connecting to a message hub instance and publishing/receiving basic Astarte types.