Managed Code Assembly for CAN Network Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveadaptability to future changesVSAvoidcode stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvemetadata supportVSAvoidtoolset compatibility
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If static compilation is used for CAN database information, then system integration is achieved, but any changes require recompilation of dependent modules

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidrecompilation time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9128727B2Generation of managed assemblies for networks
Publication Date: 2015.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9128727B2 patent drawing
  • US9128727B2 patent drawing
  • US9128727B2 patent drawing

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.