Skip to content

Broader refactoring of manifest-based naming and multi A2L#81

Merged
pmai merged 16 commits intomainfrom
feature/multi-a2l-support-struct
Aug 13, 2024
Merged

Broader refactoring of manifest-based naming and multi A2L#81
pmai merged 16 commits intomainfrom
feature/multi-a2l-support-struct

Conversation

@pmai
Copy link
Copy Markdown
Collaborator

@pmai pmai commented Jun 19, 2024

This constitutes a more complete refactoring of the manifest schema, so that better naming and expandability is achieved.

pmai added 3 commits June 19, 2024 18:51
Regularize naming of attributes (fixes #68, #78, #79).
Incorporate formatting changes from #69 by @t-sommer.
This reflects discussions with @t-sommer for a broader refactoring,
also fixes #80.
@pmai pmai added this to the v1.0 milestone Jun 19, 2024
@pmai pmai self-assigned this Jun 19, 2024
@chrbertsch
Copy link
Copy Markdown
Collaborator

FMI Design Webmeeting:
Torsten: the filename gets appended to the path to the corresponding binary.
Patrick: what if we have an ME and an CS binary?
Pierre: this is a general problem ... If you want to have multiple A2L files
Torsten: We could add another attribute "modelIdentifier" ...
Pierre: also in the old proposal you would need a way to state that you need a different set of a2l files ... We have to fix this in any case ...
Patrick: Before there was no issue in the case of only one a2l file ...
Pierre: we need to express whether a set a2l files is applicable to an ME, CS implementation ...
If we have multiple implementation ... we might need multiple a2l files. This was not expressible in the old proposal.
Pierre: we should state which use cases we want to support. -->#83

@chrbertsch chrbertsch requested review from MartinBenedikt, PTaeuberDS and bmenne-dspace and removed request for MartinBenedikt June 25, 2024 13:57
@chrbertsch chrbertsch requested review from kahramonj and t-sommer July 16, 2024 13:37
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you very much for your changes. I have some questions and small notes:

  1. Is it intention that the enumeration names in "role" don't include the "IP" as in original XCP specifications like TCP/IP or UDP/IP, which represent the combination of transport and network layer?
    Especially, if we have "Address" in the name like "XCPServiceTCPListenAddress", it should mean "IP-Address" in the network layer, otherwise it could also be MAC-Address in data link layer.
    If we are using Ethernet terms, maybe it is better to use "Listener" (also called TCP/IP-Server) instead "Listen" (or XCPSlave in XCP terms)?

  2. Is it independent on the IP versions or should we mention it somewhere (currently I see that we are using everywhere IPv4 in the examples, but nowhere mentioned IPv6). Not sure, if also multicasts IPs (only UDP/IP) supported.

  3. One more side note: I read somewhere that XCP Slave detection was defined in XCP version 1.3 specifically for XCP on Ethernet, so if we have to mention the minimum supported XCP version somewhere.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

There is no XCP on Ethernet, even though the ASAM authors called it that, but they were just mistaken, they defined XCP on TCP and UDP which is independent of any data link layer. Hence there is no potential confusion with MAC addresses or anything of that nature.

One can add the IP in there, but it adds little value, as the IP is always implied (there is no UDP/TCP defined on anything else than IP).

We should clarify that the address can in theory also be IPv6 rather than only IPv4.

The layered standard is independent of the XCP version.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Pierre: I think that the "IP" part is not very important. We should mention IPV6. I will add it.
Kharamonj: IP is network layer, UDP is transport layer ... but not important
Pierre: historically people included "/IP" ... it does not add benefit.
Pierre: mention "minimum supported XCP version": You have to read the A2L file anyway, there it will be mentioned. We are independent on a specific XCP version.

Copy link
Copy Markdown
Collaborator

@t-sommer t-sommer left a comment

Choose a reason for hiding this comment

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

The variables XCPService{TCP|UDP}Enable do not end with a noun which looks kind of odd. Maybe we should call it EnableXCPService{TCP|UDP}or even better XCPStart{TCP|UDP}Service`, because this is what it does according to the description.

@PTaeuberDS
Copy link
Copy Markdown
Collaborator

The variables XCPService{TCP|UDP}Enable do not end with a noun which looks kind of odd. Maybe we should call it EnableXCPService{TCP|UDP}or even better XCPStart{TCP|UDP}Service`, because this is what it does according to the description.

I agree that XCPService{TCP|UDP}Enable doesn't look nice. The earlier variant EnableXcpOnTcpIp was based on the A2L block name that this config variable refers to: XCP_ON_TCP_IP. I still prefer that variant.

@PTaeuberDS PTaeuberDS force-pushed the feature/multi-a2l-support-struct branch from 72209f3 to a71e7ad Compare July 30, 2024 10:20
docs/index.adoc Outdated
If size is a concern, it may be decided to supply just a single platform and A2L file with an FMU.

The root name of the A2L file shall be identical to the model identifier and is case sensitive, i.e., a variable description named `<modelIdentifier>.a2l` is associated with an FMU binary named `<modelIdentifier>.{dll|so}`.
The root name of the A2L file shall be identical to the `identifier` attribute from the `Interface` element of the manifest file and is case sensitive.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

to the definition attribute?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Pierre: this might be a left-over, I will look into this

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The whole sentence should be removed as it is in the wrong place of the doc, and it is now redundant to the actual mechanism of locating the a2l files from the manifest. Will remove in wrap up.

@pmai
Copy link
Copy Markdown
Collaborator Author

pmai commented Jul 30, 2024

The variables XCPService{TCP|UDP}Enable do not end with a noun which looks kind of odd. Maybe we should call it EnableXCPService{TCP|UDP}or even better XCPStart{TCP|UDP}Service`, because this is what it does according to the description.

The common prefix is more important IMHO, especially since enable flag variables are commonly termed enable and not enable flag or something even more cumbersome. German angst about non-nouns aside...

@chrbertsch
Copy link
Copy Markdown
Collaborator

The variables XCPService{TCP|UDP}Enable do not end with a noun which looks kind of odd. Maybe we should call it EnableXCPService{TCP|UDP}or even better XCPStart{TCP|UDP}Service`, because this is what it does according to the description.

I agree that XCPService{TCP|UDP}Enable doesn't look nice. The earlier variant EnableXcpOnTcpIp was based on the A2L block name that this config variable refers to: XCP_ON_TCP_IP. I still prefer that variant.

Pierre: we are not talking about the variable names any more, only the role names.
Pierre: the benefit of the current proposal is the common prefix.
Patrick: for me the current way is fine.

@kahramonj kahramonj self-requested a review July 30, 2024 14:13
This reflects the review feedback and should not induce any technical
changes.

Signed-off-by: Pierre R. Mai <[email protected]>
Copy link
Copy Markdown
Collaborator Author

@pmai pmai left a comment

Choose a reason for hiding this comment

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

This hopefully finalizes the changes discussed in the last design meeting.

docs/index.adoc Outdated
| Relative URI
| This attribute must be a relative reference to a URI (formerly called a relative URI) to the A2L variable description file for this interface.
It may not contain any dot-segments (i.e. complete path segments of `.` or `..`).
It may not contain any dot-segments (i.e., complete path segments of `.` or `..`).
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

rather than adding the commas I think we should work more to remove the use of i.e. in its entirety by having a separate definition of dot segments, or otherwise re-phrasing. This goes for all occurrences of i.e.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

There is no XCP on Ethernet, even though the ASAM authors called it that, but they were just mistaken, they defined XCP on TCP and UDP which is independent of any data link layer. Hence there is no potential confusion with MAC addresses or anything of that nature.

One can add the IP in there, but it adds little value, as the IP is always implied (there is no UDP/TCP defined on anything else than IP).

We should clarify that the address can in theory also be IPv6 rather than only IPv4.

The layered standard is independent of the XCP version.

docs/index.adoc Outdated
If size is a concern, it may be decided to supply just a single platform and A2L file with an FMU.

The root name of the A2L file shall be identical to the model identifier and is case sensitive, i.e., a variable description named `<modelIdentifier>.a2l` is associated with an FMU binary named `<modelIdentifier>.{dll|so}`.
The root name of the A2L file shall be identical to the `identifier` attribute from the `Interface` element of the manifest file and is case sensitive.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The whole sentence should be removed as it is in the wrong place of the doc, and it is now redundant to the actual mechanism of locating the a2l files from the manifest. Will remove in wrap up.

@pmai pmai merged commit 86b55db into main Aug 13, 2024
@pmai pmai deleted the feature/multi-a2l-support-struct branch August 13, 2024 11:41
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.

6 participants