Component-Based Sensor Software Toolset for Rapid Development
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing sensor-enabled software applications is challenging due to the need for dedicated code for various sensors, complex data interrelationships, and asynchronous sensor data events, requiring significant programmer effort for data collection, processing, and coordination.
Innovation Solution
A component-based software toolset and method that uses predefined sensor-related components as building blocks, allowing users to define and configure data source, data series, and data field components to create complex sensor data processing flows through a front-end application generating system specifications, which are then dynamically built and run by a back-end application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dedicated program code is added for each sensor type and connection, then sensor data collection capability is improved, but programmer effort and code complexity increase significantly
Solution Approach 1:
The patent divides the sensor data collection system into separate, reusable components: a base class for sensor connections and specific subclasses for different sensor types (local sensors, remote sensors, file sensors, database sensors). Each component is independently developable and can be combined in various ways to handle different sensor configurations without requiring dedicated code for each combination.
Solution Approach 2:
The base class `SensorConnection` provides universal functionality that can be inherited by multiple specific sensor connection types. This base class handles common operations such as data collection, error handling, and event management, allowing all sensor types to share common code while maintaining type-specific capabilities through inheritance.
2Adaptability or versatility
If programming code is written for each sensor connection type, then data processing capability is improved, but development time and programmer effort increase
Solution Approach 1:
The patent performs preliminary action by pre-defining the `SensorConnection` base class and its subclasses before the actual application development. The framework includes pre-implemented methods for data collection, processing, and event handling, so that developers can simply instantiate and configure pre-built components rather than writing code from scratch for each sensor connection type.
Solution Approach 2:
The patent uses code reuse through inheritance, where specific sensor connection classes copy and extend the functionality of the base class. This allows developers to leverage existing well-tested code structures while adding only the necessary type-specific logic, significantly reducing development time compared to writing separate code for each sensor type.
3Adaptability or versatility
If sensor data from multiple sources is collected, then data processing capability is improved, but coordination of asynchronous data events becomes more challenging
Solution Approach 1:
The patent implements a feedback mechanism through event-driven architecture where sensor connections raise events when data is available. The base class defines a standardized event interface that all sensor types implement, allowing consistent handling of asynchronous data events from multiple sources through a unified event management system that coordinates data flow automatically.
Data Source
Figure 1~3
Figure 4~5
Figure 6
AI summary
A system for deploying component-based software systems (212) for the implementation of desired sensor data process flows makes use of a toolset of software components specially tailored for building sensor data process flows. In one or more embodiments, the system comprises a front-end application (202) operative to generate system specifications (210) from user input, each system specification (210) defining a desired component-based software system (212) of one or more sensor components and their corresponding configurations (50) in accordance with sensor component class definitions (e.g., the toolset) for a predefined set of sensor components tailored for building desired sensor data process flows. The system further includes a back-end application (204) operative to store the sensor component class definitions for use in instantiating sensor components as needed, receive system specifications (210), and dynamically build and run the corresponding desired component-based software systems (212) within a run-time environment (236) provided by the back-end application (204).