signal_parser.c and signal_parser.h.
The signal parser interface has suffered major changes. The decode functions
now take the fcp_signal_t
struct as a parameter instead of individual start,
length, scale and offset parameters.
typedef struct _signal {
uint16_t start;
uint16_t length;
double scale;
double offset;
fcp_type_t type;
fcp_endianness_t endianness;
} fcp_signal_t;
The fcp_signal_t
now includes the signal type and endianness. Check the
fcp_type_t
and fcp_endianness_t
enums for possible values.
Example usage:
uint64_t value = fcp_decode_signal_uint64_t(msg,
(fcp_signal_t) {
.start = start,
.length = length,
.scale = scale,
.offset = offset,
.type= type
.endianness = endianness
}
);
The obvious advantage of this change is the support for big endian signals.
The fcp c_gen
command was updated to make use of the new signal_parser
functions.
Those that make use of c_gen
should not notice any changes except for a
substantial increase in program size.
If this increase in program size is troublesome remember that the compilation of devices can be stopped by defining: NO_DCU, NO_MASTER, NO_IIB, ...
This release was a bit rushed due to the need to support big endian values in Xsense. If you encounter any problems with decoding and encoding fcp signals please notify me via discord.
- Show release notes at gui startup
- Notify of new Fcp versions
- GUI Undo/Redo
- Recent file list is the same for any Fcp instance
- Fixed unexpected slowness when using save on the GUI
- Add fix command that fixes your json types.
- Wrong conversion of floating point scaling/offset on decompile
- Limit number of errors in GUI.
- Remove dump and print commands that were unused.
- c-gen --force flag to ignore validate errors
- gui wouldn't launch
- fix cmd replaces mux_count 0 with mux_count 1
- Add fcp appdirs and sqlalchemy dependency
- Unify requirements.txt and install_requires
- implement mux for fcp_lib
- Nag users about new version of FCP
- Show FCP release notes
- FcpLib: FcpCom with cmd, set and get
- Property based testing for signals
- Gui save not working
- Gui save doesn't pop a select file menu
- Remove type hint
- Test against python3.7
- Command, Config, Enum add button not working
- Fixed order of recent files
- Regression in message decoding mux support
- Regression in message decoding mux support
- Regression in message decoding mux support
- New docs signal page
- Check that release notes exist:
- add a pre-commit hook (hooks/check_release_notes).
- call the script from .gitlab-ci.yaml,
- Add better comparison of fcp version to the GUI:
- Handle the case of the local version being higher than the upstream one.
- Support for encoding socketcan messages.
- Improve decoding of signed signals.
- Rename fcp_v2 to idl
This release contains some bugfixes, small improvements and introduces fcp_v2 the new description language that replaces the fcp json specification format.
For now fcp commands support both the json specification format and fcp_v2.
Expect more information regarding fcp_v2 in future releases.
- Non multiplexed signals belonging to messages with other signals that are multiplexed are no longer interpreted as multiplexed signals in the decoding process.
Fcp has moved on to the next stage of its life. We've started development on the affectionately named "fcp v2".
There's a couple main goals for the new fcp version:
- Develop an IDL (interface description language) to replace the old json configuration.
- Allow fcp to generate code that works for protocols other than CAN bus.
- Extend the information that fcp is capable of encoding.
Documentation can be found in: https://fcp-core.readthedocs.io/en/latest/.
- CI
- Create pyproject.toml
- Remove all related to fcp_v1
- Add type annotations
- Remove fpi
- Allow type composition
- Update README
- Remove the result type
- Implement code generator for cpp
- DBC generator
- Support types smaller than 1 byte
- Rethink
extends
syntax - Add description of files and directory structure
- Readd default schema validation rules
- Add rpc mechanism
- Add arrays to IDL
- Support multiple buses in fcp
- Create treesitter grammar for syntax highlighting in editors
- Add API docs as python docstrings
- Properly support comments
- Implement cpp code gen
- Create CAN C generator
- Add support for arrays in fcp cpp
- Implement to string convertions for cpp code
- Support for enums in CAN C gen
- Support for period/frequency
- Test builtin types in cpp gen
- Add support for strings as a signal datatype
- Implement python decoding library
- Add support for dynamic arrays as signal datatypes
- Configure github CI @joajfreitas
- Prepare fcp development. Including adding a pyproject.toml @joajfreitas
- Remove legacy setup.py @joajfreitas
- Change license to MIT @joajfreitas
- Point copyright information to the AUTHORS file @joajfreitas
- Parser tests @joajfreitas
- Type annotation + Type checking @ItsNotSoftware
- Update readme @joajfreitas
- Serialization tests @joajfreitas
- config for pre commit hooks @joajfreitas
- More precommit @joajfreitas
- Type composition @joajfreitas
- Deleted fpi @ItsNotSoftware
- Dbc support @joajfreitas
- Struct extension @joajfreitas
- Remove semicolons @joajfreitas
- Prototype for sphinx docs @joajfreitas
- Redo imports @joajfreitas
- Test fcp parsing errors @joajfreitas
- Add Maybe type for error handling @joajfreitas
- Upgrade result type @joajfreitas
- Support python 3.8 @joajfreitas
- Test for fcp_dbc_generator @joajfreitas
- Fcp dbc readme @joajfreitas
- Generate dbc with composed types @joajfreitas
- Add test for fcp nop @joajfreitas
- Support for small types @joajfreitas
- Check that code examples in markdown files are correct @joajfreitas
- Add packed encoder @joajfreitas
- Fix v2_parser @ItsNotSoftware
- Change the extension syntax @joajfreitas
- Document directory structure @joajfreitas
- Add test for example in fcp dbc @joajfreitas
- Fix/dbc generator @joajfreitas
- Poc for rpc service @joajfreitas
- Rename Signal to StructField @joajfreitas
- Support for arrays @joajfreitas
- Implement array support in fcp dbc @joajfreitas
- Throw exception if message is too big @joajfreitas
- Add units to tests @joajfreitas
- Support multiple buses in one config @joajfreitas
- Docstrings @joajfreitas
- Fcp cpp gen @joajfreitas
- CAN C generator @ItsNotSoftware
- Properly support comments @joajfreitas
- Supported features docs @joajfreitas
- Cpp arrays @joajfreitas
- First implementation of period (needs generated code checks) @c4stelo
- Add missing builtin types @joajfreitas
- Implement support for string builtin types @joajfreitas
- Implement support for dynamic array builtin types @joajfreitas
- Python decoding lib @joajfreitas
- Fcp schema schema @joajfreitas
- Setup release @joajfreitas
- fixed v2 tests @ItsNotSoftware
- Remove all related to v1 @ItsNotSoftware
- Move changelog to single file @joajfreitas
- Cleanup @joajfreitas
- Cleanup @joajfreitas
- Enable colors in makefile @joajfreitas
- Cleanup @joajfreitas
- Fix example syntax @joajfreitas
- Better printing for fcp @joajfreitas
- Fix README example code @joajfreitas