Releases: aws/aws-iot-fleetwise-edge
Releases · aws/aws-iot-fleetwise-edge
Release v1.0.6
Features:
- Add Android support, including shared library and demonstration app.
Improvements:
- Change from
arn
tosync_id
for campaign_arn and document_arns, thesync_id
being the ARN
followed by the timestamp of the last update. The change is backwards compatible with older
versions of the edge agent. - Ubuntu package mirror from system used, rather than
ports.ubuntu.com
. - Add root CA and inline credentials support to static config file.
- Add extra metrics for AWS SDK heap usage, used signal buffer, MQTT messages sent out.
- Add support for in-process ingestion of external GPS, CAN and OBD PID values when FWE is compiled
as a shared library. - Fix compiler warnings for armhf build.
- Update Protobuf to v3.21.12, AWS C++ SDK to v1.11.94.
Release v1.0.5
Bugfixes:
- RemoteProfiler not always uploading logs
Improvements:
- Refactor Producer/Consumer architecture, removing the buffer and thread between the
CANDataSource
and theCANDataConsumer
. The static config optionsocketCANBufferSize
was
therefore removed. - Add documentation on how to use edge specific metrics.
- Change from
arn
tosync_id
for all decoder manifest Protobuf fields, thesync_id
being the
ARN followed by the timestamp of the last update. The change is backwards compatible with older
versions of the edge agent. - Improve MISRA C++ 2008, and AUTOSAR C++ compliance.
- Updated CloudFormation templates to use IMDSv2.
Release v1.0.4
Bugfixes:
- Fix OBD timers not being reset. If the decoder manifest is empty or DTCs are not collected the OBD
PID or DTC timers were not reset, causing a 100% CPU and log spam with the following message
[WARN ] [OBDOverCANModule::doWork]: [Request time overdue by -X ms]
. - Support OBD2 PIDs ECU response in different order than requested. Also accept ECU response if not
all requested PIDs are answered. - Unsubscribe and disconnect from MQTT on shutdown: previously a message arriving during shutdown
could cause a segmentation fault.
Improvements:
- Update to Ubuntu 20.04 for the development environment.
- Add flake8 checking of Python scripts.
- Improve GitHub CI caching.
- Improve MISRA C++ 2008, and AUTOSAR C++ compliance.
- Improve logging: macros used to automatically add file, line number and function.
- Improve unit test stability, by replacing sleep statements with 'wait until' loops.
- Removed redundant JSON output code from
DataCollection*
files.
Work in Progress:
- Support for signal datatypes other than
double
, includinguint64_t
andint64_t
.
Release v1.0.3
Features:
- Added OBD broadcast support to send functional rather than physical requests to ECUs to improve compatibility with a broader range of vehicles.
This behavior does however increase CAN bus load. The config optionbroadcastRequests
can be set tofalse
to disable it.
Bugfixes:
- Fix
CollectionSchemeManager
andCollectionInspectionEngine
to use monotonic clock
This now makes check-in and data collection work even when the system time jumps.
Please note that the timestamp present in check-in and collected data may still represent the system time, which means that newly collected data may
be sent with a timestamp that is earlier than the previous sent data in case the system time is changed to some time in the past.
Improvements:
- Logs now show time in ISO 8601 format and UTC.
- Added optional config
logColor
for controlling ANSI colors in the logs. Valid values:Auto
,Yes
,No
. Default value isAuto
, which will make
the agent try to detect whether stdout can interpret the ANSI color escape sequences. - A containerized version of the edge agent is available from AWS ECR Public Gallery: https://gallery.ecr.aws/aws-iot-fleetwise-edge/aws-iot-fleetwise-edge.
- Improve CERT-CPP compliance.
- Improve quick start guide and demo script.
- Clarify the meaning of the
startBit
.
Release v1.0.2
Bugfixes:
- Fix
Timer
to use a monotonic clock instead of system time. This ensures theTimer
will correctly measure the elapsed time when the system time changes. - Use
std::condition_variable::wait_until
instead ofwait_for
to avoid the bug whenwait_for
uses system time. - Fix extended id not working with cloud.
- Handle
SIGTERM
signal. Now when stopping the agent withsystemctl
orkill
without additional args, it should gracefully shutdown. - Fix bug in canigen.py when signal offset is greater than zero.
Improvements:
- Pass
signalIDsToCollect
toCANDecoder
by reference. This was causing unnecessary allocations/deallocations, impacting the performance on high load. - Add binary distribution of executables and container images built using GitHub actions.
- Add support for DBC files with the same signal name in different CAN messages to cloud demo script.
- Improve CERT-CPP compliance.
Release v1.0.1
v1.0.1 (Nov 3, 2022)
License Update:
- License changed from Amazon Software License 1.0 to Apache License Version 2.0
Security Updates:
- Update protcol buffer version used in customer build script to v3.21.7
Features:
- OBD module will automatic detect ECUs for both 11-bit and 29-bit. ECU address is no longer hardcoded.
- Support CAN-FD frames with up to 64 bytes
- Add an CustomDataSource for the IWave GPS module (NMEA output)
- iWave G26 TCU tutorial
- Renesas R-Car S4 setup guide
Bugfixes:
- Fix name of
persistencyUploadRetryIntervalMs
config. The dev guide wasn't including theMs
suffix and the code was mistakenly capitalizing the first letter. - Don't use SocketCAN hardware timestamp as default but software timestamp. Hardware timestamp not being a unix epoch timestamp leads to problems.
- install-socketcan.sh checks now if can-isotp is already loaded.
- The not equal operator =! in expression is now working as expected
- Fix kernel timestamps in 32-bit systems
Improvements:
- Added Mac-user-friendly commands in quick demo
- Added an extra attribute, so that users can search vehicle in the FleetWise console
- Added two extra steps for quick demo: suspending campaigns and resuming campaigns
Release v1.0.0
v1.0.0 (Sept 27, 2022)
Bugfixes:
- Fixed an OBD bug in which software requests more than six PID ranges in one message. The new revision request the extra range in a separate message.
- Fixed a bug in CANDataSource in which software didn't handle CAN message with extended ID correctly.
Improvements:
- Remove the html version of developer guide.
- Remove source code in S3 bucket. The S3 bucket will only be used to host quick demo cloud formation.
- Remove convertToPeculiarFloat function from DataCollectionProtoWriter.
- Set default checkin period to 2-min in static-config.json. The quick demo will still use 5 second as checkin period.
- Update FleetWise CLI Model to GA release version.
- Update Customer Demo to remove service-linked role creation for FleetWise Account Registration.
Release v0.1.4
Bugfixes:
- Fixed a bug in which software will continue requesting OBD-II PIDs or decoding CAN messages after all collection schemes removed.
Improvements:
- OBDOverCANModule will only request PIDs that are to be collected by Decoder Dictionary and supported by ECUs.
- OBDDataDecoder will validate the OBD PID response Length before decoding. If software detect response length mismatch with OBD Decoder Manifest, program will do 1) Log warning; 2) Discard the entire response.
- OBDDataDecoder will only decode the payload with the PIDs that previously requested.
- Improve OBD logging to log CAN ISOTP raw bytes for better debugging
Release v0.1.3
Customer Demo:
- Updated demo scripts to match with latest AWS IoT FleetWise Cloud API changes
- Fix a bug in demo script that might render scatter plot incorrectly.
Docs:
- Updated the Edge Agent Developer Guide to match with latest AWS IoT FleetWise Cloud API changes
- Updated Security Best Practices in Edge Agent Developer Guide
Bugfixes:
- Fixed a bug which previously prevented OBD from functioning at 29-bit mode.
- Fixed a bug that potentially caused a crash when two collection schemes were using the same
Signal Ids in the condition with different minimum sampling intervals
Improvements:
- Signal Ids sent over Protobuf from the cloud can now be spread across the whole 32 bit range,
not only 0-50.000 - Security improvement to pass certificate and private key by content rather than by file path
- Improvement to Google test CMake configuration
- Clang tidy coverage improvements
- Improvement to AWS SDK memory allocation with change to custom thread-safe allocator
- Re-organized code to remove cycles among CMake library targets
- Refactored Vehicle Network module to improve extensibility for other network types
- Improvement to cansim to better handle ISO-TP error.
Release v0.1.2
Features:
- No new features.
Bugfixes/Improvements:
- Unit tests added to release, including clang-format and clang-tidy tests.
- Source code now available on GitHub: https://github.com/aws/aws-iot-fleetwise-edge
- GitHub CI job added that runs subset of unit tests that do not require SocketCAN.
- Edge agent source code:
- No changes.
- Edge agent developer guide and associated scripts:
- Cloud demo script
demo.sh
:- Fixed bug that caused the Timestream query to fail.
- Script and files moved under edge source tree:
tools/cloud/
.
- Dependency installation scripts:
- AWS IoT C++ SDK updated to v1.14.1
- Support for GitHub CI caching added.
- CloudFormation template
fwdemo.yml
updated to pull source from GitHub instead of S3. - Developer guide converted to Markdown.
- Cloud demo script