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

CANdb++ compliant handling of long names (> 32 characters) #92

Open
Adhara3 opened this issue Sep 12, 2024 · 2 comments
Open

CANdb++ compliant handling of long names (> 32 characters) #92

Adhara3 opened this issue Sep 12, 2024 · 2 comments
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@Adhara3
Copy link
Collaborator

Adhara3 commented Sep 12, 2024

Very low priority, food for thoughts.

Long names support and handling

As per spec

DBC-identifiers used in DBC files may have a length of up to 32 characters

Old softwares can truncate names.
The CANdb++ workaround, as already done for other special attributes

To ensure the compatibility the CANdb++ editor always stores C-identifiers for object names with a maximum length
of 32 characters and stores the long object names in user defined attributes. The following attributes are used to store
names of network nodes, messages, signals, and environment variables longer than 32 characters: "SystemNodeLongSymbol", "SystemMessageLongSymbol", "SystemSignalLongSymbol", and "SystemEnvVarLongSymbol".

At the moment we read this parameters but

  • they do not override names
  • we do not check names' length

This may be fine now, it may become more of an issue if we allow writing/saving

Other special names

GenMsgCycleTime

Contains the cycle time of the message or the relation node-Tx message. With the default settings in CANdb++
("PropsFromUserAttrs=1" and "AttrMsgCycleTime=GenMsgCycleTime" in CANdb.ini) this value is mapped to
the system attribute cycle time. In the default setting, therefore, the system attribute cycle time of a message
(e.g. on the "Message - Definition" page) cannot be processed directly; instead, it is determined via the userdefined attribute.

GenMsgSendType

Describes the transmitter type of the message or the relation node-Tx message. The available values are user or
OEM-specific. With the default settings in CANdb++ ("PropsFromUserAttrs=1" and "AttrMsgSendType=GenMsgSendType" in CANdb.ini) this value is mapped to the system attribute transmitter type (Tx
method). In the default setting, therefore, the system attribute transmitter type of a message (e.g. on the "Message - Definition" page) cannot be processed directly; instead, it is determined via the user-defined attribute.

GenSigInactiveValue

Describes the value of a signal for which the signal is in the inactive state. Signals that are sent with the transmitter type (GenSigSendType) 'IfActive' are sent as soon as the signal assumes a value not equal to the inactive value. Signals that are sent with the transmitter type 'IfActiveWithRepetion' are normally sent cyclically.
However, if the signal value assumes the inactive state, the signal must not be sent.

GenSigSendType

The GenSigSendType attribute specifies the send type of a signal.

GenSigStartValue

Describes the start value or initial value of a signal.

NmStationAddress

A node that uses the OSEK NM (network management) must have a NM-ID that is unambiguous on the network
(within a vehicle, the NM-ID does not have to be unambiguous). This NM-ID is managed in the attribute NMStationAdress. In the CANdb++ default setting("PropsFromUserAttrs=1" and "AttrBusType=NMStationAddress" in
CANdb.ini), this value is mapped to the system attribute 'address' of a node.

Network attributes ProtoclType and BusType

Are used to eventually allow advanced multiplexing in CANdb++

Currently extended multiplexing is limited to…

  • J1939/NMEA2000/ISO11783 DBC databases (network attribute ProtocolType must contain
    the value ‘J1939’, ‘NMEA2000’ or ‘ISO11783’)
  • CANopen DBC databases (network attribute ProtocolType must contain the value
    ‘CANopen’)
  • Aerospace DBC databases (network attribute ProtocolType must contain the value
    ‘Aerospace’)
  • Ethernet DBC databases (network attribute BusType must contain the value ‘Ethernet’).
@Adhara3 Adhara3 added enhancement New feature or request help wanted Extra attention is needed question Further information is requested documentation Improvements or additions to documentation labels Sep 12, 2024
@Uight
Copy link
Contributor

Uight commented Jan 6, 2025

while searching some stuff i found this: https://doku.pub/documents/dbc-file-format-documentation-z06oj144jy0x
seemingly a newer version of the spec (1.05) which has some changes to this topic and most notably defines the extended multiplexing.
The change to the spec doesnt seem to apply here tough as the info is pretty much the same still.

@Adhara3
Copy link
Collaborator Author

Adhara3 commented Jan 8, 2025

Hi,

the doc linked in home page was already the 1.0.5 version (now the link is broken, I checked with wayback)

Cheers
A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants