Instrumentation system and method including an improved driver software architecture
AssigneeNational Instruments Corporation
InventorsScott Rust, Jon Bellin, James Grey
Life of this patent
Estimating the term…
Abstract
A system and method for controlling an instrumentation system, wherein the present invention includes an improved instrument driver software architecture. The instrument driver software architecture of the present invention provides a number of features, including instrument interchangeability, i.e., the use of interchangeable virtual instruments or interchangeable instrument drivers, improved performance, an improved attribute model, improved range checking, and improved simulation features, among others.
Claims97
An instrumentation system including an instrument driver software architecture with an improved attribute model, the instrumentation system comprising:
- a computer system comprising a CPU and memory;
- at least one instrument coupled to the computer system, wherein the instrument includes a plurality of settings which indicate a state of operation of the instrument;
- wherein the memory of the computer system stores:
- a user application which performs an application using the instrument;
- an instrument driver which controls the instrument, wherein the instrument driver includes a plurality of functions which control operation of the instrument, wherein the instrument driver includes a plurality of attributes which model said plurality of settings of said instrument;
- an interchangeable virtual instrument (IVI) engine, wherein the IVI engine includes at least one set attribute function for setting values of attributes in the instrument and includes at least one get attribute function for obtaining values of attributes from the instrument;
- wherein said user application includes calls which are operable to invoke said set attribute function and/or said get attribute function in said IVI engine to set and/or get attributes in the instrument.
A computer-implemented method for controlling an instrument in an instrumentation system, wherein the instrumentation system includes a computer system comprising a CPU and memory, wherein the instrumentation system also includes at least one instrument coupled to the computer system, wherein the instrumentation system includes an instrument driver software architecture with an improved attribute model, the method comprising:
- a user application making a call to a function to control the instrument;
- executing one or more of a set attribute function or a get attribute function in response to said user application making the call, wherein the set attribute function is executable for setting values of attributes in the instrument and wherein the get attribute function is executable for obtaining values of attributes in the instrument, wherein said executing said one or more of said set attribute function or said get attribute function includes invoking a write/read function in an instrument driver;
- the write/read function in the instrument driver executing to write/read attribute values to/from the instrument in response to said invoking.
A computer-implemented method for controlling an instrument in an instrumentation system, wherein the instrumentation system includes a computer system comprising a CPU and memory, wherein the instrumentation system also includes at least one instrument coupled to the computer system, wherein the instrumentation system includes an instrument driver which controls the instrument, wherein the instrumentation system includes an instrument driver software architecture with an improved attribute model, the method comprising:
- a user application making a call to a function in the instrument driver to control the instrument;
- the function in the instrument driver executing in response to the user application making the call;
- the function in the instrument driver invoking one or more of a set attribute function or a get attribute function in an interchangeable virtual instrument (IVI) engine;
- executing one or more of the set attribute function or the get attribute function in the IVI engine in response to said invoking, wherein the set attribute function is executable for setting attributes in the instrument and wherein the get attribute function is executable for obtaining values of attributes in the instrument.
A method for controlling an instrument in an instrumentation system, wherein the instrumentation system includes a computer system comprising a CPU and memory, wherein the instrumentation system also includes at least one instrument coupled to the computer system, wherein the instrumentation system includes an instrument driver software architecture with an improved attribute model, the method comprising:
- a user application executing in the computer system making a call to a function to control the at least one instrument;
- an instrument driver executing the function to control the at least one instrument in response to said user application making the call, wherein the instrument driver includes a plurality of functions which control operation of said at least one instrument, wherein the instrument driver includes a plurality of attributes which indicate a state of operation of said at least one instrument;
- executing one or more of a set attribute function or a get attribute function in an interchangeable virtual instrument (IVI) engine, wherein the set attribute function is executable for setting attributes in the instrument and wherein the get attribute function is executable for obtaining values of attributes in the instrument.
A memory media which stores software programs that implement an instrument driver software architecture with an improved attribute model, wherein the memory media is comprised in an instrumentation system including a computer system and at least one instrument coupled to the computer system, wherein the instrument includes a plurality of attributes which indicate a state of operation of the instrument, wherein the memory media stores:
- a user application which performs an application using the instrument;
- an instrument driver which controls the instrument, wherein the instrument driver includes a plurality of functions which control operation of the instrument, wherein the instrument driver includes a plurality of attributes which model said plurality of attributes of said instrument;
- an interchangeable virtual instrument (IVI) engine, wherein the IVI engine includes a set attribute function for setting values of attributes in the instrument and includes a get attribute function for obtaining values of attributes from the instrument;
- wherein said user application includes calls which are operable to invoke said set attribute function and/or said get attribute function in said IVI engine to set and/or get attributes in the instrument.
An instrumentation system including an instrument driver software architecture with development and production modes, the instrumentation system comprising:
- a computer system comprising a CPU and memory;
- at least one instrument coupled to the computer system, wherein the at least one instrument is of a first instrument class;
- wherein the memory of the computer system stores:
- a user application which controls the at least one instrument;
- a class driver which is operable to control a class of instruments, wherein the class driver is operable to control instruments of said first instrument class, wherein said class driver includes generic functions for instruments of said first instrument class;
- a specific instrument driver which is specific to said at least one instrument, wherein said specific instrument driver includes functions for controlling the instrument, wherein said specific driver includes attributes which model attributes of the instrument, wherein said attributes include development/production attributes comprising at least a subset of the following:
- state caching, interchangeability checking, range checking, instrument status checking, and coercion recording;
- an initialization file which stores attribute settings for the instrument;
- an interchangeable virtual instrument (IVI) engine which is operable to examine the initialization file and configure the attributes in the specific driver with said attribute settings;
- wherein the initialization file is operable to be configured with said development/production attributes in a development mode during development of said user application to place said development/production attributes in said development mode during development of said user application;
- wherein the initialization file is operable to be configured with said development/production attributes in a production mode during production of said user application to place said development/production attributes in said production mode during production of said user application.
An instrumentation system including an instrument driver software architecture with improved range checking, the instrumentation system comprising:
- a computer system comprising a CPU and memory;
- at least one instrument coupled to the computer system, wherein the instrument includes a plurality of attributes which indicate a state of operation of the instrument;
- wherein the memory of the computer system stores:
- a user application which performs an application using the instrument;
- an instrument driver which controls the instrument, wherein the instrument driver includes a plurality of functions which control operation of the instrument, wherein the instrument driver includes a plurality of attributes which model said plurality of attributes of said instrument;
- an interchangeable virtual instrument (IVI) engine, wherein the IVI engine includes attribute information corresponding to each of said attributes of the instrument driver, wherein the IVI engine includes at least one set attribute function for setting attributes in the instrument and includes at least one get attribute function for obtaining values of attributes from the instrument;
- wherein, for a plurality of said attributes, said attribute information includes range information which indicates one or more permissible ranges of said attribute;
- wherein, for a respective attribute, said set attribute function in the IVI engine is operable to examine said range information for said respective attribute to determine whether the value to which the user application is attempting to set an attribute is within said one or more permissible ranges.
A computer-implemented method for controlling an instrument in an instrumentation system, wherein the instrumentation system includes a computer system comprising a CPU and memory, wherein the instrumentation system also includes at least one instrument coupled to the computer system, wherein the instrumentation system includes an instrument driver software architecture with improved range checking, the method comprising:
- a user application making a call to a function to control the instrument;
- executing one or more of a set attribute function or a get attribute function in an interchangeable virtual instrument (IVI) engine in response to said user application making the call, wherein the set attribute function is executable for setting attributes in the instrument and wherein the get attribute function is executable for obtaining values of attributes in the instrument, wherein said IVI engine further includes attribute information corresponding to each of said attributes of the instrument driver, wherein, for a plurality of said attributes, said attribute information includes range information which indicates one or more permissible ranges of said attribute;
- said set attribute function and said get attribute function in the IVI engine accessing said attribute information prior to setting and getting attributes in the instrument, wherein, for a respective attribute, said executing the set attribute function further comprises:
- said set attribute function in the IVI engine examining said range information for said respective attribute to determine whether the value to which the user application is attempting to set an attribute is within said one or more permissible ranges.
Dependencies are inferred from the claim text.