Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
MaJerle committed Dec 28, 2020
2 parents d9628eb + 35505f9 commit 3f030a8
Show file tree
Hide file tree
Showing 14 changed files with 134 additions and 60 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

custom: ['paypal.me/tilz0R']
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
* CRC check to handle data transmission errors
* User friendly MIT license

https://docs.majerle.eu/projects/lwpkt/en/latest/

## Contribute

Fresh contributions are always welcome. Simple instructions to proceed::
Expand Down
2 changes: 1 addition & 1 deletion dev/VisualStudio/lwpkt_opts.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
* This file is part of LwPKT - Lightweight packet protocol library.
*
* Author: Tilen MAJERLE <tilen@majerle.eu>
* Version: v1.0.1
* Version: v1.1.0
*/
#ifndef LWPKT_HDR_OPTS_H
#define LWPKT_HDR_OPTS_H
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
author = 'Tilen MAJERLE'

# The full version, including alpha/beta/rc tags
version = '1.0.1'
version = 'v1.1.0'

# Try to get branch at which this is running
# and try to determine which version to display in sphinx
Expand Down Expand Up @@ -112,7 +112,7 @@
'css/custom.css',
]
html_js_files = [
'https://kit.fontawesome.com/3102794088.js'
'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css'
]

master_doc = 'index'
Expand Down
5 changes: 4 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ Welcome to the documentation for version |version|.

LwPKT is a generic packet protocol library optimized for embedded systems.

.. image:: static/images/logo.svg
:align: center

.. rst-class:: center
.. rst-class:: index_links

:ref:`download_library` :ref:`getting_started` `Open Github <https://github.com/MaJerle/lwpkt>`_
:ref:`download_library` :ref:`getting_started` `Open Github <https://github.com/MaJerle/lwpkt>`_ `Donate <https://paypal.me/tilz0R>`_

Features
^^^^^^^^
Expand Down
2 changes: 1 addition & 1 deletion docs/static/images/logo.drawio
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<mxfile modified="2019-12-01T16:48:18.227Z" host="" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/11.2.5 Chrome/76.0.3809.139 Electron/6.0.7 Safari/537.36" etag="g-lV9veBl4p9DRM_DQmf" pages="1" version="11.2.5" type="device"><diagram id="I-N_G4gh3ujyhIfbbh0O" name="Page-1">7Ztdb+I4FIZ/DZcT+TOOL1vo7FzsaitVq53Zu0BciCbgKqQF5tevQ2ywHVoMGSgSZKQRPnFO6vM+do5PoIf70+UfZfoy+UtmoughkC17eNBDKCGJ+r82rBoDSWBjGJd51pgsw1P+SzRGqo2veSbmTr9KyqLKX1zjSM5mYlQ5trQs5cLt9iwL96Yv6Vi0DE+jtGhb/82zaqJHRcHW/k3k44m5MwT6zDQ1nbVhPkkzubC84oce7pdSVs2n6bIvijp0JizNdV/fObv5w0oxq0IueC7/q379vRp8m/74p+intH+XD75g1Lh5S4tXPWL911YrEwLlRkVbNe4Xk7wSTy/pqD6zUHIr26SaFqoF1cd5VcqfmzCpAd4/50XRl4UsVXsmZ7WPLC+VTrmcKdNcvtZd79tD0aN7E2Ulln7MFGpCTkVVrlQXfRZzDYzGDHIaactiqxvEWoyJrZkxppqV8cb7Npzqg47oAdGFdH906yHmirc/06EoHuU817EZyqqSUxUc0+GuyMf1iUr6YZ+kL7Wz6XJcz8BomM7zUZSWo7UkaVndzcbru4FIBQnfi1m2tQDaEk6Fw1Wuh/Dz+th0tc7E66O+Qs4qy94cpxOcQOAIjiDYJTjYJTg4leAoYDqdVXDQEhx2FZwM6n/XJiy+MGFhS1jUVdgEDfF6Jl+VsOTChEUtYXFXYTPGhwBcm7CX9uzFLWFJZ2HjYUyvbsbGFyYsaQlLuwo7TCihVzdj2YUJS1vCxl2F5THD6Xln7KfLmlyYrHFLVtZVVjRg8foJ622CNldc1TzmFyY4awmedBUcgPjh7utN8KaIBC5M8KQlOO8qeJ9hepvhRnC4X/Ajq4bwrFVDgtyqIUK7qoZsR3DZyWIbsCGt0a5r29v4WPFU0ShX39fUY0KM4UczDRJkDIM6BGDTWtmtR1HmajSiNMZlXhmPsW5rh0w3t+7qxspq+M7elU3pWo5EAHZqso9F9VFHHTKROcX9NgaWyHSHyMZWiiKt8jf3lcAu5fUdHmWuxralDLtzGJPNHDZOmrHr65BVxPdc4cRzxVuumui0XK1h3Ay9A58B++pQPmPKfD5hNz6b7bDNJ7kBuh9QyiMjowEL4IiA7eH5DOWVEB4xyLeHexOMI0its+y8KAdUEkJR5iBxUWY87oYyBy7KjMMbyvtRTlTkbODiFtYxs04fuQ4Tte4S0CbXAhvg88IcUD0JgxlGQL822sBM96GsqYUOsfRjXnfhf4XA8iQi7wOLFGiJtyyGQkqRopB4/CfqIXteMAPqP+GrrJcwIIAD0awvRg6eCByeG9yg1assj7h9uMwen99StK7P7fF2amIDCljhKW7sEgsgDybWz2YBim/EHr/MQuKBpXLTxMpxvQd2OLNIpRyuawyjhJ8VWhJQhAuvG3jPf4D21g2sEgH1oL0ts6dJZhFmEUYWwB2SWfOWxrgGLOLxp+3MSEiBMRBmwFHPyxnIPpg/3pkB7hJ+TCJxhTBTHkHv0a4Ahl42ekhlIfHcqeTW7OnPBSrqCqqm6ovCqsllD9k+fbcb4Vu13wgjCoURXhSMmHu5AD06ZSUYtLiOz52ykoDvJ4YvmF7Kynj4JgtwtwbA9r0heG+pvTFKAIliL69kICL2voscyyxx9m+UHnSbU8Mc8ArMvA1+LsRSU31vAT4q0vk8H/mMZ+Y1I40QZCozIBQQiig03+HSvz/BapuGFfYQYEISxOoJsdhcaqw0iRGIea/1GnmYjpIM93Z+b6A+PsL5QuDDnEV7F7Vg3NQO6dNXyIBi/w2qE69ovxMqelKoVHP706ym+/bnbfjhfw==</diagram></mxfile>
<mxfile modified="2020-12-05T00:15:55.537Z" host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.3.2 Chrome/78.0.3904.113 Electron/7.1.2 Safari/537.36" etag="57ddQ_cJDdCyanR_eFoC" version="12.3.2" type="device" pages="1"><diagram id="I-N_G4gh3ujyhIfbbh0O" name="Page-1">jZJRT8IwEMc/zR5JthUIPioiKpiYoCHxrVlva2O3W0qxw09v564bCyHhqb3fXa/t/38RW5bN2vBavqEAHaWxaCL2GKVpEi8WfmnJqSN3cwKFUYKKBrBTv9DBGcGjEnAY1VlEbVU9hhlWFWR2xLgx6MZlOerxpTUv4ALsMq4v6V4JKzu6mMUDfwZVyHBzElOm5KGYwEFyge6sK1tFbGkQbbcrmyXoVrsgS3fu6Uq2f5iByt5yIJ9+Jfharjf7z1psX+rN/cRNqMsP10f68Na9bz7oxfYUZDB4rAS0nZKIPTipLOxqnrVZ5333TNpSU/pgDX73cs09ybGyZC1r416L2Af0BDAWmqt/GxTzkwZYgjUnX0IH2JTGhYYsDbEbPEvmZIQ88yv4yGlMir71oKTfkJghHEz7z51NPlv9AQ==</diagram></mxfile>
2 changes: 1 addition & 1 deletion docs/static/images/logo.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 19 additions & 2 deletions docs/user-manual/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ Packet structure consists of several fields, where some are optional and some ar
Default packet structure

* ``START``: Byte with fixed value to represent start of packet
* ``FROM``: Byte from where this packet is coming from. Optional field, can be disabled with :c:macro:`LWPKT_CFG_USE_ADDR`
* ``TO``: Byte to where this packet is targeting. Optional field, can be disabled with :c:macro:`LWPKT_CFG_USE_ADDR`
* ``FROM``: Byte(s) from where this packet is coming from. Optional field, can be disabled with :c:macro:`LWPKT_CFG_USE_ADDR`
* ``TO``: Byte(s) to where this packet is targeting. Optional field, can be disabled with :c:macro:`LWPKT_CFG_USE_ADDR`
* ``CMD``: Byte with optional command field to better align with multiple packets. Optional field, can be disabled with :c:macro:`LWPKT_CFG_USE_CMD`
* ``LEN``: Length of *data* part field. This is variable multi-byte length to support data length ``>= 256`` bytes. Always present
* ``DATA``: Optional data field. Number of bytes is as in ``LEN`` field
Expand All @@ -51,6 +51,23 @@ It is up to application to implement how buffers are actually later written for
LwPKT is platform independant and requires final application to actually take care of data being read/written from/to ringbuffers and
transferred further over the network

Variable data length
********************

Some fields implement variable data length feature, to optimize data transfer length.
Currently supported fields are:

* ``DATA`` field is always enabled
* ``FROM`` and ``TO`` fields when :c:macro:`LWPKT_CFG_ADDR_EXTENDED` feature is enabled

Variable data length is a feature that uses minimum number of bytes to transfer data.
It uses ``7 LSB bits`` per byte for actual data, and ``MSB`` bit to indicate if there are more bytes coming after.
For example, values between ``0x00 - 0x7F`` are codified within single byte, while values between ``0x80 - 0x3F`` require ``2`` bytes for transfer.
To transfer ``32-bit`` variable, minimum ``1-byte`` and maximum ``5-bytes`` are used.

.. tip ::
Data codification is always LSB Byte first.
Event management
****************

Expand Down
8 changes: 4 additions & 4 deletions examples/example_lwpkt.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,13 @@ example_lwpkt(void) {

/* Print debug messages for packet */
#if LWPKT_CFG_USE_ADDR
printf("Packet from: 0x%02X\r\n", (unsigned)lwpkt_get_from_addr(&pkt));
printf("Packet to: 0x%02X\r\n", (unsigned)lwpkt_get_to_addr(&pkt));
printf("Packet from: 0x%08X\r\n", (unsigned)lwpkt_get_from_addr(&pkt));
printf("Packet to: 0x%08X\r\n", (unsigned)lwpkt_get_to_addr(&pkt));
#endif /* LWPKT_CFG_USE_ADDR */
#if LWPKT_CFG_USE_CMD
printf("Packet cmd: 0x%02X\r\n", (unsigned)lwpkt_get_cmd(&pkt));
#endif /* LWPKT_CFG_USE_CMD */
printf("Packet data length: 0x%02X\r\n", (unsigned)lwpkt_get_data_len(&pkt));
printf("Packet data length: 0x%08X\r\n", (unsigned)lwpkt_get_data_len(&pkt));
if ((len = lwpkt_get_data_len(&pkt)) > 0) {
uint8_t* d = lwpkt_get_data(&pkt);
printf("Packet data: ");
Expand All @@ -100,7 +100,7 @@ example_lwpkt(void) {
} else if (lwpkt_is_broadcast(&pkt)) {
printf("Packet is broadcast to all devices\r\n");
} else {
printf("Packet is for device ID: 0x%02X\r\n", (unsigned)lwpkt_get_to_addr(&pkt));
printf("Packet is for device ID: 0x%08X\r\n", (unsigned)lwpkt_get_to_addr(&pkt));
}
#endif /* LWPKT_CFG_USE_ADDR */
} else if (res == lwpktINPROG) {
Expand Down
10 changes: 4 additions & 6 deletions examples/example_lwpkt_evt.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,20 @@ static void
my_lwpkt_evt_fn(lwpkt_t* pkt, lwpkt_evt_type_t type) {
switch (type) {
case LWPKT_EVT_PKT: {
size_t len;

printf("Valid packet received..\r\n");

/* Packet is valid */
printf("Packet is valid!\r\n");

/* Print debug messages for packet */
#if LWPKT_CFG_USE_ADDR
printf("Packet from: 0x%02X\r\n", (unsigned)lwpkt_get_from_addr(pkt));
printf("Packet to: 0x%02X\r\n", (unsigned)lwpkt_get_to_addr(pkt));
printf("Packet from: 0x%08X\r\n", (unsigned)lwpkt_get_from_addr(pkt));
printf("Packet to: 0x%08X\r\n", (unsigned)lwpkt_get_to_addr(pkt));
#endif /* LWPKT_CFG_USE_ADDR */
#if LWPKT_CFG_USE_CMD
printf("Packet cmd: 0x%02X\r\n", (unsigned)lwpkt_get_cmd(pkt));
printf("Packet cmd: 0x%08X\r\n", (unsigned)lwpkt_get_cmd(pkt));
#endif /* LWPKT_CFG_USE_CMD */
printf("Packet data length: 0x%02X\r\n", (unsigned)lwpkt_get_data_len(pkt));
printf("Packet data length: 0x%08X\r\n", (unsigned)lwpkt_get_data_len(pkt));

/* Do other thins... */
break;
Expand Down

0 comments on commit 3f030a8

Please sign in to comment.