Managed Code Assembly for CAN Network Adaptability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing tools for automotive control area networks (CANs) lack the ability to generate C header files and underlying signal software automatically, and they do not support additional metadata, making it difficult for developers to create software that can adapt to future changes without breaking existing code.
Innovation Solution
A toolset that automatically generates a managed code assembly in binary format, including metadata for enhanced functionalities, allowing developers to create a fully operational managed signal API software stack from a .dbc file, with options for security permissions, network optimization, and network filtering, enabling easy modification without recompilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If C header files and signal software are generated using existing tools, then basic CAN network communication is achieved, but the system lacks metadata support and cannot adapt to future changes without breaking existing code
Solution Approach 1:
The system transitions from static C header files to dynamic managed code assemblies that can be modified at runtime. The managed assembly format allows the system to adapt to changing CAN network configurations without requiring recompilation of dependent modules, while maintaining code stability through versioning and metadata-driven interfaces.
Solution Approach 2:
The invention introduces metadata parameters that describe CAN signals, messages, and ECUs in a structured format. These parameters enable the system to interpret and adapt to different CAN configurations dynamically, while the managed code format ensures that parameter changes do not break existing code through strong typing and interface contracts.
2Adaptability or versatility
If proprietary .dbc file format is used with limited toolset support, then CAN database storage is achieved, but the system lacks extensibility and metadata support
Solution Approach 1:
The managed code assembly format serves multiple functions: it stores CAN database information, provides metadata descriptions, enables runtime modification, and maintains compatibility with existing tools. This universal format replaces the limited .dbc format while preserving toolset compatibility through code generation capabilities.
Solution Approach 2:
The managed assembly acts as an intermediary layer between the proprietary .dbc file format and the application code. It provides a standardized interface that mediates between different toolsets and applications, enabling metadata support while maintaining compatibility with existing .dbc-based workflows.
3Productivity
If static compilation is used for CAN database information, then system integration is achieved, but any changes require recompilation of dependent modules
Solution Approach 1:
The system transitions from static compilation to dynamic loading of managed code assemblies. CAN database information is embedded in the managed assembly format, which can be modified and reloaded at runtime without requiring recompilation of dependent modules, dramatically improving development efficiency and reducing recompilation time.
Solution Approach 2:
The managed code assembly pre-loads CAN database information and metadata in a structured format during application initialization. This preliminary action enables runtime modifications to CAN configurations without requiring full system recompilation, as the managed assembly can be updated independently and loaded dynamically.
Data Source
AI summary
A network toolset enables developers to automatically generate a C header file and underlying signal software, as well as automatically generate a managed code assembly from a network description. The managed code assembly can be generated in a binary format and may include sufficient metadata to support extended functionalities for a network. The managed code assembly can be relatively easily integrated with an existing image (e.g., machine code for a network device) without any compilation required. A software development kit can also be generated to help programmers manage the generated assemblies.


