IP Library Granted Patent US 10,154,095
Granted Patent B2
US 10,154,095 · App. 15/130,307 · Granted Dec 11, 2018

System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance

Inventors: Douglas A. Standley (Boulder, CO); Matthew R. Dodge (San Francisco, CA); Randall E. Bye (Louisville, CO)
Assignee: n.io Innovation, LLC
H04L67/12G06F9/445G06F9/4436G06F9/4494G06F9/485G06F9/5072G06F9/54H04W4/006H04W4/38
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,154,095
App. No.
15/130,307
Granted
Dec 11, 2018
Kind
B2
Abstract

An improved system and method are disclosed for receiving sensor readings from one or more devices and processing the readings in real time to create an output. For example, the method may include, for each device, calculating a value based on the sensor readings obtained from the device for which the value is being calculated. Each of the values that satisfies at least one defined parameter is identified. All of the values that satisfy the defined parameter are aggregated to form an aggregated value. A defined action is executed based on the aggregated value. The steps of receiving, calculating, identifying, aggregating, and executing occur in real time without storing the sensor readings, the values, or the aggregated value.

Claims (27)

1. A system for processing a plurality of accelerometer readings in real time, the system comprising:

at least one processor; and

a memory coupled to the at least one processor, the memory storing a plurality of instructions for execution by the at least one processor for:

providing a web service that is accessible to a plurality of third-party mobile devices that are not a part of the system, wherein the web service is configured to allow each third-party mobile device to initiate a connection to the web service using a browser that is a standard feature on the third-party mobile device, and wherein the web service is configured to interact with an application programming interface (API) of the third-party device to obtain accelerometer data from the third-party device once the connection is established; and

a platform instance having a core configured to interact with an operating system, wherein the core is configured to run at least a first service that is configured to run a plurality of blocks, wherein each block is a self-contained modular component that can run only within the service and that operates independently from the other blocks in an asynchronous manner and includes a set of platform specific instructions that enable the block to operate within the platform instance and a set of task specific instructions that enable the block to perform a specific task, and wherein the plurality of blocks are configured with task specific instructions for:

receiving a plurality of accelerometer readings from each of the plurality of third-party mobile devices via the web service, wherein the accelerometer readings represent an amount of movement of the respective third-party mobile device over a time period;

calculating, for each of the third-party mobile devices, a plurality of acceleration values for the time period based on the accelerometer readings received from the third-party mobile device for which the values are being calculated; and

providing the acceleration values for use in a visual display, wherein the steps of receiving, calculating, and providing occur in real time without any storage of the accelerometer readings or the acceleration values by the platform instance other than any necessary queuing within the platform instance.

2. The system of claim 1 wherein the steps of receiving and calculating occur asynchronously for each of the third-party mobile devices.

3. The system of claim 1 wherein the task specific instructions further include repeatedly performing the steps of receiving, calculating, and providing.

4. The system of claim 1 wherein the web service is not part of the platform instance.

5. The system of claim 1 wherein the web service is part of the platform instance.

6. The system of claim 5 wherein the platform instance is configured to run the web service as a second service simultaneously with the first service.

7. The system of claim 5 wherein the platform instance is configured to run the web service as part of the first service.

8. The system of claim 1 wherein the at least one web service provides a first network address and a second network address, and wherein each of the devices can log into either of the first and second network addresses.

9. The system of claim 8 wherein logging into the first network address or the second network address affects which of a plurality of visual displays will use the device's acceleration values.

10. A computer program product in a non-transitory computer readable medium for use in a computing system that includes at least one processor, the computer program product including computer program instructions for execution by the at least one processor for processing a plurality of sensor readings in real time comprising:

providing a web service that is accessible to a plurality of third-party mobile devices that are not a part of the system, wherein the web service is configured to allow each device to initiate a connection to the web service using a browser that is a standard feature on the third-party mobile device, and wherein the web service is configured to interact with an application programming interface (API) of the device to obtain sensor readings representing accelerometer data from the device once the connection is established;

providing a platform instance having a core configured to interact with an operating system, wherein the core is configured to run at least a first service that is configured to run a plurality of blocks, wherein each block is a self-contained modular component that can run only within the service and that operates independently from the other blocks in an asynchronous manner and includes a set of platform specific instructions that enable the block to operate within the platform instance and a set of task specific instructions that enable the block to perform a specific task, and wherein the plurality of blocks are configured with task specific instructions for:

receiving a plurality of the sensor readings from the plurality of devices via the web service;

calculating, for each device, a value based on the sensor readings received from the device for which the value is being calculated;

determining whether each value passes a threshold test, wherein values that do not pass the threshold test are discarded;

assigning each value that passes the threshold test to one of a plurality of value sets;

aggregating, for each value set, all of the values assigned to the value set; and

providing each of the value sets for use in a visual display, wherein the steps of receiving, calculating, determining, assigning, aggregating, and providing occur in real time without any storage of the the sensor readings, the values, or the aggregated value by the platform instance other than any necessary queuing within the platform instance.

11. The computer program product of claim 10 wherein the sensor readings for each device are obtained via one of a plurality of network addresses and wherein each of the value sets represents a different one of the plurality of network addresses.

12. The computer program product of claim 10 wherein the task specific instructions further include converting each acceleration value that passes the threshold test into a decibel value.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS AND INCORRECT PCT NUMBER IB166306 AND IB1730423 PREVIOUSLY RECORDED AT REEL: 043535 FRAME: 0744. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 15, 2018
From: SOCIETAL INNOVATIONS IPCO LIMITED
To: N.IO INNOVATION, LLC
Reel/Frame 045348/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2017
From: SOCIETAL INNOVATIONS IPCO LIMITED
To: N.IO INNOVATION, LLC
Reel/Frame 043534/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: STANDLEY, DOUGLAS A.; DODGE, MATTHEW R.; BYE, RANDALL E.
To: SOCIETAL INNOVATION NORTH AMERICA, INC.
Reel/Frame 038306/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: SOCIETAL INNOVATION NORTH AMERICA, INC.
To: SOCIETAL INNOVATION TECHNOLOGIES LIMITED
Reel/Frame 038306/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: SOCIETAL INNOVATION TECHNOLOGIES LIMITED
To: SOCIETAL INNOVATIONS IPCO LIMITED
Reel/Frame 038306/0978 →
Continuity (9)
Continuation In Part 14885629 · Oct 16, 2015
Continuation In Part PCTIB2015001288 · May 21, 2015
Provisional Application 62148811 · Apr 17, 2015
Provisional Application 62156754 · May 4, 2015
Provisional Application 62001457 · May 21, 2014
Provisional Application 62028145 · Jul 23, 2014
Provisional Application 62041566 · Aug 25, 2014
Provisional Application 62137007 · Mar 23, 2015
Related Publication 20160285975A1 · Sep 29, 2016