-
Notifications
You must be signed in to change notification settings - Fork 171
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
Allow instantiation of charging ports #753
Comments
Actually the current design is intended to be able to represent multiple ports. Assume you have 1 IEC_TYPE_2_AC at front left and 1 at right rear, and in addition you also have a TESLA_SUPERCHARGER at front left. Then that could be represented as:
The disadvantage from a modeling perspective is that those two arrays are not linked from a formal perspective. Having ChargePort as instances and then a list of supported ports for that instance might be better from modelling perspective. I.e. representing the example above as something like
|
@erikbosch And what about defining a charging port as an struct? And then having an array of ports in the specification? |
MoM: Daniel will create PR, let's give it a try with struct. |
I tried modelling multiple charging ports in two ways: (a) with Structs, and (b) with branch instantiation. (a) with Structs# In the Structs file
# -----
Types:
type: branch
Types.ChargingPort:
type: struct
description: An individual charging port that is available in the vehicle with its associated properties.
Types.ChargingPort.PortPosition:
...
Types.ChargingPort.PortType:
...
# In the vspec file
# -----
Charging.ChargingPortList:
type: sensor
datatype: Types.ChargingPort[]
Pros
Cons
(b) with branch instantiation.Charging.ChargingPort:
type: branch
instances: ["FRONT_LEFT", "FRONT_RIGHT"]. # instances names imply the position
Charging.ChargingPort.PortPosition:
...
Charging.ChargingPort.PortType:
... Pros
Cons
DecisionI will create a PR with the option (b). However, it's important to notice to in either case, the limitation of cross-referencing has to do with the limits of the |
Thanks. I agree that, a charge port not being an "atomic thing" (like structs are good for), using instances is better. Wrt to the shameless GraphQL plug :), I remember there was the idea to have some GraphQL representation maybe as new 'new source of truth', that could be back converted to "classic VSS tree", I wonder where are we tooling wise? I.e. is https://github.com/COVESA/vss-tools/blob/master/docs/VSS2GRAPHQL.md currently already supporting some version of grpahql that you would see as a starting point for a GraphQL based VSS? Any way back currently? |
Thanks @SebastianSchildt for pointing that out.
Yes, that is indeed the proposal I presented at the last AMM in April 2024.
Yes, that initial export script was taken as the starting point. However, we identified some modelling decisions there that, in our opinion, were not optimal. We are changing the structure of that export. Then, next step is to do the opposite conversion and test for completeness of the original vspec. |
As an update to your question, @SebastianSchildt, I documented the ongoing work for adopting graphql schema language on this COVESA Wiki. |
Right now, the charging port is modelled assuming the car has a unique port. However, there might be cases where multiple ports exist. Hence, the following suggestion is made:
Current
Some properties of the port are modelled under the
Charging
branch.Alternative
Here are a couple of ideas for supporting instantiation of charging ports:
Charging
forChargingPort
and making it a branch with multiple instances, such that:Charging
and including a sub-branchChargingPort
with multiple instances, such that:The text was updated successfully, but these errors were encountered: