Declarative Peripheral Communication via Configuration Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers of software programs interfacing with peripheral devices using low-level communication protocols, such as I2C, need to write device-specific code to perform operations, consuming time and resources as they must familiarize themselves with the protocol.

Innovation Solution

A system that allows software programs to declaratively reference sequences of low-level operations via a configuration file, eliminating the need for device-specific code by mapping high-level operations to lower-level code stored in external configuration files, which can be in JSON format, enabling communication with peripheral devices without requiring knowledge of the low-level protocol.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If software programs include device-specific code to implement low-level communication protocol operations, then communication with peripheral devices can be achieved, but development time and resource consumption increase as developers must familiarize themselves with the protocol

Engineering Contradiction:
ImproveEase of software developmentVSAvoidDevelopment time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent introduces a configuration file as an intermediary layer between the software program and the peripheral device. This configuration file contains the device-specific code and protocol implementation details, allowing the main software program to interact with peripheral devices through high-level operations without directly implementing low-level communication protocols. The configuration file acts as a mediator that translates high-level operation requests into the specific sequence of low-level operations required by the protocol.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If software programs directly implement low-level communication protocol operations, then precise control over peripheral devices is achieved, but device complexity increases due to the need for device-specific code

Engineering Contradiction:
ImproveDevice compatibilityVSAvoidSoftware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the software architecture into distinct components: the main software program that contains high-level operation logic, and separate configuration files that contain device-specific protocol implementation details. This segmentation allows the main program to remain simple and device-agnostic, while adaptability to different peripheral devices is achieved by loading appropriate configuration files. Each configuration file is a self-contained unit that handles the complexity of specific device protocols.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The configuration file mechanism provides a universal interface that works across different peripheral devices and communication protocols. Instead of requiring separate software implementations for each device type, the system uses a universal configuration file format that can be generated by device manufacturers. This allows the same software program structure to work with multiple different peripheral devices by simply changing the configuration file, achieving multi-functionality without increasing core software complexity.

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

Data Source

PatentUS20210034549A1Declarative transactional communications with a peripheral device via a low-power bus
Publication Date: 2021.02.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20210034549A1 patent drawing
  • US20210034549A1 patent drawing
  • US20210034549A1 patent drawing

AI summary

The disclosed techniques enable a software program to communicate with a peripheral device (e.g., a sensor), via a low-level communication protocol such as the I2C protocol, even though the software program does not include lower-level code configured to implement a sequence of operations defined for the low-level communication protocol. The techniques determine that the software program includes a high-level operation that instructs for communications to be conducted with the peripheral device. The high-level operation is associated with a separately stored configuration file that includes the lower-level code configured to implement the sequence of operations enabling the communications to be conducted with the peripheral device via the low-level communication protocol. The techniques then execute the lower-level code included in the configuration file and return information, to the software program, indicating that the communications with the peripheral device have been conducted via the low-level communication protocol.