All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
7.0.0 (2024-10-24)
- sesame stack which does not execute in interrupt context (#514)
- Add 256bit ecdsa key support for upgrade pack builder (#657) (a72b4d4)
- Add custom clang-format file support (#668) (3653875)
- Add NewConnectionStrategy to SingleConnectionListener (#747) (66e4f4a)
- Add NotifyingSharedOptional::OnAllocatable overload (#667) (cb37f67)
- Add osal/threadx/EventDispatcherThreadX (#637) (8c66ddd)
- Add selection of TCP echo port to echo_console (#748) (3d2622f)
- Added EcDsa256 bit support for sign and verify (#651) (bc39360)
- Added infra::MockFunction helper function for testing callbacks via infra::Function (#658) (49810ee)
- Crc with automatic table generation (#636) (23ac162)
- Enable SHA384 and SHA512 on mbedtls (#745) (2c0351e)
- Extend gpio interrupt interface to enable immediate interrupt handlers (#721) (95ddf85)
- Gap proto extension before sesame (#688) (d5efa72)
- Generate string literals (#699) (d272b1f)
- HttpClientBasic will now reset the contentError flag before a new connection is attempted (#598) (c0e6755)
- Implement persisted mbed tls session (#602) (53d45ce)
- Make I2cAddress constexpr (#740) (ca31705)
- Protobuf: add support for optional keyword (#661) (82032aa)
- Protobuf: add support for optional keyword (#665) (b33ed06)
- Sesame stack which does not execute in interrupt context (#514) (4dc5736)
- Echo: only ContinueReceiveMessage() when readerPtr != nullptr (#701) (81c87c4)
- echo: Fix generation of tracer class for empty services (#671) (751fefd)
- echo: Support serializing nested messages (#670) (63c55e0)
- Fix move construct and move assign for Variant (#749) (ed39658)
- Pad 0xff when add hex and elf to upgrade pack (#646) (5c5d318)
- Services.echo_console: parsing tokens of nested messages and arrays, formatting of messages, and properly close upon losing connection (#712) (4a69845)
- Tcp packet fragmentation (#700) (c419e54)
- Timer limited repeat (#659) (4f2a49e)
- Trace outgoing echo calls (#710) (279bb62)
- UartUnix receiveData callback being called after destruction (#677) (65f164b)
6.1.0 (2024-05-01)
- Add connection factory with name resolver mbed tls (#536) (af200d2)
- Add FlashHeterogenous (#549) (a0deadb)
- Add Segger RTT tracing output option (#572) (16529d7)
- Changed compile definitions to be compatible with the gnu assembler (#554) (5a5e5dc)
- Disabled documentation warning when compiling with AppleClang (#618) (5fd230a)
- Services/network/HttpClientBasic is now able to process more than 1 request (#576) (0df2625)
- Avoid overflow when scheduling TimerSingleShot (#612) (ea4683c)
- Ble advertisement parser erroneous data handling (#600) (f6d6b5e)
- BufferingStreamReader OOB access and Echo segments calculated correctly (#569) (b1c1d12)
- ConnectionMbedTls no longer calls DataReceived() with 0 bytes (#585) (cd74d66)
- Duplicate header guard HAL_UART_HOST_HPP (#558) (a8b1e63)
- Heap memory leak on SerializerFactory::OnHeap (#561) (0ed606b)
- Networking on linux (#594) (972ff81)
- Repeated proto message incorrect maxMessageSize calculation (#617) (2d28a51)
- Services/network/ConnectionMbedTls: Hostname() may not be invoked after ConnectionEstablished() (#609) (fcc469a)
- Services/network/WebSocketClientConnectionObserver: Don't close websocket connection after 1 minute (#578) (d2e0c05)
- Timer jumped shall trigger next trigger time update (9bbfb53)
- Timer jumped will trigger next trigger time update (#590) (9bbfb53)
6.0.0 (2024-01-24)
- refactor adc to support multiple samples (#530)
- Add ExecuteUntil to event dispatchers, add EventDispatcherThreadAware (#526) (d05d1f3)
- Add targets in order upgrade pack (#488) (e528794)
- Added generic gatt dis characteristic uuid (#457) (be6fdde)
- Added hal/generic/UartGeneric and hal/generic/SynchronousUartGeneric (#535) (799e0ee)
- Changed EMIL_ENABLE_GLOBAL_TRACING define to EMIL_ENABLE_TRACING and EMIL_DISABLE_TRACING (#521) (2d4eb48)
- Forward tags to scenario request handler (#483) (a66f711)
- Made EventDispatcher and EventDispatcherWithWeakptr exception safe when executing an action (#525) (46a118c)
- Optional tracing (#489) (0c594d9)
- Refactor adc to support multiple samples (#530) (419f636)
- Handle echo message split over multiple streams (#481) (37d7878)
- HttpClientBasic reporting error for reestablished connections (#473) (0619299)
- Incorrect handling of float numbers in json (#478) (c8ee456)
- Infra/util/Endian: fix comparison against C++ version (#486) (4fe74e5)
- Null json value (#470) (e72d48f)
- Remove \r from end of line of certificates (#510) (7f581d8)
- Remove virtual destructors reducing binary size (#502) (fc69a3c)
- ServiceForwarder with LimitedStreamReader ends up in infinite loop (#524) (9e7f949)
5.0.1 (2023-11-15)
5.0.0 (2023-11-09)
- Add protobuf/echo/ProtoMessageBuilder (#416) (f5260dd)
- Add ServiceProxyResponseQueue (#338) (88cb197)
- Add streaming of little endian mac addresses (#336) (e3d7fd8)
- Added SerialCommunicationLoopback (#440) (2c87dfb)
- Ble interface improvements (#300) (88a4689)
- Generic pairing/bonding classes updated (#330) (dbda405)
- Removed Dac.hpp (#439) (4b52156)
- Support payloads bigger than the MaxSendStreamSize (#331) (c411f66)
- Support streaming echo messages (#435) (07756bb)
- Add acd sources to lwip (#400) (a4f68ef)
- Added workaround mbedtls and clang-cl incomatibility (#441) (063b595)
- Cpp:S6232 well-defined type-punning method should be used instead of a union-based one (d809c17)
- Destruction of HttpClientJson while resetting the reader resulted in memory corruption (#404) (ed8a8a0)
- Detaching HttpClient while in HeaderAvailable resulted in a crash (#406) (a905a30)
- Enable service scoping of method invocations in services.echo_console (#325) (7090a40)
- UpgradePackBuilderFacade setting mbedtls global memory pool on stack (#324) (ec567d5)
- UpgradePackBuilderFacade setting mbedtls global memory pool on stack, causing a crash when combined with ConnectionMbedTls (ec567d5)
4.0.0 (2023-06-02)
- security for MessageCommunication (#294)
- Add documentation (#223) (d710807)
- Merge upstream changes (#279) (9856f23)
- Security for MessageCommunication (#294) (f6c3f56)
- Correct order of destruction in EchoForwarderToSerial. (#291) (3267831)
- CucumberWireProtocolFormatter; max string value size does not fit into stepMatchArgumentsBuffer. (#311) (5504202)
- Ensure forwarding constructors have constraints (#290) (5015938)
- GattClient notification (#284) (15ff387)
- Line termination mismatch in hex files (#307) (47482c3)
- Remove superfluous > from cmake/emil_xsltproc.cmake (#276) (be139b2)
- Usable memory loss in HttpClientBasic::Path (#304) (d5d4abf)
3.2.0 (2023-04-21)
- Add websocket client example (#235) (d4aa174)
- Downgrade mbedtls to 3.2.1 from 3.3.0 (#237) (bdec832)
- Workaround OutputStream optimization issue with Visual Studio 2019 (#258) (ea3de1e)
- Decouple host and embedded builds (#225) (d443b16)
- Protobuf/echo/EchoInstantiation: fix compilation errors (#267) (9b53dc1)
3.1.0 (2023-03-23)
- echo_console: Add support for ECHO over websockets over http (#230) (b814f0e)
- osal: Add osal (#82) (3f5c568)
3.0.0 (2023-03-08)
- add upgrade.pack_builder_instantations (#190)
- Add check for availability of __has_cpp_attribute (#218) (98b5c8d), closes #134
- Add missing overloads to JsonObjectFormatter (#212) (c4047c3)
- external/protoc: Download protoc for correct host architecture (#214) (6ed6bd1)
- hal/windows: Correct header sequence for UartPortFinder (#209) (d102e2b)
2.2.1 (2023-01-25)
2.2.0 (2023-01-24)
- Add cmake/emil_folderize.cmake (#165) (b3705c9)
- Allow external lwip (#164) (05ab97a)
- Apply clang-format to all files (#171) (61455f9)
- Update mbedtls from 3.2.1 to 3.3.0 (#183) (e51d7db)
- .vscode/tasks.json: Call correct clangformat target (#178) (a3427b3)
- protobuf: More granular control over excluded warnings (354e15e)
- Release asset upload (#150) (76b5fd1)
- Use EMIL_MAYBE_UNUSED (3d9834d)
- Use EMIL_MAYBE_UNUSED in version file generation (#177) (3d9834d)
2.1.0 (2022-12-21)
- Add clusterfuzzlite action (#113) (7be93ab)
- Add debug support to devcontainer (ab92693)
- Add fuzz testing (#109) (23061b9)
- Add openssf best practices badge (#112) (41528bd)
- Add release-please action (#147) (45fa1e9)
- Add rpc example (#141) (0e0d709)
- Enable installer package generation (#138) (169dd81)
- Export mutation testing result to Sonar (#105) (e7f22cd)
- Fix fuzzing builds (#125) (4e34bc3)
- Fix sonar findings (#107) (b2d3935)
- Fix Sonar findings (#129) (455c787)
- Generalize examples (#131) (dfeb251)
- Hal unix (#136) (57817da)
- Increase Gatt test coverage (77d297e)
- infra/util/Endian.hpp: Add constexpr, and endianness detection (1120b48)
- Port echo console (#135) (c175bae)
- Update devcontainer (7ed3b33)
- Update mbedtls to v3.2.1 (4739af3)
- Update protobuf to 3.21.9.0 (v21.9) (#106) (76f8e77)
- Convert services/ble/test CMakeLists from ccola to plain CMake (8c22f65)
- devcontainer: Select correct base image version (#114) (041d64b)
- Flag false positive of cpp:S836 (01b2599)
- Include(CTest) should be called from top-level (5163094)
- Increase coverage (587b940)
- protoc: Propagate link libraries in proto deps (d609e66)
- Sonar cpp:S128 (d7b4776)
- Sonar cpp:S3519 (58bcfbd)
- Sonar cpp:S5018 (291443f)
- Sonar cpp:S912 (3063057)
- Sonar cpp:S3491 (bfc763e)
- TestJson: Warning on signed overflow (45d7ef2)
- hal/interfaces/AnalogToDigitalPin; increased ADC results to int32_t
- services/network/Multicast.hpp; added DatagramExchange to interface, on BSD/WinSock implementations we need the actual socket to join a multicast group
- services/network/ConnectionMbedTls; On CloseAndDestroy, empty buffers before forwarding close request
- services/util/Terminal; fixed crash by using services::Tracer to write data to the console, synchronously
- .travis-ci.yml; Travis-CI build pipeline
- .gitattributes; Ignore external vendor packages in language analysis on GitHub
- https_client example
- services::HttpClientJson; base class to easily interact with REST services exposing large payloads. Uses infra::JsonStreamingObjectParser
- services/network/ExclusiveConnection; only allow one active connection at a time
- protobuf/protoc_echo_plugin: Support enums
- hal::UartWindows; hal::SerialCommunication implementation for Windows serial port
- services::SerialServer; TCP/IP <--> UART bridge, see serial_net example
- services::WebSocketClientConnectionObserver; WebSocket client support
- services::WebSocketServerConnectionObserver; WebSocket server support
- Support for Linux host builds with GCC
- Initial open source version of amp-embedded-infra-lib