IP Library › Granted Patent US 10,536,295
Granted Patent B2
US 10,536,295 · App. 16/405,383 · Granted Jan 14, 2020

Control infrastructure

Inventors: John Fairweather (San Diego, CA); Gabriel Jacobo (San Diego, CA); Robert Lutz (San Diego, CA); Jason Peressini (San Diego, CA); Jeff Rucker (San Diego, CA); La Vaughn F. Watts, Jr. (San Diego, CA); Roger Wellington-Oguri (San Diego, CA); Anderson Wiese (San Diego, CA); Gretchen Wieshuber (San Diego, CA)
Assignee: SYSTECH CORPORATION
H04L12/40032G06F8/34G06F8/41G06F8/76G06F9/45512H04L41/022H04L67/125H04L67/34H04L2012/4026
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,536,295
App. No.
16/405,383
Granted
Jan 14, 2020
Kind
B2
Abstract

In an embodiment, the infrastructure comprises a script execution module that comprises a compiler that compiles scripts, having instructions that reference device properties, into virtual-machine programs, a virtual machine that executes virtual-machine programs, and a script manager that stores scripts, retrieves scripts, and loads scripts into the compiler. In addition, the infrastructure may comprise gateway(s), communicatively connected to physical device(s). The gateway(s) may each comprise processor(s), driver(s) that each communicate with at least one physical device using a communication protocol to read and/or write device properties of the physical device, and a device manager that maps device properties referenced in the virtual-machine programs to device properties used by the driver(s).

Claims (46)

1. A system comprising a gateway that comprises:

at least one hardware processor;

at least one communication interface configured to download a schema and at least one control script from a platform via at least one network, wherein the at least one control script is defined in a base scripting language, and wherein the schema defines a mapping in an adapter programming language that is a fully contained simplified subset of the base scripting language;

a compiler that, when executed by the at least one hardware processor, compiles the at least one control script into at least one virtual-machine program;

a virtual machine that, when executed by the at least one hardware processor, executes the at least one virtual-machine program to control one or more physical devices communicatively connected to the gateway; and

a device manager that, when executed by the at least one hardware processor,

manages one or more drivers for the one or more physical devices, and,

when executed by the at least one hardware processor, uses the mapping from the schema to map device properties, referenced by the at least one virtual-machine program, to device properties used by the one or more drivers to control or monitor the one or more physical devices.

2. The system of claim 1 , wherein controlling the one or more physical devices comprises one or both of reading and writing one or more device properties of the one or more physical devices.

3. The system of claim 2 , wherein each device property for each of the one or more physical devices is associated with both a value for the device property and a status that indicates whether an authority has acknowledged the value for the device property, and wherein the authority, for each device property, is a driver that communicates with a physical device having the device property.

4. The system of claim 3 , wherein the status for each device property comprises one of the following:

an acknowledged status indicating that the authority has acknowledged the value for the device property;

a pending status indicating that a change to the value for the device property is pending but the authority has not yet acknowledged the changed value for the device property; or

an unknown status indicating that the value for the device property is unknown.

5. The system of claim 4 , wherein the base scripting language provides an assign-and-wait-while-pending operator that, when used in the at least one virtual-machine program, causes the virtual machine to wait for as long as the status of a device property, used with the assign-and-wait-while-pending operator, remains the pending status, before executing any subsequent instruction in the at least one virtual-machine program.

6. The system of claim 5 , wherein the assign-and-wait-while-pending operator, when used in the at least one virtual-machine program, causes the virtual-machine program to block until the status of the device property, used with the assign-and-wait-while-pending operator, changes to the acknowledged status.

7. The system of claim 3 , wherein the gateway further comprises an internal cache that includes the value and the status associated with each device property, and wherein each driver is configured to update the value in the internal cache for any device property for which it is the authority.

8. The system of claim 7 , wherein, during execution of the at least one virtual-machine program, the virtual machine reads values for any device properties referenced in the at least one virtual-machine program from the internal cache.

9. The system of claim 1 , wherein the mapping from the schema comprises a read snippet and a write snippet for each of one or more device properties, wherein both the read snippet and the write snippet are defined according to the adapter programming language, wherein the device manager uses the read snippet to retrieve a device property, referenced in the at least one virtual-machine program, from at least one of the one or more drivers, and wherein the device manager uses the write snippet to write a device property, referenced in the at least one virtual-machine program, to at least one of the one or more drivers.

10. The system of claim 9 , wherein the read and write snippets are executed by a parser, rather than compiled and executed by the virtual machine.

11. The system of claim 1 , wherein the at least one communication interface downloads the schema upon initialization of the device manager.

12. The system of claim 1 , wherein, according to the base scripting language, each of the one or more physical devices is associated with both a unique identifier and a name with no specificity requirement, and wherein, during either compilation by the compiler or execution by the virtual machine, when a unique identifier that is not associated with any of the one or more physical devices communicatively connected to the gateway is encountered, the compiler or virtual machine:

automatically searches for at least one of the one or more physical devices with a name that matches the name associated with the encountered unique identifier; and

replaces the encountered unique identifier with the unique identifier for the at least one physical device with the matching name.

13. The system of claim 1 , wherein the adapter programming language supports identical operator syntax to the base scripting language, but does not support some keywords supported by the base scripting language.

14. The system of claim 1 , wherein built-in functions of the adapter programming language are an abbreviated subset of built-in functions of the base scripting language.

15. The system of claim 1 , wherein the base scripting language and the adapter programming language both support a token that indicates a reference to a device property, and wherein, in at least the adapter programming language, a double token indicates a reference to a target side of a read or write operation, whereas a single token indicates a reference to a source side of a read or write operation.

16. The system of claim 1 , wherein the gateway further comprises a non-transitory storage medium, and wherein the at least one hardware processor:

maintains a local repository of control scripts on the non-transitory storage medium; and

uses the at least one communication interface to synchronize the local repository with a remote repository of control scripts on the platform.

17. The system of claim 1 , wherein the at least one hardware processor executes the compiler to automatically compile the at least one control script into the at least one virtual-machine program as the at least one control script is loaded into the virtual machine.

18. A method comprising, by at least one hardware processor of a gateway:

using a communication interface to download a schema and at least one control script from a platform via at least one network, wherein the at least one control script is defined in a base scripting language, and wherein the schema defines a mapping in an adapter programming language that is a fully contained simplified subset of the base scripting language;

executing a compiler that compiles the at least one control script into at least one virtual-machine program;

executing a virtual machine that executes the at least one virtual-machine program to control one or more physical devices communicatively connected to the gateway; and

executing a device manager that

manages one or more drivers for the one or more physical devices, and,

uses the mapping from the schema to map device properties, referenced by the at least one virtual-machine program, to device properties used by the one or more drivers to control or monitor the one or more physical devices.

19. The method of claim 18 , wherein controlling the one or more physical devices comprises one or both of reading and writing one or more device properties of the one or more physical devices.

20. A non-transitory computer-readable medium having instructions stored thereon, wherein the instructions, when executed by a processor, cause the processor to:

use a communication interface to download a schema and at least one control script from a platform via at least one network, wherein the at least one control script is defined in a base scripting language, and wherein the schema defines a mapping in an adapter programming language that is a fully contained simplified subset of the base scripting language;

execute a compiler that compiles the at least one control script into at least one virtual-machine program;

execute a virtual machine that executes the at least one virtual-machine program to control one or more physical devices communicatively connected to the gateway; and

execute a device manager that

manages one or more drivers for the one or more physical devices, and,

uses the mapping from the schema to map device properties, referenced by the at least one virtual-machine program, to device properties used by the one or more drivers to control or monitor the one or more physical devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2019
From: FAIRWEATHER, JOHN; WIESE, ANDERSON; JACOBO, GABRIEL; WELLINGTON-OGURI, ROGER; RUCKER, JEFF; PERESSINI, JASON; WATTS, LA VAUGHN F., JR.; WIESHUBER, GRETCHEN; LUTZ, ROBERT
To: SYSTECH CORPORATION
Reel/Frame 049102/0474 →
Continuity (4)
Continuation 16143843 · Sep 27, 2018
Continuation 15540231
Provisional Application 62099367 · Jan 2, 2015
Related Publication 20190268178A1 · Aug 29, 2019
Cited By (56)
US 50,632 US 12,196,437 US 12,197,299 US 12,197,508 US 12,210,324 US 12,229,156 US 12,231,255 US 12,231,496 US 12,235,617 US 12,270,560 US 12,271,163 US 12,273,215 US 12,292,720 US 12,333,657 US 12,339,825 US 12,341,624 US 12,346,381 US 12,349,027 US 12,367,443 US 12,372,955 US 12,379,718 US 12,386,827 US 12,393,611 US 12,395,818 US 12,399,467 US 12,399,475 US 12,400,035 US 12,405,581 US 12,406,193 US 12,412,003 US 12,432,277 US 12,474,679 US 12,481,259 US 12,523,975 US 12,523,999 US 12,529,491 US 12,541,182 US 12,542,830 US 12,554,687 US 12,556,893 US 12,572,267 US 12,578,696 US 12,579,874 US 12,597,772 US 12,598,207 US 12,664,444 US 12,669,790 US 12,687,827 US 12,687,831 US 12,688,437 US 12,699,367 US 12,699,732 US 12,711,287 US 12,711,288 US 12,730,418 US 12,743,057