Self-Describing Device Module for Dynamic API Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing control systems face challenges in managing devices with unique capabilities that do not fit into standardized application programming interfaces (APIs), requiring frequent updates and custom code development, which complicates device integration and deployment.
Innovation Solution
A self-describing controlled device module is generated using a development IDE that allows selection of SDK components, specification of custom commands and events, and generation of capabilities classes, enabling devices to describe their capabilities at runtime without prior knowledge, allowing for seamless integration and monitoring without custom code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standardized APIs are used for device control, then device integration is simplified, but devices with unique capabilities cannot be properly supported
Solution Approach 1:
The system segments device capabilities into standardized portions (handled by existing APIs) and custom portions (handled by generated code). The code generation tool divides the API development task into template-based framework code and device-specific custom code, allowing each segment to be managed independently.
Solution Approach 2:
A code generation tool acts as an intermediary between device manufacturers and control systems. This tool automatically generates custom API code based on device specifications, mediating the interface between standardized system frameworks and unique device capabilities without requiring manual customization of the entire system.
2Adaptability or versatility
If custom code is developed to support unique device capabilities, then device functionality is fully supported, but system maintenance and updates become more difficult
Solution Approach 1:
The system performs preliminary code generation during device integration setup. By pre-generating custom API code from device specifications before deployment, the system eliminates the need for manual custom code development during maintenance phases, making future updates simpler.
Solution Approach 2:
The code generation tool enables device manufacturers to self-generate their own custom API code based on device specifications. This self-service approach reduces dependency on system vendors for custom code development and allows manufacturers to independently update their device APIs.
3Adaptability or versatility
If APIs are frequently updated to support new device innovations, then device compatibility is improved, but deployment issues arise due to system update requirements
Solution Approach 1:
The system adopts a dynamic approach where custom API code is generated on-demand based on device specifications rather than requiring pre-defined static APIs. This allows the system to adapt to new device types without requiring system-wide updates, as the code generation tool creates appropriate interfaces dynamically.
Solution Approach 2:
The code generation tool accepts device specification parameters as input and automatically adjusts the generated API code to match the specific device characteristics. By changing the input parameters (device capabilities, protocols, etc.), the system generates appropriate code without requiring structural system changes or updates.
4Adaptability or versatility
If custom code is installed in control systems to utilize device extensions, then device functionality is enhanced, but device swapping becomes problematic
Solution Approach 1:
The code generation tool creates a universal framework that can handle multiple device types through standardized generation processes. The generated code follows consistent patterns that work across different devices, allowing the system to swap devices without requiring custom code modifications, as long as the devices follow similar specification formats.
Data Source
AI summary
A system, method, and computer-readable medium for generation of a controlled device Module are provided. Various components are provided to a Module designer for selection, and the designer defines the interface APIs specifying the component functionalities. The designer may specify custom commands or events for the Module including Commands, Properties, and Parameters, and custom components corresponding to the custom commands are generated. A self-describing capabilities component is then generated for each component, and a composite capabilities component may then be generated from the capabilities components of each of the components. The completed Module package is then produced by an integrated development environment station.


