astarte-platform/astarte-device-sdk-esp32

uploaded 2 months ago
A component that provides communication and pairing primitives to an Astarte cluster
<!---
  Copyright 2018-2023 SECO Mind Srl

  SPDX-License-Identifier: LGPL-2.1-or-later OR Apache-2.0
-->

# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.3.3] - 2024-09-04
### Fixed
- Correctly calling the incoming data callback.

## [1.3.2] - 2024-09-04 [YANKED]
### Added
- Automated publishing on the
[ESP registry](https://components.espressif.com/components/astarte-platform/astarte-device-sdk-esp32).

### Fixed
- Early exit on reception when data callback is not set.

## [1.3.1] - 2024-01-18
### Fixed
- Version number in `idf_component.yml`.

## [1.3.0] - 2023-12-18
### Added
- `user_data` field is added to the `astarte_device_config_t` and `astarte_device_*_event_t`
  structs. This field can be used to pass user data to callback functions.
- Utility function `astarte_err_to_name`. Can be used to obtain a string representation of any error
  returned from the device.
- Properties retention in NVS. The values of server and device properties can now be stored
  permanently using the NVS drivers of ESP. Two new configuration entries have been added to the
  Astarte SDK menu. One enables properties persistency while the other can be used to specify a
  custom NVS partition where to store such properties.

### Changed
- Return value of `uuid_generate_v5` and `astarte_hwid_encode` functions from `void` to
`astarte_err_t`.`

### Removed
- Support for ESP-IDF with versions lower than v4.4.
- Support for the old ESP-IDF GNU Make system. For help on how to migrate a project to the new
`CMake` system, see the espressif
[documentation](https://docs.espressif.com/projects/esp-idf/en/v4.4.6/esp32/api-guides/build-system.html#migrating-from-esp-idf-gnu-make-system).

## [1.2.0] - 2023-07-19
### Added
- Add support for server validation through ESP x509 Certificate Bundle.
- Add maximum JWT size to SDK configuration options.
- Add new deserialization utilities contained in `astarte_bson_deserializer.h`.
- Add README section on how to use the (de)serialization utilities.
- Add the typedefines `astarte_bson_serializer_handle_t`, `credential_type_t`,
  `astarte_ptr_list_entry_t` and `astarte_pairing_config_t`.
- Add new `astarte_bson_serializer_new` function.

### Deprecated
- BSON deserialization utility `astarte_bson.h`. Use the new deserialization functions contained
  in `astarte_bson_deserializer.h`.
- Direct use of the enums and structs `astarte_err_t`, `astarte_byte_array_t`,
  `astarte_bson_serializer_t`, `credential_type_t`, `astarte_list_head_t`, `astarte_ptr_list_entry_t`
  and `astarte_pairing_config`.
- Serializer initialization function `astarte_bson_serializer_init`. Use the new
  `astarte_bson_serializer_new` instead.

### Removed
- Support for ESP IDF v3.x.

### Fixed
- Fixed failure in writing the private TLS key following a hard reset performed during the partition
formatting procedure (Available since IDF v5.1).

## [1.1.3] - 2023-05-18
### Fixed
- Fix crash when using an invalid client certificate.

## [1.1.2] - 2023-04-13
### Fixed
- Fix hardware ID generation for IDF 5.0.

## [1.1.1] - 2023-04-07

## [1.0.5] - 2023-04-07
### Added
- Add Empty Cache support.

## [1.1.0] - 2023-02-23
### Added
- Add support to ESP-IDF v5.0

### Fixed
- Fix a bug preventing parsing of bson files containing arrays.

## [1.0.4] - Unreleased
### Added
- Add check that prevents sending an interface with both major and minor version set to 0

## [1.0.3] - 2022-07-05

## [1.0.2] - 2022-04-14
### Added
- Add support to server-owned property unset, using `unset_event_callback`.

### Changed
- Functions such as `astarte_device_set_string_property` should make use of `const char *`, instead
  of `char *`.

## [1.0.1] - 2021-12-23
### Added
- Allow passing an explicit realm to `astarte_device_config_t`.
- Add function for generating random UUIDv4.
- Add astarte_bson_serializer_append_<T>_array functions to BSON serializer (for each supported
  type).
- Add astarte_device_stream_<T>_array(_with_timestamp) functions to astarte_device (for each
  supported type) in order to enable sending arrays to array typed datastreams.

## [1.0.0] - 2021-07-02

## [1.0.0-rc.0] - 2021-05-10
### Changed
- `astarte_device_add_interface` **incompatible API change**, the caller now has to provide a
  pointer to an `astarte_interface_t` struct.
- Make sure the device only subscribes to server owned interfaces. This avoids that published
  messages are sent back to the device.

## [1.0.0-beta.2] - 2021-03-23
### Added
- Add `astarte_device_stop` function to stop the internal MQTT client.
- Add connection and disconnection callbacks called after device connection/disconnection.

### Changed
- `astarte_device_start` now returns `astarte_err_t` to check if the device was succesfully started.

## [1.0.0-beta.1] - 2021-02-16
### Added
- Allow sending data to object aggregated interfaces.
- Allow using UUIDv5 to derive the hardware id.
- Add support for esp-idf 4.x build system.

### Changed
- The hardware id now will use UUIDv5 by default. This means that if you were using an old version
  of the SDK, this version will change the generated device id, requiring a new credentials secret.
  If you need to keep the old device id, disable `Use UUIDv5 to derive the hardware ID` in the
  Astarte SDK settings with `make menuconfig`.

## [0.11.4] - 2021-01-26

## [0.11.2] - 2020-08-31
### Added
- Add device hardware id getter.

### Fixed
- Fix a bug preventing device reinitialization if credentials were not retrieved correctly.

## [0.11.1] - 2020-05-18
### Added
- Add a function to unset a properties path.
- More detailed return error codes.
- Add wrappers to set values on properties interfaces.
- Add SDK version in `astarte.h`.

### Changed
- Most functions will no longer return ASTARTE_ERR, but a more specific error. Code checking for
  `err == ASTARTE_ERR` will most likely need to be changed.

### Fixed
- Correctly interpret the document length as a 32 bit number when appending a BSON document.

## [0.11.0] - 2020-04-13
### Added
- Allow passing an explicit credentials secret to the device instead of depending from the on-board
  agent registration.
- Add `astarte_device_is_connected` function.

## [0.11.0-rc.1] - 2020-03-26
### Changed
- Deprecate implicit credentials initialization, the user should now call `astarte_credentials_init`
  in its `main` before calling `astarte_device_init`.
- Improve memory footprint.
- Use ECDSA for keys instead of RSA.

### Fixed
- Avoid reinitializing a valid device due to connectivity errors.

## [0.11.0-rc.0] - 2020-02-27
### Fixed
- Handle client certificate expiration by requesting new credentials to Pairing API.
- Fix crash due to printing a NULL string in astarte_pairing.

## [0.10.2] - 2019-12-09
### Added
- Allow setting an explicit hwid instead of using the hardware generated one.
- Add UUID library, allowing to generate a UUIDv5 to be used as hwid.

## [0.10.1] - 2019-10-02

## [0.10.0] - 2019-04-17

## [0.10.0-rc.1] - 2019-04-10
### Fixed
- MQTT handler was not compiling with -Werror.

## [0.10.0-rc.0] - 2019-04-04
### Added
- Initial SDK release, supports pairing and publish/receive of basic Astarte types.

Links

Supports all targets

Maintainers

  • Simone Orru <simone.orru@secomind.com>
  • Antonio Gisondi <antonio.gisondi@secomind.com>

License: Apache-2.0

To add this component to your project, run:

idf.py add-dependency "astarte-platform/astarte-device-sdk-esp32^1.3.3"

or download archive

Stats

  • Archive size
    Archive size: 120.87 KB
  • Downloaded in total
    Downloaded in total 148 times
  • Downloaded this version
    This version: 130 times

Badge

astarte-platform/astarte-device-sdk-esp32 version: 1.3.3
|