Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adds initial components and deployment and architecture diagram #2

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

eriksven
Copy link

The initial PR for the service-to-signal blueprint.

There are a number of know issue which should be fixed soon after merging this PR. I put this PR anyway to already start and facilitate the overall review of the code. The issues are:

  • integrate solution for bug in the zenoh-kuksa-provider leading to a race condition in the Zenoh-kuksa provider (Solution is propose in adds second kuksa client in zenoh-kuksa-provider eclipse-kuksa/kuksa-incubation#10)
  • let software horn update the current value for the Horn once it applied the Horn status
  • upgrade version of Zenoh used below the Kuksa Databroker to Zenoh 1.0.0 (once released). Currently, the Zenoh-Kuksa-Provider and the Software Horn expect Zenoh in version 0.11
  • upgrade version of Zenoh used by Horn Service and Client to 1.0.0 (once released)
  • remove fixed version settings for up-transport-zenoh sub-sub-dependencies in Horn Service and client after new version of up-transport-zenoh gets released

@eriksven eriksven requested review from sophokles73 and removed request for sophokles73 October 18, 2024 12:03
@eriksven
Copy link
Author

@AnotherDaniel your feedback here is highly appreciated as well


<img src=./img/overview.drawio.png>

In order to apply, the requested changes we need a so-called provider to communicate the requested changes from the Kuksa databroker to the underlying hardware. In many current vehicles this might be done over a CAN-bus. Since this blueprint focuses more on future vehicle generations and is intended as a technology showcase, we use Eclipse Zenoh instead.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In order to apply, the requested changes we need a so-called provider to communicate the requested changes from the Kuksa databroker to the underlying hardware. In many current vehicles this might be done over a CAN-bus. Since this blueprint focuses more on future vehicle generations and is intended as a technology showcase, we use Eclipse Zenoh instead.
In order to apply the requested changes, we need a so-called Kuksa _Provider_ to communicate the requested changes from the Kuksa Databroker to the underlying hardware. In many current vehicles this might be done over a CAN-bus. Since this blueprint focuses more on future vehicle generations and is intended as a technology showcase, we use Eclipse Zenoh instead.

<img src=./img/overview.drawio.png>

In order to apply, the requested changes we need a so-called provider to communicate the requested changes from the Kuksa databroker to the underlying hardware. In many current vehicles this might be done over a CAN-bus. Since this blueprint focuses more on future vehicle generations and is intended as a technology showcase, we use Eclipse Zenoh instead.
We use the Eclipse Kuksa Zenoh Provider which forwards messages between the gRPC-API of the Eclipse KUKSA Databroker and topics in the Zenoh network concerning the relevant and configurable VSS signals.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
We use the Eclipse Kuksa Zenoh Provider which forwards messages between the gRPC-API of the Eclipse KUKSA Databroker and topics in the Zenoh network concerning the relevant and configurable VSS signals.
We use the Eclipse Kuksa Zenoh Provider which forwards messages between the gRPC-API of the Eclipse Kuksa Databroker and topics in the Zenoh network concerning the relevant and configurable VSS signals.

We use the Eclipse Kuksa Zenoh Provider which forwards messages between the gRPC-API of the Eclipse KUKSA Databroker and topics in the Zenoh network concerning the relevant and configurable VSS signals.

Translating between the HTTP/2 based gRPC communication and Eclipse Zenoh makes it possible to connect embedded devices like an Arduino or ESP32 which can use the [PicoZenoh implementation](https://github.com/eclipse-zenoh/zenoh-pico).
If you do not have such hardware available, there is also the option to use a Zenoh client in software as "software horn".

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you do not have such hardware available, there is also the option to use a Zenoh client in software as "software horn".
If you do not have such hardware available, there is also the option to use the _software horn_.


### Horn Service Implementation

The [horn service implementation](./components/horn-service-kuksa/) provides the interfaces defined in the [COVESA uService for Horn](https://github.com/COVESA/uservices/blob/main/src/main/proto/vehicle/body/horn/v1/horn_service.proto).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The [horn service implementation](./components/horn-service-kuksa/) provides the interfaces defined in the [COVESA uService for Horn](https://github.com/COVESA/uservices/blob/main/src/main/proto/vehicle/body/horn/v1/horn_service.proto).
The [horn service implementation](./components/horn-service-kuksa/) provides the interfaces defined in the [COVESA Horn uService](https://github.com/COVESA/uservices/blob/main/src/main/proto/vehicle/body/horn/v1/horn_service.proto).

### Horn Service Implementation

The [horn service implementation](./components/horn-service-kuksa/) provides the interfaces defined in the [COVESA uService for Horn](https://github.com/COVESA/uservices/blob/main/src/main/proto/vehicle/body/horn/v1/horn_service.proto).
The implementation relies in the [COVESA VSS Signal `Vehicle.Body.Horn.IsActive`](https://github.com/COVESA/vehicle_signal_specification/blob/6024c4b29065b37c074649a1a65396b9d4de9b55/spec/Body/Body.vspec#L65) managed by the Eclipse KUKSA Databroker.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The implementation relies in the [COVESA VSS Signal `Vehicle.Body.Horn.IsActive`](https://github.com/COVESA/vehicle_signal_specification/blob/6024c4b29065b37c074649a1a65396b9d4de9b55/spec/Body/Body.vspec#L65) managed by the Eclipse KUKSA Databroker.
The implementation utilizes the [`Vehicle.Body.Horn.IsActive` VSS Signal](https://github.com/COVESA/vehicle_signal_specification/blob/6024c4b29065b37c074649a1a65396b9d4de9b55/spec/Body/Body.vspec#L65) managed by the Eclipse Kuksa Databroker.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kept in COVESA to emphasize that the uService and VSS are coming from the same alliance

components/horn-client/src/main.rs Outdated Show resolved Hide resolved
components/software-horn/Cargo.toml Outdated Show resolved Hide resolved
config/provider-config.json5 Outdated Show resolved Hide resolved
config/provider-config.json5 Outdated Show resolved Hide resolved
config/software-horn-config.json5 Outdated Show resolved Hide resolved
@sophokles73
Copy link

@eriksven are you going to push changes to the README as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants