Graphical I/O Node Hardware Abstraction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


