IP Library Granted Patent US 8,612,575
Granted Patent B2
US 8,612,575 · App. 12/592,533 · Granted Dec 17, 2013

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 8,612,575
App. No.
12/592,533
Granted
Dec 17, 2013
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 (49)

1. A method of communicating with a plurality of different types of devices, comprising:

defining a device driver for each type of device, wherein the device driver creates and maintains a set of channels for each device, wherein each channel represents a property of the device;

defining a data presentation for each channel;

receiving, at the device driver, newly acquired data received from one of the devices;

publishing the newly acquired data to the channel associated with the data, wherein 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;

reading, from the channel database, data associated with one or more channels;

presenting, based on its data presentation, one or more channels for analysis;

receiving, at the device driver and from one of the channels, control information for one of the devices; and

passing the control information to the device being controlled.

2. The method of claim 1 , wherein storing includes 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 a current state for each channel.

3. The method of claim 2 , wherein reading from the channel database includes accessing time entries other than the latest time entry and wherein presenting one or more channels includes presenting channel state as channel state changes over a period of time.

4. The method of claim 1 , wherein defining a data presentation for each channel includes selecting a presentation method from one or more predefined presentation methods.

5. The method of claim 1 , wherein defining a device driver for each type of device includes selecting a device driver from one or more predefined device drivers.

6. The method of claim 1 , wherein the set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein publishing includes determining data for the logical channel as a function of one or more other channels associated with the first device and storing the logical channel data with the data for the other channels associated with the first device in the channel database.

7. A method of logging data from a plurality of different types of devices, comprising:

defining a device driver for each type of device, wherein the device driver creates and maintains a set of channels for each device, wherein each channel represents a property of the device;

defining a data presentation for each channel;

receiving, at the device driver, newly acquired data received from one of the devices;

publishing the newly acquired data to the channel associated with the data, wherein 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;

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

presenting, based on its data presentation, one or more channels for analysis, wherein presenting includes displaying the data as it changes over time such that one can scroll forward and back in time to watch the data change.

8. The method of claim 7 , wherein storing includes 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 a current state for each channel.

9. The method of claim 8 , wherein reading from the channel database includes accessing time entries other than the latest time entry and wherein presenting one or more channels includes presenting channel state as channel state changes over a period of time.

10. The method of claim 7 , wherein defining a data presentation for each channel includes selecting a presentation method from one or more predefined presentation methods.

11. The method of claim 7 , wherein defining a device driver for each type of device includes selecting a device driver from one or more predefined device drivers.

12. The method of claim 7 , wherein the set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein publishing includes determining data for the logical channel as a function of one or more other channels associated with the first device and storing the logical channel data with the data for the other channels associated with the first device in the channel database.

13. A method of communicating with a plurality of devices, wherein the plurality of devices includes devices of different types, the method comprising:

creating an abstraction for each type of device, wherein creating an abstraction includes selecting two or more device properties to track for each device;

assigning a channel set to each device, wherein each channel set includes two or more channels, wherein each selected device property for a device is assigned to a channel in the channel set for that device;

defining a device driver for each type of device;

receiving, at the device driver, newly acquired data received from one of the devices;

determining the channel associated with the newly acquired data and publishing the newly acquired data to that channel;

receiving, at the device driver and from one of the channels, control information for one of the devices; and

passing the control information to the device being controlled;

wherein publishing the newly acquired data includes storing the newly acquired data in a channel database with a time stamp corresponding to the time the data was received.

14. The method of claim 13 , wherein storing includes 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 a current state for each channel.

15. The method of claim 14 , wherein the set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein publishing includes determining data for the logical channel as a function of one or more other channels associated with the first device and storing the logical channel data with the data for the other channels associated with the first device in the channel database.

16. The method of claim 13 , wherein defining a device driver for each type of device includes selecting a device driver from one or more predefined device drivers.

17. A method of communicating with a plurality of different types of devices, comprising:

defining a device driver for each type of device, wherein the device driver creates and maintains a set of channels for each device, wherein each channel represents a property of the device;

receiving, at the device driver, newly acquired data received from one of the devices;

publishing the newly acquired data to the channel associated with the data;

receiving, at the device driver and from one of the channels, control information for one of the devices; and

passing the control information to the device being controlled;

wherein 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.

18. The method of claim 17 , wherein storing includes 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.

19. The method of claim 17 , wherein defining a device driver for each type of device includes selecting a device driver from one or more predefined device drivers.

20. The method of claim 17 , wherein the set of channels for a first device of the plurality of different types of devices includes a logical channel, wherein publishing includes determining data for the logical channel as a function of one or more other channels associated with the first device and storing the logical channel data with the data for the other channels associated with the first device in the channel database.

21. The method of claim 17 , wherein the method further comprises making a time entry in the channel database each time new control information for a device is published to a channel in the channel database, wherein each time entry includes the time stamp corresponding to the time the control information was received and a current state for each channel of that device, including the channel associated with the control information.

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 Feb 10, 2010
From: HUSNEY, JORDAN
To: DIGI INTERNATIONAL INC.
Reel/Frame 023941/0988 →