IP Library Granted Patent US 9,148,357
Granted Patent B2
US 9,148,357 · App. 14/096,946 · Granted Sep 29, 2015

System and method for object abstraction and logging

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 9,148,357
App. No.
14/096,946
Granted
Sep 29, 2015
Kind
B2
Abstract

A system and method of communicating with a plurality of different types of devices. A device driver is defined for each type of device. The device driver creates and maintains a set of channels for each device; each channel represents a property of the device. Newly acquired data received from one of the devices is received at the device driver and published to the channel associated with the data. Publishing the newly acquired data to the channel associated with the data includes storing the newly acquired data in a channel database with a time stamp corresponding to the time the data was received. Control information for one of the devices is received at the device driver and associated with one of the channels. The control information is passed to the device being controlled.

Claims (69)

1. A system comprising:

a plurality of types of devices, each type of device comprises a respective device driver configured to be used with an associated device of that type, wherein each device driver is configured to:

create and maintain a respective set of channels for the associated device, wherein each channel represents a property of the associated device;

receive, at the device driver, newly acquired data received from the associated device;

publish the newly acquired data to each channel associated with the data; and

receive from one or more of the channels control information for the associated device; and

a channel application communicatively coupled to the plurality of devices, wherein the channel application is configured to:

store the newly acquired data in a channel database with a time stamp corresponding to the time the data was received; and

pass the control information to each device being controlled.

2. The system of claim 1 , wherein the channel application is configured to:

define a data presentation for each channel;

read data associated with one or more channels from the channel database; and

present one or more channels for analysis based on the data presentation defined for the one or more channels.

3. The system of claim 2 , wherein the channel application is configured to access time entries other than the latest time entry and wherein the channel application is configured to present channel state as channel state changes over a period of time.

4. The system of claim 2 , wherein the channel application is configured to define the data presentation for each channel by selecting a presentation method from one or more predefined presentation methods.

5. The system of claim 2 , wherein the channel application is configured to display the data as the data changes over time such to enable scrolling forward and back in time to watch the data change.

6. The system of claim 2 , wherein the respective set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein the channel application is configured to determine data for the logical channel as a function of one or more other channels associated with the first device and to store the logical channel data with the data for the other channels associated with the first device in the channel database.

7. The system of claim 1 , further comprising a server configured to read data stored in the channel database and pass the read data to one or more user applications.

8. The system of claim 7 , wherein the server implements web services.

9. The system of claim 7 , wherein the server operates in a cloud-based system by which the one or more user applications obtain data from the plurality of different types of devices.

10. The system of claim 1 , further comprising a gateway configured to communicatively couple one or more of the devices to the channel application.

11. The system of claim 10 , wherein the gateway comprises a processor on which the channel application executes.

12. The system of claim 1 , wherein the channel application is configured to store the newly acquired data in the channel database with a time stamp corresponding to the time the data was received by making a time entry in the channel database each time newly acquired data is published to the channel database, wherein each time entry includes the time stamp corresponding to the time the data was received and current state for each channel.

13. The system of claim 1 , wherein for each type of device the respective device driver is selected from one or more predefined device drivers and installed in the associated device.

14. A channel application apparatus comprising:

at least one processor configured to execute software;

memory communicatively coupled to the at least one processor; and

at least one interface to couple the apparatus, via a network, to a plurality of types of devices, each type of device comprising a respective device driver configured to be used with an associated device of that type, wherein each device driver is configured to:

create and maintain a respective set of channels for the associated device, wherein each channel represents a property of the associated device;

receive, at the device driver, newly acquired data received from the associated device;

publish the newly acquired data to each channel associated with the data; and

receive from one or more of the channels control information for the associated device; and

wherein the software comprises a channel application configured to:

store the newly acquired data in a channel database with a time stamp corresponding to the time the data was received; and

pass the control information to each device being controlled.

15. The channel application apparatus of claim 14 , wherein the channel application is configured to:

define a data presentation for each channel;

read data associated with one or more channels from the channel database; and

present one or more channels for analysis based on the data presentation defined for the one or more channels.

16. The channel application apparatus of claim 15 , wherein the channel application is configured to access time entries other than the latest time entry and wherein the channel application is configured to present channel state as channel state changes over a period of time.

17. The channel application apparatus of claim 15 , wherein the channel application is configured to define the data presentation for each channel by selecting a presentation method from one or more predefined presentation methods.

18. The channel application apparatus of claim 15 , wherein the channel application is configured to display the data as the data changes over time to enable scrolling forward and back in time to watch the data change.

19. The channel application apparatus of claim 15 , wherein the respective set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein the channel application is configured to determine data for the logical channel as a function of one or more other channels associated with the device and to store the logical channel data with the data for the other channels associated with the first device in the channel database.

20. The channel application apparatus of claim 14 , wherein the channel application is configured to store the newly acquired data in the channel database with a time stamp corresponding to the time the data was received by making a time entry in the channel database each time newly acquired data is published to the channel database, wherein each time entry includes the time stamp corresponding to the time the data was received and current state for each channel.

21. The channel application apparatus of claim 14 , wherein the apparatus comprises a gateway configured to communicatively couple one or more of the devices to the channel application.

22. The channel application apparatus of claim 14 , wherein the channel application is configured to store the newly acquired data in the channel database with a time stamp corresponding to the time the data was received by making a time entry in the channel database each time newly acquired data is published to the channel database, wherein each time entry includes the time stamp corresponding to the time the data was received and current state for each channel.

23. A channel application program product for communicating with a plurality of devices, wherein the plurality of devices includes devices of different types, the program product tangibly stored on a non-transitory storage medium and comprising instructions operable to cause at least one programmable processor to:

store newly acquired data in a channel database with a time stamp corresponding to the time the data was received, wherein each of the plurality of devices comprises a respective device driver configured to: create and maintain a respective set of channels for the associated device, wherein each channel represents a property of the associated device; receive, at the device driver, newly acquired data received from the associated device; publish the newly acquired data to each channel associated with the data; and

receive from one or more of the channels control information for the associated device; and

wherein the instructions are further operable to cause at least one programmable processor to pass the control information to each device being controlled.

24. The channel application program product of claim 23 , wherein the instructions are further operable to cause at least one programmable processor to:

define a data presentation for each channel;

read data associated with one or more channels from the channel database; and

present one or more channels for analysis based on the data presentation defined for the one or more channels.

25. A device comprising:

a processor configured to execute software;

memory communicatively coupled to the processor; and

an interface to communicatively couple the device to a channel application;

wherein the software comprises a respective device driver selected from a plurality device drivers for a plurality of types of devices, each of the device drivers associated with a respective type of device;

wherein the device driver is configured to cause the device to:

create and maintain a respective set of channels for the device, wherein each channel represents a property of the device;

receive newly acquired data for the device;

publish the newly acquired data to each channel associated with the data by communicating the newly acquired data to the channel application for storage in a channel database with a time stamp corresponding to the time the data was received; and

receive control information for the device from one or more of the channels, the control information passed from the channel application.

26. A device driver program product for use with one of a plurality of types of devices, the program product tangibly stored on a non-transitory storage medium and comprising instructions operable to cause at least one programmable processor in a device to:

create and maintain a respective set of channels for the device, wherein each channel represents a property of the device;

receive newly acquired data for the device;

publish the newly acquired data to each channel associated with the data by communicating the newly acquired data to a channel application for storage in a channel database with a time stamp corresponding to the time the data was received; and

receive control information for the device from one or more of the channels, the control information passed from the channel application.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 8, 2023
From: BMO BANK N.A., AS ADMINISTRATIVE AGENT
To: DIGI INTERNATIONAL INC.
Reel/Frame 065835/0205 →
SECURITY INTEREST Recorded Dec 8, 2023
From: DIGI INTERNATIONAL INC.
To: BMO BANK N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 065836/0981 →
SECURITY INTEREST Recorded Dec 19, 2019
From: DIGI INTERNATIONAL INC.
To: BMO HARRIS BANK N.A.
Reel/Frame 051370/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: HUSNEY, JORDAN
To: DIGI INTERNATIONAL INC.
Reel/Frame 031972/0859 →