Skip to content

Commit

Permalink
release v4.2.0 (PR #94)
Browse files Browse the repository at this point in the history
release v4.2.0
  • Loading branch information
michael-hillmann authored Apr 1, 2022
2 parents e6b17ef + 588b4c8 commit f346870
Show file tree
Hide file tree
Showing 390 changed files with 7,853 additions and 13,848 deletions.
64 changes: 64 additions & 0 deletions .github/workflows/website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Website

# trigger workflow when creating a release and during this work pushing
# a tag of with the value 'vx.y.z' (x,y,z are numbers) to the git repo
on:
push:
tags:
- 'v*'

env:
REQUIREMENTS: website/requirements.txt
MKDOC: website/mkdocs.yml
WEBSITE: website/site

jobs:
deploy:
name: Deploy Website
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Extract Version Tag
id: extract
run: echo ::set-output name=version::${GITHUB_REF#refs/*/v}

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.9'

- name: Upgrade pip
run: |
# install pip=>20.1 to use "pip cache dir"
python3 -m pip install --upgrade pip
- name: Get pip cache dir
id: pip-cache
run: echo "::set-output name=dir::$(pip cache dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/${REQUIREMENTS}') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: python3 -m pip install -r ./${REQUIREMENTS}

- name: Build Website
run: |
mike deploy --config-file ./${MKDOCS} --push --update-aliases ${{ steps.extract.outputs.version }} latest
mike set-default --config-file ./${MKDOCS} --push latest
- name: Copy Website to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./${WEBSITE}
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
tag_name: ${{ steps.prepare_tag.outputs.deploy_tag_name }}
full_commit_message: 'Deploy Website ${{ steps.extract.outputs.version }}'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@ prj_canopenstack*
/.history
/build
/.vscode
/website/site/
29 changes: 25 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,33 @@ and starting with version 4.1.0 this project adheres to [Semantic Versioning](ht

## [unreleased]

- nothing
none

## [4.2.0] - 2022-04-01

### Added

- Add callback `CONmtResetRequest()` for handling specific application and/or communication reset features
- Add feature: SYNC producer [@dozack](https://github.com/dozack)
- Add feature: SDO client (limited to expedited transfers) [@dozack](https://github.com/dozack)

### Changed

- Change static website generator to [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)

### Fixed

- Fix navigation link in sidebar to quickstart example
- Correct restarting of block transfer after aborting a running transfer by a client restart
- Correct abort message when writing to 1014h:00h while active or with value out of range
- Correct abort message when writing to 1003h:00h with value out of range
- Fix data copy loops in NVM simulation read and write functions

## [4.1.8] - 2021-10-04

### Added

- Add the option to exclude LSS and/or parameters [Domen2242/configurable_features](https://github.com/Domen2242)
- Add the option to exclude LSS and/or parameters [@Domen2242](https://github.com/Domen2242)
- Detailed description of API function `COObjTypeUserSDOAbort()`
- Example article explaining the usage with RTOS and baremetal
- Example article explaining the firmware upload with user domains
Expand Down Expand Up @@ -60,7 +80,7 @@ and starting with version 4.1.0 this project adheres to [Semantic Versioning](ht

- Explain how to setup EMCY in quickstart example (even if not used in this application).
- Fix NMT reset when EMCY is not used (no EMCY code table).
- Fix broken RPDO communication setup [cjardin112/master](https://github.com/cjardin112).
- Fix broken RPDO communication setup [@cjardin112](https://github.com/cjardin112).

## [4.1.4] - 2020-12-15

Expand Down Expand Up @@ -154,7 +174,8 @@ and starting with version 4.1.0 this project adheres to [Semantic Versioning](ht
- First Open Source Release.


[unreleased]: https://github.com/embedded-office/canopen-stack/compare/v4.1.8...HEAD
[unreleased]: https://github.com/embedded-office/canopen-stack/compare/v4.2.0...HEAD
[4.2.0]: https://github.com/embedded-office/canopen-stack/compare/v4.1.8...v4.2.0
[4.1.8]: https://github.com/embedded-office/canopen-stack/compare/v4.1.7...v4.1.8
[4.1.7]: https://github.com/embedded-office/canopen-stack/compare/v4.1.6...v4.1.7
[4.1.6]: https://github.com/embedded-office/canopen-stack/compare/v4.1.5...v4.1.6
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.15)
project (CanopenStack VERSION 4.1.8)
project (CanopenStack VERSION 4.2.0)

# Make CANopen library
add_subdirectory(canopen)
Expand Down
17 changes: 5 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ The source code is compliant to the C99 standard and you must cross-compile the
- Expedited transfers
- Segmented transfers
- Block transfers
- Unlimited number of SDO clients which supports:
- Expedited transfers
- Unlimited number of TPDO and RPDOs which supports:
- Synchronized operation
- Asynchronous operation
Expand All @@ -31,6 +33,7 @@ The source code is compliant to the C99 standard and you must cross-compile the
- Emergency producer which supports:
- Manufacturer specific extensions
- Unlimited error history
- SYNC producer
- Heartbeat producer
- Unlimited Emergency consumers
- Unlimited number of Heartbeat consumers
Expand All @@ -49,13 +52,13 @@ The source code is compliant to the C99 standard and you must cross-compile the

Get the project repository and add to your include search path:
- `canopen/config`
- `canopen/include`
- `canopen/include`

and to your source path:
- `canopen/source`

Select the driver templates for CAN, NVM and Timer you want as starting point for your hardware interface and add them to your project:
- `driver/include`
- `driver/include`
- `driver/source`

*Note: in future versions, we want to remove the pre-compiler configuration file in `canopen/config`. The corresponding configuration will be possible in a more flexible way. The main goal is to get a CANopen library for a specific microcontroller, with no application specific configuration included and therefore usable in all applications.*
Expand Down Expand Up @@ -162,16 +165,6 @@ Some years later, now in 2020, we think it is time for a new way of software dev
To avoid confusion, it is the best to continue with the release version numbering. The first stable release of the open-source variant of the CANopen Stack is: **V4.0.0**
## Roadmap
*Ideas for further development:*
- remove all pre-compiler configuration defines to allow a single library for multiple projects with different needs
- hardware independent collection of examples for demonstration purpose (exchange driver and re-compile should be enought for usage on real target hardware)
- improve documentation of single test cases within the testsuite
- add the SDO client (rarely used, but nice to have)
Feel free to add issues with further ideas or needs!
# License
The Apache 2.0 license is suitable for commercial usage, so we think this is the best for this free component. If you have problems or concerns with this license, just contact us at Embedded Ofice. We will help you to get the legal approvals within your company.
Expand Down
4 changes: 3 additions & 1 deletion canopen/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ target_include_directories(Canopen
target_sources(Canopen
PRIVATE
source/co_core.c
source/co_csdo.c
source/co_dict.c
source/co_emcy.c
source/co_if_can.c
Expand All @@ -31,7 +32,8 @@ target_sources(Canopen
source/co_obj.c
source/co_para.c
source/co_pdo.c
source/co_sdo_srv.c
source/co_ssdo.c
source/co_csdo.c
source/co_sync.c
source/co_tmr.c
source/co_ver.c
Expand Down
24 changes: 21 additions & 3 deletions canopen/config/co_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,17 @@
* This configuration define specifies how many SDO servers the library
* will support.
*/
#ifndef CO_SDOS_N
#define CO_SDOS_N 1
#ifndef CO_SSDO_N
#define CO_SSDO_N 1
#endif

/*! \brief DEFAULT SDO CLIENT
*
* This configuration define specifies how many SDO clients the library
* will support.
*/
#ifndef CO_CSDO_N
#define CO_CSDO_N 1
#endif

/*! \brief DEFAULT EMERGENCY CODES
Expand Down Expand Up @@ -55,7 +64,7 @@

/*! \brief DEFAULT ENABLE LSS
*
* This configuration define specifies whether the LSS functionality will
* This configuration define specifies whether the LSS functionality will
* be supported by the library.
*/
#ifndef USE_LSS
Expand All @@ -71,4 +80,13 @@
#define USE_PARAMS 1
#endif

/*! \brief DEFAULT ENABLE SDO CLIENT
*
* This configuration define specifies whether SDO client will be supported
* by the library.
*/
#ifndef USE_CSDO
#define USE_CSDO 1
#endif

#endif /* #ifndef CO_CFG_H_ */
9 changes: 7 additions & 2 deletions canopen/include/co_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ extern "C" {
#include "co_emcy.h"
#include "co_nmt.h"
#include "co_tmr.h"
#include "co_sdo_srv.h"
#include "co_sdo.h"
#include "co_ssdo.h"
#include "co_csdo.h"
#include "co_pdo.h"
#include "co_sync.h"
#if USE_LSS
Expand All @@ -60,8 +62,11 @@ typedef struct CO_NODE_T {
struct CO_EMCY_T Emcy; /*!< Node error status */
struct CO_NMT_T Nmt; /*!< Network management */
struct CO_TMR_T Tmr; /*!< Timer manager */
struct CO_SDO_T Sdo[CO_SDOS_N]; /*!< SDO Server Array */
struct CO_SDO_T Sdo[CO_SSDO_N]; /*!< SDO Server Array */
uint8_t *SdoBuf; /*!< SDO Transfer Buffer */
#if USE_CSDO
struct CO_CSDO_T CSdo[CO_CSDO_N]; /*!< SDO client array */
#endif
struct CO_RPDO_T RPdo[CO_RPDO_N]; /*!< RPDO Array */
struct CO_TPDO_T TPdo[CO_TPDO_N]; /*!< TPDO Array */
struct CO_TPDO_LINK_T TMap[CO_TPDO_N * 8]; /*!< TPDO mapping links */
Expand Down
Loading

0 comments on commit f346870

Please sign in to comment.