0% found this document useful (0 votes)
53 views24 pages

Covesa Amm 2022 - VSC

Uploaded by

707930340ma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views24 pages

Covesa Amm 2022 - VSC

Uploaded by

707930340ma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Internal

Vehicle Service Catalog


ALL MEMBER MEETING
APRIL 26-28, 2022
Internal

Mission Statement

Create a standardized, extensible vehicle service catalog, and associated


tools, to enable protocol-, language-and specification-agnostic
interoperability between ECUs, infotainment, and cloud.

• Standardized – Version managed service specification with regular releases


• Extensible – Proprietary extensions can be added to an open-standard catalog
• Tools – Auto-generate network code and APIs from service specifications
• Specification agnostic – Translation to and from multiple specification formats
• Interoperability – Enable seamless communication in the vehicle and over the air

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |2
Internal

VSC – Working Session 1 (Tue 26.04)

topic start time


VSC Intro 15:00 20 min
Initial Services 15:20 25 min
VSC-VSS relationship (prep. Thursday) 15:45 25 min
Wrap up 16:10 20 min

Wrap Up:
- Identify a set of service that make sense for VSC, 3 nice example services
- Code generator on top of the VCS services
- Idl conversion

Questions:
- Verisoning on Interfaces / APIs?

28 March 2024 | Copyright ©2021 COVESA |3


Internal

VSC – Working Session 2 (Wed 27.04)

topic start time


Intro 10:30 10 min
Initial Services for VSC, 3-5 nice examples 10:40 20 min
Sample POC Vehicle Abstraction Layer 11:00 20 min
Tooling / Generators, etc. 11:20 20 min
Container, Access Control 11:40 10 min
Wrap up 11:50 10 min

28 March 2024 | Copyright ©2021 COVESA |4


Internal

Initial Objectives

Create service catalog


• Create catalog for commodity in-vehicle services using YAML
• Collaborate between OEMs and Tier-1s to ensure commonality
Create tooling
• Create VSC YAML translators for FrancaIDL and ARXML
• Create code generators for C++, DBUS, and SOME/IP
Create sample vehicle abstraction layer service
• Route ARXML-based SOME/IP traffic to DBUS

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |5
Internal

TECHNICAL OVERVIEW

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |6
Internal

VSC YAML File Structure


Namespaces
• Can be nested
• Major & minor versions enables versioned APIs
namespaces:
name: ... Typedefs
major-version: ... • Type defines native, defined, struct, or enumeration types
minor-version: ... • Supports array definitions

typedefs: Enumerations
... • Supports optional value specification for each element

enumerations: Structs
... • Can be nested
• Elements can be of any native or defined datatype
structs:
... Methods
• Arbitrary number of input and output parameters
methods: • Can return stream of output parameters
...
Events
events: • Pub/sub
... • Events can contain arbitrary number of elements

See full specification at: https://github.com/COVESA/vehicle_service_catalog

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |7
Internal

VSC Deployment Files

Namespaces
• Mapped to corresponding namespaces in VSC file
• Nested namespaces used to traverse tree to specific elements
namespaces:
- name: seats
dbus_interface: com.genivi.seat
Extensions
methods:
• Adds additional data elements to the VSC specification
- name: move_seat
in:
- name: position
datatype: float
Overrides
• Redefines an existing element defined in VSC specification
• Can redefine complete trees (namespaces, methods, etc)

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |8
Internal

Code Generation

Code generator combines VSC specification with deployment


files to customize code generation for specific protocol / language targets

vsc-generate -l cpp –l dbus -s comfort.yml –d comfort_dbus_deploy.yml –o comfort_dbus.cpp

Language to generate Protocol to generate Service specification Deployment file Output file for
stub code for stub code for (see above) generated code

• Specify if synchronous, event-driven, or callback-based API are to be generated


• Define listening ports, service discovery mechanisms, and other network configurations
• Map network identifiers to language symbols (SOME/IP Request ID to method names)

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA |9
Internal

Integrating external specification formats

hvac.arxml vsc_convert -f arxml hvac.yml vsc_generate -p vsomeip hvac-vsomeip.cpp

HVAC ECU IVI

Adaptive SOME/IP hvac-service


Autosar

• Example: Generate SOME/IP interface code from ARXML


• Auto-generated VSOMEIP code provides Adaptive Autosar interoperability
• Extensible tools support multiple input formats and output protocols & languages

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 10
Internal

Where is Franca IDL in all this?


hvac.fidl vsc_convert -i hvac.fidl -o hvac.yml

hvac.arxml vsc_convert -i hvac.arxml -o hvac.yml hvac.yml

hvac.proto vsc_convert -i hvac.proto -o hvac.yml

• Existing Franca IDL specifications can be used as ground truth format


• Bidirectional translation between Franca IDL and Vehicle Service Catalog formats fully supported

VSC could be seen as a YAML variant of Franca IDL with no loss of information

VSC drives improvements to Franca IDL → next step in Franca evolution?
28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 11
Internal

OBJECTIVES

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 12
Internal

Objective: Create Service Catalog

• Define overall catalog structure with namespaces, naming conventions, etc


• Define global error codes, defined types, structs, etc.
• Define commodity services such as comfort, tuner, media, sota(?), etc
• Create placeholders for future services

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 13
Internal

Objective: Sample Vehicle Abstraction Layer

Vehicle Abstraction Layer


• Simplifying integration of VSC defined services
• Enabling project to migrate step-by-step to VSC
• Supporting unchangeable legacy development while keeping a clean API

Sample
• Demonstrating E2E use case for a VSC defined service
• Demonstrating collaborative work and interoperability

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 14
Internal

Sample Vehicle Abstraction Layer (SOME/IP-2-DBUS)


IVI
Comfort Application

DBUS

vsc-hvac.yml VSC Tooling vsc-hvac-dbus.cpp

Manual
translation-layer.cpp
coding

network.arxml VSC Tooling network-vsomeip.cpp

SOME/IP

Comfort ECU

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 15
Internal

Sample Vehicle Abstraction Layer (SOME/IP-2-SOME/IP)

Gateway

ECU SOME/IP translation-layer.cpp SOME/IP ECU

network-vsomeip.cpp

Manual
VSC Tooling VSC Tooling
coding

network.arxml vsc-hvac.yml

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 16
Internal

Open Questions

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 17
Internal

Open Questions

• VSS – VSC Integration


• Boundaries between specifications, tooling, etc
• Use both signals and services to actuate?
• Choose a code integration option
• Structure of service catalog
• Namespace structuring
• Best practices for actuation, status updates, and failure management

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 18
Internal

VSS-VSC Integration Option 1

Vehicle Signal VSS-to-VSC VSC Events &


Specification generator Properties

Application
Vehicle Service
VSC Tooling vsc-stub.cpp
Specification

• Signal Specification is translated to a VSC YAML file with events and properties
• Tooling generates code from both service specification and translated events and properties

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 19
Internal

VSS-VSC Integration Option 2

Vehicle Signal VSS


Specification Tooling Application

vss-stub.cpp

Vehicle Service VSC vsc-stub.cpp


Specification Tooling

• Toolchains are kept separate


• Application uses code generated from booth toolchains

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 20
Internal

Q: Best Practices
• Use RPCs to actuate and command
• Set radio station, move seats, set destination, …
• Can initiate transaction that triggers one or more events for transactional status update
• Returns ok/fail/in_progress(transaction_id)

• Use properties to report property changes (from RPC or otherwise)


• Current radio station changed, Seat position changed, Location changed, …
• Has getters and setters
• Has pub-sub

• Use events to track transactional progress (Needs to be specified by VSC RPC call)
• Window 10% up, 20% up, aborted (hand in window) (last update)
• Deployment file specifies if sync/async interface should be generated.

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 21
Internal

Q: Service Catalog Structure

• How do we organize nested namespaces?


• How do we enable private / proprietary extensions?
• How do we namespace globals (error codes, enums, etc)?
• Service and argument styles (camel case, underscore, prefix, etc)?
• Versioning of Services?

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 22
Internal

Q: Additional Features

• Mechanism to instrument calls in generated code


• Track latency, resource usage, etc
• How do we integrate Renesas AoS service specs?
• Can we use well-defined deployment file elements to specify containers?
• Refer to VSC spec + version from AoS service spec. Consume – provide.

28 March 2024 | ALL MEMBER MEETING • Leipzig, Germany • Copyright ©2022 COVESA | 23
Internal

You might also like