IP Library › Granted Patent US 10,289,426
Granted Patent B2
US 10,289,426 · App. 14/603,602 · Granted May 14, 2019

Constrained device and supporting operating system

Inventors: Paul B. Rasband (Lantana, FL); Vincent J. Lipsio, Jr. (Gainesville, FL)
Assignee: Tyco Fire & Security GmbH
G06F9/4416A61B17/00G01S5/02G01S5/0236G01S5/0284G01S13/765G01S13/876G08B13/19634G08B25/009G08B29/181G08B29/188H04L9/004H04L12/4625H04L12/6418H04L61/106H04L67/104H04L67/12H04L67/34H04N5/76H04W8/26H04W16/26H04W88/04G08B13/19608G08B25/007H04L43/0805H04L61/6013H04L61/6072H04L67/1051H04L67/1093H04W4/006H04W4/38H04W84/18H04W92/02Y04S40/168
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,289,426
App. No.
14/603,602
Granted
May 14, 2019
Kind
B2
Abstract

A networked system for managing a physical intrusion detection/alarm includes an upper tier of server devices, comprising: processor devices and memory in communication with the processor devices, a middle tier of gateway devices that are in communication with upper tier servers, and a lower level tier of devices that comprise fully functional nodes with at least some of the functional nodes including an application layer that execute routines to provide node functions, and a device to manage the lower tier of devices, the device instantiating a program manager that executes a state machine to control the application layer in each of the at least some of the functional nodes.

Claims (50)

1. A computer program product tangibly stored on a non-transitory computer readable hardware storage device, the computer program product for managing constrained devices on a network, the computer program product comprising instructions to cause a processor to:

schedule executable functions to execute on a constrained device, the executable functions selected from either a first set of executable functions that are built into a loaded image in the constrained device or a second set of executable functions that are downloaded during operation of the constrained device, with the instructions to schedule configured to:

access a management structure comprising a linked list of pointers to function locations of executable functions that are not currently executing on the constrained device;

identify a particular function in the linked list of functions, as ready to execute;

determine a priority value of the particular identified function relative to a current executing function, and when the particular, identified function in the linked list is of a higher priority than the current executing function;

preempt the execution of the current executing function without saving register values of the current executing function in random access memory; and

execute the particular, identified function having the higher priority.

2. The computer program product of claim 1 wherein the computer program product is part of a real-time operating system for execution on the constrained device that is a constrained sensor device.

3. The computer program product of claim 1 , further comprising instructions to:

determine that the current executing function is of equal priority as the particular, identified function; and

cause the particular, identified function to execute when the current executing function has pended execution waiting for data.

4. The computer program product of claim 3 further comprising instructions to:

manage a single stack of a processor for all functions and tasks.

5. The computer program product of claim 4 wherein when the particular, identified function is ready to execute, stack functions of remaining functions remain in place on the single stack of the processor as the particular, identified function pushes its data on top of the currently executing function's location in the stack.

6. The computer program product of claim 5 wherein when the particular, identified function completes executing and returns, all its stack usage is popped off of the stack, and the current executing function resumes executing.

7. A method comprises:

managing by a processor device a set of executable functions that are built into a loaded image or downloaded during operation of a constrained device;

scheduling by the processor device an executable function to execute on the constrained device;

accessing by the processor a management structure comprising a linked list of pointers to function locations of executable functions that are not currently executing on the constrained device;

identifying by the processor device a particular function in the linked list of functions as ready to execute;

determining a priority value of the particular identified function relative to a currently executing function, and when the particular, identified function in the linked list is of a higher priority than the currently executing function;

preempting execution of currently executing function, by the processor device, without saving register values of the currently executing function in random access memory (RAM); and

executing the particular, identified function having the higher priority.

8. The method of claim 7 wherein managing by the processor device is performed by a real-time operating system.

9. The method of claim 7 , further comprises;

determining that the current executing function is of equal priority as the particular, identified function; and

cause the particular, identified function to execute when the current function has pended execution waiting for data.

10. The method of claim 9 wherein managing further comprises:

managing by the processor device a single stack for all functions and tasks for a real-time operating system for the constrained device.

11. The method of claim 7 wherein when the particular identified function is ready to execute, stack functions of remaining functions remain in place on a single stack of the processor device as the particular identified function pushes its data on top of the currently executing function's stack.

12. The method of claim 11 wherein when the particular, identified function completes executing and returns, all its stack usage is popped off of the staek, and the currently executing function resumes executing.

13. A constrained sensor device comprises;

a processing device;

a sensor element for sensing a physical condition, the sensor element sending data for processing to the processing device, with the processing device applying one or more user-defined independent executable functions to the data;

a network interface;

a storage device storing a computer program product comprising instructions to cause the processing device to:

schedule executable functions to execute on a constrained device, the executable functions selected from either a first set of executable functions that are built into a loaded image or a second set of executable functions that are downloaded during operation of the constrained device, according to availability and priority of an executable function relative to other functions in the first set of executable functions and the second set of executable functions, with the instructions to schedule configured to:

access a management structure comprising a linked list of pointers to function locations of executable functions that are not currently executing on the constrained device;

identify a particular function in the linked list of functions, as ready to execute;

determine a priority value of the particular identified function relative to a currently executing function, and when the particular, identified function in the linked list is of a higher priority than the currently executing function;

preempt the execution of the currently executing function, without saving register values of the currently executing function in random access memory; and

execute the particular, identified function having the higher priority.

14. The device of claim 13 wherein the computer program product is part of a real-time operating system for execution on the constrained sensor device.

15. The device of claim 13 , further comprising instructions to

determine that the current executing function is of equal priority as the particular, identified function; and

cause the particular, identified function to execute when the current function has pended execution waiting for data.

16. The device of claim 14 further comprising instructions to;

manage a single stack of a processor for all functions and tasks.

17. The device of claim 13 wherein when the particular identified function is ready to execute, stack functions of remaining functions remain in place on a single stack of the processing device as the particular, identified function pushes its data on top of the currently executing function's location in the stack.

18. The device of claim 17 wherein when the particular, identified function completes executing and returns, all its stack usage is popped off of the stack, and the currently executing function resumes executing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: RASBAND, PAUL B.; LIPSIO, VINCENT J.
To: TYCO FIRE & SECURITY GMBH
Reel/Frame 035968/0341 →
Continuity (4)
Continuation 14463754 · Aug 20, 2014
Provisional Application 61973962 · Apr 2, 2014
Provisional Application 61946054 · Feb 28, 2014
Related Publication 20150248299A1 · Sep 3, 2015