TinyFrame Versions Save

A simple library for building and parsing data frames for serial interfaces (like UART / RS232)

2.3.0

6 years ago

This release adds support for custom checksums, the 1-wire type XOR8 and for sending multi-part frames.

Multi-part frames can have their payload generated on-the-fly without having it all available at once to be passed to the send functions. Those are the *_Multipart send functions.

See the updated README.MD for details.

MIGRATION

Some changes are needed to update to this version:

  • Added config key: #define TF_USE_MUTEX 1
    • set to 1 if you provide external implementation of the mutex functions.
  • All occurences of size_t were replaced with uint32_t. This includes TF_WriteImpl(). Update your TF_WriteImpl() to use uint32_t for the last argument.
  • TF_ClaimTx() now returns false if the mutex could not be claimed. This results in the Send functions returning false and a message being printed using TF_Error(), if provided

2.1.0

6 years ago

This release adds a debug logging support using a TF_Error(format, ...) macro defined in TF_Config.h. The macro is public and can be also used by higher level application logic relating to TinyFrame in error situations.

#define TF_Error(format, ...) printf("[TF] " format "\n", ##__VA_ARGS__)

Make sure to update your config file before installing this update.

If you don't want debug logging, use

#define TF_Error(format, ...)

(without anything to call)

2.0.5

6 years ago

there was a bug caused by reckless function rename

2.0.4

6 years ago

make it possible for a received message to have the maximum possible size that can fit in the rx buffer

2.0.3

6 years ago

This is how it was meant to be, but there was a regression in version 2.0 that caused the checksums to be added always

2.0.2

6 years ago

Fixes the bug where listeners were not being removed after returning TF_CLOSE.

2.0.1

6 years ago

fixed issues found when upgrading an existing project to use the 2.0.0 version.

2.0.0

6 years ago

This release changes the API to support multiple instances and get rid of all global variables.

For more details, see the PR that added re-entrancy: https://github.com/MightyPork/TinyFrame/pull/9

1.2.0

6 years ago

I wanted to use TF with FreeRTOS and run into an issue with concurrent accesses. To solve this issue, TF version 1.2 contains two callback functions to claim and release a mutex when composing/sending a frame.

For an example see the new TF_Integration.example.c file.

This release also (finally) provides a TF_VERSION constant that can be used to log the used TF version and also know what version you have installed.

Please avoid editing the library code and instead discussing required new features here in the issue tracker so they can be added. The library files should be immutable and easy to update.

1.1.0

6 years ago

This update adds support for sending very long frames.

Reception still uses a buffer, because the frame can't be handled until the checksum is verified, however transmission is now virtually unconstrained.

The TX buffer can be very small - perhaps 16 bytes - (must be enough to fit the entire header) and it'll still work fine. Caution: Make sure your LEN field can contain length of the largest payloads!

This is useful for data harvesting applications where TinyFrame in the end device sends large data (perhaps samples from ADC), but doesn't necessarily need to receive anything big. On the other side, the master (PC) can afford to allocate kilobytes of RX buffer without problems.