Skip to content

Releases: MightyPork/TinyFrame

Custom checksums, multi-part frames

26 Jan 16:31
74d6451
Compare
Choose a tag to compare

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

Added debug logging support

12 Jan 09:14
b74bda7
Compare
Choose a tag to compare

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)

patch for use without SOF byte

27 Dec 16:16
88d6a5c
Compare
Choose a tag to compare

there was a bug caused by reckless function rename

small fix

23 Dec 22:12
Compare
Choose a tag to compare

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

Stop empty body and checksum being appended if len is 0

23 Dec 15:34
Compare
Choose a tag to compare

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

Fix listeners removal bug

23 Dec 08:59
Compare
Choose a tag to compare

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

Bugfix patch

14 Dec 10:41
ce06abf
Compare
Choose a tag to compare

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

Support for multiple instances

13 Dec 23:30
db0ae30
Compare
Choose a tag to compare

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: #9

Better RTOS support with mutex callbacks

12 Dec 19:26
aadbb0f
Compare
Choose a tag to compare

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.

Support for multi-part frame sending

21 Nov 21:24
a966345
Compare
Choose a tag to compare

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.