Skip to content

Releases: aws/aws-iot-fleetwise-edge

Release v1.3.2

24 Jun 13:49
cefc4c3
Compare
Choose a tag to compare

Bug fixes:

  • Fixed race conditions in OBDOverCANModule,DataSenderIonWriter, CollectionInspectionWorkerThread and CANDataSource found by coverity 2024.3.1.

Improvements:

  • Refactored telemetry data serialization to ensure Store and Forward uses the same payload size
    optimizations as regular telemetry data.
  • Updated the default dependency installation prefix to /usr/local, enabling CMake to locate
    dependencies using its standard search paths without requiring explicit CMAKE_PREFIX_PATH
    argument.
  • Fixed various Coverity regressions.

Release v1.3.1

29 Apr 07:17
e650426
Compare
Choose a tag to compare

Bug fixes:

  • Fixed memory growth in DTC
  • Fixed a timing-dependent use-after-free issue in the Store and Forward feature where updating collection schemes during active condition evaluation could cause the application to access invalid memory.

Release v1.3.0

21 Apr 11:24
Compare
Choose a tag to compare

Bug fixes:

  • Fixed crash when using Greengrass V2 connection type.

Improvements:

  • Improved guide for Greengrass V2
  • Added an option to fwdemo stack to use Greengrass V2 connection type. When MqttConnectionType is set to iotGreengrassV2, the EC2 instance will be configured as a Greengrass core device and FWE will be deployed as a Greengrass component.
  • Make SHA1 code compatible with Boost 1.86.0. The 1.84.0 version is still being used as a dependency, but the code should now compile with more recent versions too. Related to #119
  • Added system test framework with 70 reference system tests
  • Update to Ubuntu 22.04 for the development environment
  • Upgraded the ROS2 distribution from Galactic to Humble

Release v1.2.1

27 Feb 12:45
Compare
Choose a tag to compare

New features:

  • Added Python support in expressions with custom function implementation for both CPython and MicroPython.
  • Added support for IEEE 754 floating-point signals for CAN and OBD.
  • Added support for signed OBD PID signals.
  • Added support for using FWE as an external library, see the examples.

Bug fixes:

  • Fixed deletion of buffer after hand over to sender.
  • Fixed memory leak when generating Ion files for Vision System Data. This was caused by a known issue in the ion-c library. To avoid that all ion-c function calls now happen in the same thread.
  • Fixed possible thread lockups in rare cases when system time jumps to the future, or due to a stdlibc++ issue. Includes the addition of the new option collectionSchemeManagerThreadIdleTimeMs.
  • Fixed sporadic SOME/IP build failures due to concurrent file generation.
  • Fixed possible hang during shutdown when feature FWE_FEATURE_UDS_DTC_EXAMPLE was enabled.

Improvements:

  • Add checksum for persisted files (e.g Collection scheme, Decoder manifest, Telemetry data). Now when writing a file, the persistency layer calculates the SHA1 for the content and write it to a file alongside the content file with a .sha1 extension. When reading the file, if the .sha1 file doesn't exist it just logs a warning. This is intended to keep backward compatibility with files that were written by older FWE versions. Otherwise if the .sha1 file exists, a mismatch in the SHA1 when reading the content will cause both the content file and the .sha1 file to be deleted.
  • Store and forward optimized for systems with slow write speed to persistent storage.
  • Update GoogleTest to 1.15.2.
  • Removed unsupported raw CAN frame collection.
  • Added optional awsSdkLogLevel field to the config file. Valid values are Off, Fatal, Error, Warn, Info, Debug, Trace. Previously the AWS SDK logs were always disabled. This allows the logs to be configured in AwsBootstrap.cpp (see the SDK docs for more details). If this is set to some level different than Off, the SDK logs will be redirected to FWE's logger. Since FWE doesn't provide all levels, Fatal is mapped to FWE's Error and Debug to FWE's Trace.
  • IMDS is now disabled when creating an S3 client. In some situations this could cause delays when creating a new client (for more details see aws/aws-sdk-cpp#1511).

Release v1.2.0

21 Nov 19:31
Compare
Choose a tag to compare

New features:

Breaking changes:

  • The collectionSchemeListTopic, decoderManifestTopic, canDataTopic and checkinTopic config fields are deprecated. If a config file has any of them, they will be ignored. Now FWE defaults to AWS reserved topics without needing any additional config. If you still need to customize the topics you can set the prefix using the new iotFleetWiseTopicPrefix field.
  • Only affects existing iWave and Android instances: Replaced the CAN-based CustomDataSource implementation with the new Network agnostic data collection approach for custom data sources. Existing iWave and Android instances will need to be re-configured and have changes made to their decoder manifest to use this new version.

Release v1.1.2

30 Oct 15:40
Compare
Choose a tag to compare

Bug fixes:

  • MQTT connection fixes:
    • Retry MQTT topic subscription when it fails. When FWE starts up, it tries to establish the MQTT
      connection and retries until it succeeds. Only after that, it subscribes to the topics. But if a
      subscription failed (e.g. due to network issues), it never retried, making FWE never receive
      messages from the topic until the process is restarted.
    • On shutdown only unsubscribe to MQTT Channels that are subscribed
    • When persistent sessions are enabled, don't unsubscribe on shutdown. This is required for FWE to
      receive messages while it was offline.
    • Connect only after all listeners are subscribed. If a message was received right after
      connection was established, it could be silently ignored because the listeners for the topic
      weren't registered yet.
  • ROS2 related bug fixes:
    • If more than one campaign used a ROS2 signal in its expression, only the first campaign would
      receive data for evaluation.
    • If FWE receives a campaign more than once from the cloud, data collection would stop due to
      internal signal IDs being reallocated.
    • Fixed segfault for VSD build when campaigns received before decoder manifest
  • Fixed invalid read on shutdown when network is down

Improvements:

  • Update AWS C++ SDK to v1.11.284.
  • Update Boost to 1.84.0.
  • Enable flow control for MQTT5 client (when using iotCore connection type). This limits data sent
    by FWE to what is defined in IoT Core limits for throughput and number of publishes.
  • Change default values for some MQTT connection settings and make them configurable in the config
    file. All defaults are now the same as the AWS SDK:
    • Keep alive interval changed from 60 seconds to 1200 seconds. Set keepAliveIntervalSeconds
      to override it.
    • Ping timeout default changed from 3000 ms to 30000 ms. Set pingTimeoutMs to override it.
    • Persistent sessions are now disabled by default. Set sessionExpiryIntervalSeconds to a
      non-zero value to enable it.
  • Add implicit casting between numeric and Boolean data types in expression evaluation. E.g.
    1 + true will equal 2, and false || 3 will equal true.
  • Add support for relative paths to the certificate, private key files and persistency directory,
    relative to the directory containing the configuration JSON file.
  • Make demo.sh more generic, by 1/ Allowing multiple 'node', 'decoder', 'network interface', and
    'campaign' JSON files to be passed, rather than having specific options for CAN, OBD and ROS2, 2/
    Add --data-destination option to specify data destination (default is still Amazon Timestream.)
    This allows the Android-specific demo script to be removed.
  • Previously if the CAN network interface goes down, FWE would exit with an error. Now it will
    continue to run and will resume data collection if the interface comes back up, however it will
    still exit with an error if the interface is removed from the system.
  • Improved developer guides
  • Added Disconnect Packet to the MQTT Client Stop sequence to help customers understand what the
    reason for the vehicle disconnection from the broker
  • Added usage of data type from decoder manifest for CAN and OBD signals
  • Add new signal type UNKNOWN
  • Split MQTT channels into separate Sender and Receiver compared to previously using the same
    channel instance to send and receive messages
  • Adaptive payload sizing for both compressed and uncompressed data

Release v1.1.1

15 Feb 13:15
Compare
Choose a tag to compare

Bug fixes:

  • Fixed possible segfaults at startup triggered by bad configuration.
  • Fixed periodic upload trigger for heartbeat campaigns, that previously was only triggered by further data reception.

Improvements:

  • Improve error output for bad configuration, to indicate where an option is missing or incorrect.
  • Upgraded GitHub actions to support Node v20, as Node v16 is now EOL.
  • Fixed some Coverity check regressions.
  • Removed unsupported 'Geohash' feature.
  • Corrected cleanup instructions in guides.
  • Build Boost from source with -fPIC to enable linkage in a shared library.

Release v1.1.0

27 Nov 05:01
Compare
Choose a tag to compare

Features:

  • Add support for 'vision system data', with initial support for collection from ROS2. This enables collection of complex data types including structures, arrays and strings. Nested structures and arrays of structures are also supported.
    • Known limitations:
      • When no internet connection is available, collected vision system data is currently dropped, i.e. it is not persisted to the filesystem for later upload when connectivity is restored.
      • When the upload of vision system data to S3 fails, e.g. due to poor connectivity or throttling by S3, currently only one retry is attempted.

Improvements:

  • Update AWS C++ SDK to v1.11.177.
  • Update Yocto reference to kirkstone and NXP Linux BSP 37.0.
  • Switch to MQTT 5 client for better error messages. This is fully backward compatible with the previous client. Please note that currently we are not using nor supporting any MQTT 5 specific feature besides reason codes.
  • When a CAN interface goes down at runtime, FWE will now exit with with an error.
  • Enabled FWE_FEATURE_IWAVE_GPS for the GitHub armhf pre-built-binary, and added auto-detection of the iWave GPS for backwards compatibility with configuration files without the .staticConfig.iWaveGpsExample section.

Release v1.0.8

25 Sep 12:42
Compare
Choose a tag to compare

Bug fixes:

  • Update AWS C++ SDK to v1.11.148, which includes an important bugfix for MQTT 3.1.1 clients.

Improvements:

  • Add support for building as a library exported by CMake. Set the CMake option FWE_BUILD_EXECUTABLE to OFF, then use find_package(AwsIotFwe), ${AwsIotFwe_INCLUDE_DIR} and link with AwsIotFwe::AwsIotFwe.
  • Non-functional source code improvements:
    • Simplify src/ folder structure, removing sub-namespaces & sub-libraries, and moving unit test files to test/unit/.
    • Correct #includes using include-what-you-use.
    • Move from compile-time mocking to link-time mocking of AWS C++ SDK using Google Mock.
  • Fix GitHub CI: support separate Ubuntu package mirror file, fix caching of Android install files.
  • Add support for shared libraries to dependency install scripts.
  • Developer guide and demo script improvements:
    • Add clean up instructions.
    • Better support existing S3 buckets, with check for same region & ACLs being disabled, and allow setting of bucket policy.
    • Allow HTML generation of results for custom DBC files.

Release v1.0.7

02 Aug 15:00
Compare
Choose a tag to compare

Features:

  • Add Android Automotive (AAOS) support.
  • Add experimental Greengrass V2 support

Bug fixes:

  • Fix always saving data to disk when offline, even when configured not to in the campaign.
  • Fix possible NullPointerException in Android app.

Improvements:

  • Refactor persistent file handling, which now saves files under a subfolder called
    FWE_Persistency in the directory configured in the config file by persistencyPath. Now a
    separate file is saved for each payload file to be uploaded. An extra file PayloadMetadata.json
    is created containing metadata for these files, the schema for which can be found
    here.
  • Reduce Android app minSdk to 21 (Android 5.0).
  • Update AWS C++ SDK to v1.11.111.

Deprecation:

  • Remove the experimental camera feature (-DFWE_FEATURE_CAMERA). This is unsupported and it was
    not being maintained.