Data acquisition instrument architecture with flexible data acquisition, processing and display
First Claim
1. An electronic instrument comprising:
- instrument hardware;
data acquisition engine, the data acquisition engine scheduling time sharing of the instrument hardware;
a plurality of channel objects, each channel object acting as a client of the data acquisition engine, the channel objects each including a channel buffer that contains data obtained from the instrument hardware, wherein the plurality of channel objects time share use of the instrument hardware as scheduled by the data acquisition engine; and
, a plurality of measurement objects, each measurement object being a client of one of the plurality of channel objects, each measurement object processing data within a channel buffer of a channel object to which the measurement object is a client.
2 Assignments
0 Petitions
Accused Products
Abstract
An electronic instrument includes instrument hardware. A data acquisition engine schedules time sharing of the instrument hardware. Channel objects act each as a client of the data acquisition engine. The channel objects each included a channel buffer that contains data obtained from the instrument hardware. Measurement objects are each a client of one of the plurality of channel objects. Each measurement object processes data obtained from a channel buffer of a channel object to which the measurement object is a client. Display window objects are each a client of at least one of the plurality of measurement objects, each display window object displaying data processed by any measurement object to which the display window object is a client. Memory within the electronic instrument is allocated among object types to accommodate a user specified mix of object types.
13 Citations
22 Claims
-
1. An electronic instrument comprising:
-
instrument hardware;
data acquisition engine, the data acquisition engine scheduling time sharing of the instrument hardware;
a plurality of channel objects, each channel object acting as a client of the data acquisition engine, the channel objects each including a channel buffer that contains data obtained from the instrument hardware, wherein the plurality of channel objects time share use of the instrument hardware as scheduled by the data acquisition engine; and
,a plurality of measurement objects, each measurement object being a client of one of the plurality of channel objects, each measurement object processing data within a channel buffer of a channel object to which the measurement object is a client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
a plurality of display window objects, each display window object being a client of at least one of the plurality of measurement objects, each display window object displaying data processed by any measurement object to which the display window object is a client.
-
-
3. An electronic instrument as in claim 1 wherein the instrument hardware performs hardware functions for a network analyzer.
-
4. An electronic instrument as in claim 1 wherein the data acquisition engines operates in three different states:
- an idle state, a sweeping state and a sweeping not triggered state.
-
5. An electronic instrument as in claim 1 wherein the data acquisition engine translates client requests for data into a command queue which is used to generate hardware control signals and data digitization operations.
-
6. An electronic instrument as in claim 1 wherein each channel object can support an arbitrary number of measurement objects.
-
7. An electronic instrument as in claim 1 wherein each measurement object subscribes to a channel object so that the channel object will notify the measurement object when requested measured data becomes available.
-
8. An electronic instrument as in claim 1, additionally comprising:
a plurality of display window objects, at least one display window object being a client of more than one of the plurality of measurement objects, and wherein at least one measurement object has more than one display window objects as clients.
-
9. An electronic instrument as in claim 1, wherein memory within the electronic instrument is allocated among object types to accommodate a user specified mix of object types.
-
10. An electronic instrument as in claim 1 wherein channel objects set policy on whether and when to accept triggers from the data acquisition engine.
-
11. An electronic instrument as in claim 10 wherein each channel object is set at one of the following policy levels:
-
a policy level in which the channel object is not triggerable;
a policy level in which the channel object accepts one trigger;
a policy level in which the channel object accepts a set number of triggers; and
,a policy level in which the channel object always accepts triggers.
-
-
12. A method for acquiring data from instrument hardware, the method comprising the following steps:
-
(a) scheduling time sharing of the instrument hardware by a data acquisition engine;
(b) placing data obtained from the instrument hardware into channel buffers, the data being placed into each channel buffer by a channel object associated with the channel buffer, each channel object acting as a client of the data acquisition engine, wherein channel objects time share use of the instrument hardware as scheduled by the data acquisition engine; and
,(c) processing data within a channel buffer of a channel object, the data being processed by a measurement object which is a client of the channel object. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
(d) displaying data processed by the plurality of measurement objects, the data being displayed by display window objects, each display window object being a client of at least one of the plurality of measurement objects.
-
-
14. A method as in claim 12 wherein the electronic instrument is a network analyzer.
-
15. A method as in claim 12 wherein in step (a) the data acquisition engine operates in three different states:
- an idle state, a sweeping state and a sweeping not triggered state.
-
16. A method as in claim 12 wherein step (a) includes the following substep:
translating, by the data acquisition engine, client requests for data into a command queue which is used to generate hardware control signals and data digitization operations.
-
17. A method as in claim 12 wherein in step (c) each channel object can support an arbitrary number of measurement objects.
-
18. A method as in claim 12 wherein step (c) includes the following substep:
subscribing to a channel object, by each measurement object, so that the channel object will notify the measurement object when requested measured data becomes available.
-
19. A method as in claim 12, additionally comprising the following step:
displaying data processed by the plurality of measurement objects, the data being displayed by display window objects, each display window object being a client of at least one of the plurality of measurement objects, wherein at least one measurement object has more than one display window objects as clients.
-
20. A method as in claim 12, additionally including the following step:
(d) allocating memory within the electronic instrument among object types to accommodate a user specified mix of object types.
-
21. Storage media used to store software, which when executed, performs a method for acquiring data from instrument hardware, the method comprising the following steps:
-
(a) scheduling time sharing of the instrument hardware by a data acquisition engine;
(b) placing data obtained from the instrument hardware into channel buffers, the data being placed into each channel buffer by a channel object associated with the channel buffer, each channel object acting as a client of the data acquisition engine, wherein channel objects time share use of the instrument hardware as scheduled by the data acquisition engine; and
,(c) processing data within a channel buffer of a channel object, the data being processed by a measurement object which is a client of the channel object. - View Dependent Claims (22)
(d) allocating memory within the electronic instrument among object types to accommodate a user specified mix of object types.
-
Specification