Graphical I/O Node Hardware Abstraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional text-based programming environments require users to possess advanced programming skills, creating a barrier for non-technical users in effectively utilizing computer systems, as they often necessitate mastering different skills for conceptualization and implementation, leading to reduced efficiency.

Innovation Solution

A graphical programming system utilizing an I/O node for hardware abstraction, allowing users to create hardware-independent graphical programs by using a generic I/O node that can execute on different targets without modifying the program, with generation code generating execution-time code based on various factors such as input selection or code dependency information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional text-based programming languages are used, then programming functionality is achieved, but user accessibility deteriorates due to requiring advanced programming skills

Engineering Contradiction:
Improveuser accessibilityVSAvoidprogramming skill requirement
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a graphical programming environment as an intermediary layer between the user and the underlying hardware/text-based code. Users interact with visual icons and block diagrams instead of text-based programming languages, while the system automatically translates these graphical representations into executable code. This mediator eliminates the need for users to learn complex programming syntax while maintaining full programming functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical process of manually writing and managing text-based code with an automated graphical interface system. Instead of requiring users to type, edit, and debug text programs, the system uses visual drag-and-drop operations where blocks represent code modules that are automatically assembled and compiled. This substitution transforms a skill-intensive manual process into an intuitive visual operation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If hardware-specific programming is used, then direct hardware control is achieved, but program portability deteriorates when changing physical I/O resources

Engineering Contradiction:
Improveprogram portabilityVSAvoidprogram modification effort
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent creates a universal graphical programming interface that can target multiple hardware platforms through a single program design. The block diagram program serves as a hardware-agnostic representation that the system translates into platform-specific code. Users write one graphical program that can be deployed to different targets (PC, microcontroller, embedded system) without modification, as the translation layer adapts the universal representation to each specific hardware architecture.

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

Solution Approach 2:

The patent segments the programming system into distinct layers: a hardware-independent graphical programming layer using block diagrams, and a hardware-specific implementation layer generated through automatic translation. This segmentation allows the upper layer to remain portable and reusable across different platforms, while the lower layer handles hardware-specific details. The block diagram serves as an abstract representation that can be compiled for multiple targets simultaneously.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If graphical programming with hardware abstraction is used, then program portability is improved, but code generation complexity increases due to platform-specific translation requirements

Engineering Contradiction:
Improveprogram portabilityVSAvoidcode generation system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a self-service code generation system where the translation from block diagrams to platform-specific code occurs automatically without requiring manual intervention. The system includes built-in knowledge of multiple hardware platforms and automatically selects and applies the appropriate translation rules based on the target platform. This automation handles the complexity of multi-platform code generation internally, presenting a simple unified interface to users while managing the intricate translation process in the background.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7725877B2Graphical program which includes an I/O node for hardware abstraction
Publication Date: 2010.05.25 NATIONAL INSTRUMENTS CORP
  • US7725877B2 patent drawing
  • US7725877B2 patent drawing
  • US7725877B2 patent drawing

AI summary

A system and method for creating a graphical program utilizing one or more input/output (I/O) nodes. An I/O node may be displayed in a first graphical program, where the I/O node may include associated generation code for programmatically generating execution-time code associated with the I/O node in the first graphical program. First input may be received to select a first I/O source or target corresponding to the first I/O node, e.g., from various supported hardware resources, and the associated generation code may be executed to programmatically generate or modify the execution-time code, e.g., at compilation or prior to execution of the first graphical program, to provide I/O to or from the first I/O source or target.