FLYNC ReferenceΒΆ
The source is structured in 3 main parts:
Core - Additional functionalities for the model, such as utils, field annotations and validators.
Model - The heart of FLYNC is a pydantic model. Find a comprehensive reference of the model in this section.
SDK - Pythonic API for developers to interact with the project modules and integrating FLYNC capabilities into applications.
Writing a FLYNC configΒΆ
Authoring configurations with FLYNC is fully YAML-based using the extension .flync.yaml.
The built-in loaders and validators expect a specific repository structure that weβll explore in this next section.
Repository Structure for FLYNC configsΒΆ
The root of a FLYNC config repository holds four main parts: System Metadata, Topology, ECUs, and General.
Guidelines
For better usability of any FLYNC configuration, the πdirectories, and πfiles are expected to follow a certain structure.
In this section any directory or file with βis mandatory.
Certain files should adhere to naming conventions, so make sure to follow the checklists below. β
System MetadataΒΆ
The system metadata file defines the system context for the configuration, such as platform, system variant, and config release.
πβ system_metadata.flync.yaml
Important
β The file name system_metadata must be respected.
β The file is placed in the root of the config repo.
See also
TopologyΒΆ
This directory describes the interconnections between nodes of the system.
π topology
β
βββ π multicast_paths.flync.yaml
βββ π(β) system_topology.flync.yaml
Important
β The file names system_topology and multicast_paths must be respected.
β The files are placed in a directory named topology .
β A system_topology must be defined, if there is more than one ECU in the system.
See also
ECUsΒΆ
The ecus directory contains several sub-directories describing all the ECUs in the system and their configuration. This includes controllers of the ECU, Port configuration, switches, and sockets. All components inside the ECU are then described in an internal_topology where the structure inside an ECU is described.
πβ ecus
β
βββ π ecu_1_name
β |
β βββ πβ ports.flync.yaml
β βββ πβ topology.flync.yaml
β βββ πβ ecu_metadata.flync.yaml
β |
β βββ πβ controllers
β β βββ πβ ecu_1_controller_1.flync.yaml
β β βββ πβ ecu_1_controller_n.flync.yaml
β β βββ π ...
β |
β βββ π sockets
β β βββ π socket_someip.flync.yaml
β β βββ π ...
β |
β βββ π switches
β βββ π switch1.flync.yaml
β βββ π switch2.flync.yaml
β
βββ π ecu_n_name
βββ ...
Important
β The directory names ecus/, controllers/, sockets/, and switches/ must be respected.
β The file names ports, topology, and ecu_metadata must be respected.
All others are suggested.
See also
Explore the whole ECU config further:
GeneralΒΆ
This directory contains several sub-directories and files that describe assets and configurations for the whole system, such as TCP profiles or SOME/IP services. This is a non-mandatory directory for the FLYNC configuration.
π general
β
βββ π tcp_profiles.flync.yaml
β
βββ π someip
|
βββ π services
β βββ π someip_service.flync.yaml
β βββ π ...
|
βββ π sd_config.flync.yaml
Important
β If this directory is added, namings of sub-directories must be respected.
See also
Explore the whole ECU config further:
Validate your configurationΒΆ
After writing your FLYNC config you can use this helper script from the FLYNC SDK to validate it.
python3 src/flync/sdk/helpers/validate_workspace.py --help