`
`(12) United States Patent
`Ousley et a].
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,184,922 B2
`Feb. 27, 2007
`
`(54) MEASUREMENT DEVICE THAT APPEARS
`TO A COMPUTER SYSTEM AS A FILE
`STORAGE DEVICE
`
`(75) Inventors: Timothy H. Ousley, Austin, TX (US);
`Mike Muecke, Austin, TX (US);
`Robert Watzlavick, Austin, TX (US)
`
`(73) Assignee: National Instruments Corporation,
`Ausnn’ TX (Us)
`
`(
`
`) Not1ce.
`
`Subject to any disclalmer, the term of this
`patent is extended or adjusted under 35
`U S C 1546)) by 63 days
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,987,530 A 11/1999 Thomson
`6,073,205 A
`6/2000 Thomson
`6,412,028 B1 *
`6/2002 Steed et a1. ................. .. 710/22
`6,789,030 B1
`9/2004 Coyle et a1.
`
`* Cited by examiner
`Primary ExamineriMarc S. HoiT
`Assistant ExamineriPhuong Huynh
`(74) Attorney] Agent] Or FirmiMeyenons Hood Kivlin
`KoWert & GoetZel, P.C.; JeiTrey C. Hood; Jason L. Burgess
`
`(21) Appl. No.: 11/068,547
`
`(57)
`
`ABSTRACT
`
`(22) Filed,
`
`(65)
`
`Feb 28 2005
`’
`prior publication Data
`
`US 2006/0047465 A1
`
`Mar- 2: 2006
`_
`_
`Related U‘s‘ Apphcatlon Data
`(60) Provisional application No. 60/605,205, ?led on Aug.
`27s 2004_
`
`(51) Int. Cl.
`(2006.01)
`G01D 1/00
`(52) US. Cl. ........................ .. 702/127; 702/57; 702/77;
`702/121; 702/122; 702/123; 702/188; 702/189;
`710/8; 710/72; 710/74
`(58) Field of Classi?cation Search .............. .. 702/127,
`702/57, 77, 121*123, 188, 189; 710/8, 13,
`710/22, 72*74
`See application ?le for complete search history.
`
`A measurement device operable to communicate With a
`computer system via ?les. The computer system may receive
`one or more ?les created by the measurement device, Where
`the ?les include measurement data generated by the mea
`surement device and may utilize the ?les to perform a
`measurement application. The measurement device may
`also be operable to receive a con?guration ?le from the
`Computer System and Con?gure or Comr 01 itself according to
`commands or settings therein. In one embodiment the mea
`surement device may appear to the computer system as a
`USB Mass Storage device, and the ?les created by the
`measurement device may appear as ?les stored on a USB
`Mass Storage deViCe~ Thus, the Computer System may Com‘
`municate With the measurement device to obtain the mea
`surement data ?les in the same standard manner in Which it
`WOQld Obtain ?les Stored 011 any other USB Mass Storage
`deV1Ce~
`
`33 Claims, 4 Drawing Sheets
`
`Connect measurement device to USB port of computer
`system
`M
`
`1
`
`Computer system queries measurement device for device
`information and receives infonnation indicating that the
`measurement device is a USB Mass Storage device
`3
`
`1
`
`Computer system con?gures itself to communicate with the
`measurement device as a USB Mass Storage device
`30
`
`1
`
`User or measurement application program stores
`con?guration tile on measurement device to con?gure the
`measurement device
`7
`
`l,——
`
`Measurement device generates measurement data and
`stores the measurement data in a data tile on the
`measurement device
`
`1
`
`Measurement application program reads data ?ie from the
`measurement device
`1
`
`L_____—
`
`Apple 1058
`U.S. Pat. 8,504,746
`
`
`
`U.S. Patent
`
`Feb. 27, 2007
`
`Sheet 1 M4
`
`US 7,184,922 B2
`
`
`
`522m 6538
`
`Mm
`
`U
`
`ow 83mm
`
`EQEQSmmQE
`
`02 a8
`
`625 E5
`
`
`
`U.S. Patent
`
`bCF
`
`24..
`
`US 7,184,922 B2
`
`Wrl
`
`_._.mamQWD
`
`MIllN8N2.
`2.EoEo5mmm_>_mm:
`
`7,mo_>mn_mu_>mn_
`
`
`
`aoEms_Ems.
`
`$4
`
`>_oEm_>_
`
`.o__o::o0
`
`«.9
`
`Qmammo...
`
`.m__o.EoOmam.
`
`afl
`
`E0
`
`an
`
`Wd|Fmam:o_mcm.axm_
`
`_H_.28
`
`
`:o_.._m_:co<Emom__mO
`3EmuMINA
`
`m>_.oEm...
`
`NW3
`
`82>
`
`mg
`
`Smmac
`
`N.O_n_
`
`
`
`
`
`
`U.S. Patent
`
`Feb. 27, 2007
`
`Sheet 3 of4
`
`US 7,184,922 B2
`
`
`
`Ema EmEmEwmmE
`
`(ww 2E
`
`
`
`Ema EmEmSwmmE
`
`mww 2E
`
`
`
`Ema EQEQEwmQE
`
`23w 2E
`
`% 2E cowmkzmccoo
`
`
`
`|w56wcco0 mm: \\
`ow 83mm EQEmSwmmE :
`
`
`
`m .mv_u_
`
`\ EmEmSwwmE
`\\\\\.\ 3 t5 \ boEmE c0523?‘
`
`
`I a
`
`
`
`U.S. Patent
`
`Feb. 27, 2007
`
`Sheet 4 M4
`
`US 7,184,922 B2
`
`Connect measurement device to USB port of computer
`system
`Q91.
`
`i
`Computer system queries measurement device for device
`information and receives infonnation indicating that the
`measurement device is a USB Mass Storage device
`22%
`
`Computer system con?gures itself to communicate with the
`measurement device as a USB Mass Storage device
`@
`
`7
`User or measurement application program stores
`con?guration ?le on measurement device to con?gure the
`measurement device
`101
`
`4
`
`Measurement device generates measurement data and
`stores the measurement data in a data ?le on the
`measurement device
`E1
`
`L
`
`Measurement application program reads data ?le from the
`measurement device
`&
`
`FIG. 4
`
`
`
`US 7,l84,922 B2
`
`1
`MEASUREMENT DEVICE THAT APPEARS
`TO A COMPUTER SYSTEM AS A FILE
`STORAGE DEVICE
`
`PRIORITY CLAIM
`
`This application claims bene?t of priority of US. Provi
`sional Application Ser. No. 60/605,205 titled “Measurement
`Device that Appears to a Computer System as a USB Mass
`Storage Device”, ?led Aug. 27, 2004, Whose inventors Were
`Timothy H. Ousley, Mike Muecke, and Robert WatZlavick.
`
`FIELD OF THE INVENTION
`
`The present invention relates to the ?eld of computer
`based test and measurement systems, and more particularly
`relates to a measurement device operable to provide mea
`surement data to a computer system via a measurement data
`?le. In one embodiment the measurement device may appear
`to the computer system as a USB Mass Storage device, or
`other ?le storage device, on Which the measurement data ?le
`is stored.
`
`DESCRIPTION OF THE RELATED ART
`
`Scientists and engineers often use test, measurement, or
`automation systems to perform a variety of functions,
`including measurement of a physical phenomenon or unit
`under test (UUT), test and analysis of physical phenomena,
`simulation, hardWare-in-the-loop testing, process monitor
`ing and control, control of mechanical or electrical machin
`ery, data logging, and laboratory research, to name a feW
`examples. The devices that interact With the physical sys
`tems under analysis may be collectively referred to as
`“measurement devices”.
`Measurement devices are often used in conjunction With
`computer systems. The computer system receives measure
`ment data from the measurement device and performs much
`of the processing, analysis, or control for the application.
`Some con?guration is usually necessary to make the mea
`surement device Work together correctly With the computer
`system. For example, many measurement devices require
`speci?c drivers to be installed on the computer system to
`enable communication With the measurement device.
`HoWever, scientists and engineers are often not highly
`trained in the art of computer system con?guration. Install
`ing the measurement device and associated drivers on the
`computer system can be a dif?cult and time-consuming task.
`Also, the necessary drivers for the measurement device are
`sometimes not readily available (e.g., When the measure
`ment device is moved to a location in the ?eld and the driver
`installation CD becomes lost or damaged), Which can result
`in doWntime of the measurement system.
`Another disadvantage associated With the traditional
`approach of requiring speci?c drivers for measurement
`devices is the cost of developing the drivers. Measurement
`device vendors may have to develop and test drivers for
`multiple operating systems and may also have to maintain
`the drivers or develop neW ones as the operating systems
`evolve. Therefore it Would be desirable to enable a computer
`system to communicate With a measurement device Without
`requiring the use of specialiZed drivers.
`The Universal Serial Bus (USB) technology that has
`become Widespread in recent years simpli?es the task of
`installing some devices on computer systems. When a
`device is connected to a host computer’s USB bus, the
`device is immediately recogniZed by the host computer,
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`dynamically enumerated, and assigned an address. The host
`computer and the device then perform a query/response
`protocol to enable the host computer to obtain information
`about the device, such as the class of device and various
`other details that the host computer needs to knoW for its
`operation.
`The USB standards de?ne various broad device classes
`for certain Well-knoWn kinds of devices, such as “Printer”,
`“Human Interface Device”, “Audio”, “Video”, “Mass Stor
`age”, etc. Operating systems that support USB technology
`typically include pre-loaded drivers for these USB device
`classes. If a neW USB device connected to the host computer
`belongs to one of these USB device classes then the host
`computer can often simply con?gure communication With
`the neW device to occur using the driver for the appropriate
`USB device class. Thus, the user is not required to install a
`driver speci?cally for the device, and a vendor is not
`required to develop a driver speci?cally for the device.
`As mentioned above, one standard USB device class is
`“Mass Storage”. A USB Mass Storage device can typically
`store ?les received from the host computer and/or store ?les
`for receipt by the host computer. Operation of USB Mass
`Storage devices is de?ned by various documents, such as the
`“Universal Serial Bus Mass Storage Class Control/Bulk/
`Interrupt (CBI) Transport” speci?cation and the “Universal
`Serial Bus Mass Storage Class Bulk-Only Transport” speci
`?cation.
`
`SUMMARY OF THE INVENTION
`
`According to one embodiment of the invention, a com
`puter system may receive measurement data from a mea
`surement device via one or more ?les generated by the
`measurement device. The measurement device may be
`coupled to the computer system and may receive a signal
`from a physical system or unit under test and generate
`measurement data based on the signal. The measurement
`device may be operable to create one or more ?les based on
`the measurement data it generates.
`The ?les may comprise ?les of any kind and may be
`structured in any desired Way. In one embodiment the ?les
`may be simple ?les that simply represent the measurement
`data itself, e.g., as binary ?les comprising binary values
`representing the measurement data values or human-read
`able text ?les indicating the measurement data values. In
`another embodiment the ?les may be more structurally
`complex or may include elements other than the measure
`ment data. For example, the measurement device may be
`operable to generate: spreadsheet ?les for particular spread
`sheet programs, Where the spreadsheet ?les include the
`measurement data; HTML, XML, or other markup language
`?les that include the measurement data; a ?le representing a
`graph, Where the graph visually indicates the measurement
`data; an executable program ?le that utiliZes the measure
`ment data; etc. These ?les may also include elements other
`than the measurement data. For example, an HTML ?le
`generated by the measurement device may not only include
`the measurement data but may also include text or graphic
`elements, e.g., as in a report ?le.
`Thus, in one embodiment the measurement device may
`differ from traditional measurement devices in that it not
`only acquires/generates the raW measurement data but also
`applies a higher-level structuring to the measurement data
`and/or generates one or more ?les based on the measurement
`data.
`A measurement application program executing on the
`computer system may receive the one or more ?les gener
`
`
`
`US 7,184,922 B2
`
`3
`ated by the measurement device and may read or analyze the
`?les to perform the desired measurement function. In one
`embodiment the measurement application program may
`possess knowledge of What kind of ?les are generated by the
`measurement device and may be operable to utiliZe these
`?les accordingly, e.g., to obtain, process, display and/or
`store the included measurement data. In the prior art, mea
`surement application programs typically do not receive
`measurement data in the form of ?les, but rather commu
`nicate With measurement devices to receive raW measure
`ment data.
`The ?le(s) generated by the measurement device may be
`stored in memory on the measurement device or may be
`dynamically generated as they are read by the computer
`system.
`In one embodiment the measurement device may also be
`operable to receive ?les from the computer system. In one
`embodiment the measurement device may be con?gured via
`a con?guration ?le received from the computer system. For
`example, a user or application on the computer system may
`create a con?guration ?le that includes various commands,
`settings, or attributes related to the con?guration or opera
`tion of the measurement device. In response to the con?gu
`ration ?le being sent from the computer system to the
`measurement device, the measurement device may be oper
`able to analyZe the con?guration ?le and con?gure or
`control itself according to the commands, settings, or
`attributes therein.
`In various embodiments, the measurement device may be
`coupled to the computer system in any of various Ways, and
`the computer system may communicate With the measure
`ment device using any technique to receive ?les generated
`by the measurement device or send ?les to the measurement
`device. According to one embodiment, the measurement
`device may comprise a USB device coupled to a USB bus
`of the computer system. In particular, in one embodiment the
`measurement device may appear to the computer system as
`a USB Mass Storage device, and the ?les generated by the
`measurement device may appear as ?les stored on a USB
`Mass Storage device. Thus, the computer system may com
`municate With the measurement device to obtain the gener
`ated ?les in the same standard manner in Which it Would
`obtain ?les stored on any other USB Mass Storage device.
`The computer system may execute an operating system
`that provides support for detecting and communicating With
`USB devices. In particular, the operating system may
`include softWare, e.g., a driver, for communicating With
`USB Mass Storage devices. In response to the measurement
`device being connected to the computer system, the com
`puter system may initiate a query/response protocol With the
`measurement device to obtain information about the mea
`surement device. The measurement device may inform the
`computer system that it belongs to the USB “Mass Storage”
`device class, as Well as provide other details that the
`computer system needs to knoW to communicate With the
`measurement device. The computer system may then con
`?gure itself to communicate With the measurement device as
`a USB Mass Storage device. For example, in one embodi
`ment the computer system may be operable to read mea
`surement data ?les from a memory of the measurement
`device using standard communication techniques for read
`ing ?les from USB Mass Storage devices. Similarly, in one
`embodiment the computer system may Write a con?guration
`?le or other ?le to a memory of the measurement device
`using standard communication techniques for Writing ?les to
`USB Mass Storage devices.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Thus, in an embodiment in Which the measurement device
`conforms to USB Mass Storage speci?cations, the measure
`ment device may advantageously be installed on the com
`puter system Without requiring a special driver for the
`measurement device to be installed. This may be advanta
`geous to the user in that he can easily and quickly set up the
`measurement device on any computer system With an oper
`ating system that supports USB devices, Without needing to
`possess or install specialiZed drivers for the measurement
`device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`A better understanding of the present invention can be
`obtained When the folloWing detailed description of the
`preferred embodiment is considered in conjunction With the
`folloWing draWings, in Which:
`FIG. 1 illustrates a measurement device coupled to a
`computer system, Where the computer system receives mea
`surement data from the measurement device via one or more
`?les;
`FIG. 2 is a block diagram representing one embodiment
`of the computer system illustrated in FIG. 1;
`FIG. 3 is a block diagram representing one embodiment
`of the measurement device illustrated in FIG. 1, in Which the
`measurement device comprises a USB device; and
`FIG. 4 is a ?owchart diagram illustrating one embodiment
`of a method for utiliZing the measurement device in a
`measurement application.
`While the invention is susceptible to various modi?ca
`tions and alternative forms, speci?c embodiments thereof
`are shoWn by Way of example in the draWings and are herein
`described in detail. It should be understood, hoWever, that
`the draWings and detailed description thereto are not
`intended to limit the invention to the particular form dis
`closed, but on the contrary, the intention is to cover all
`modi?cations, equivalents and alternatives falling Within the
`spirit and scope of the present invention as de?ned by the
`appended claims.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`Terms
`The folloWing is a glossary of terms used in the present
`application:
`Memory MediumiAny of various types of memory
`devices or storage devices. The term “memory medium” is
`intended to include an installation medium, e.g., a CD
`ROM, ?oppy disks, or tape device; a computer system
`memory or random access memory such as DRAM, DDR
`RAM, SRAM, EDO RAM, Rambus RAM, etc.; or a non
`volatile memory such as a magnetic media, e.g., a hard
`drive, or optical storage, or other type of memory such as
`FLASH, EEPROM, etc. The memory medium may com
`prise other types of memory as Well, or combinations
`thereof. In addition, the memory medium may be located in
`a ?rst computer in Which the programs are executed, or may
`be located in a second different computer Which connects to
`the ?rst computer over a netWork, such as the Internet. In the
`latter instance, the second computer may provide program
`instructions to the ?rst computer for execution. The term
`“memory medium” may include tWo or more memory
`mediums Which may reside in different locations, e.g., in
`different computers that are connected over a netWork.
`
`
`
`US 7,184,922 B2
`
`5
`Carrier Mediumia memory medium as described above,
`as well as signals such as electrical, electromagnetic, or
`digital signals, conveyed via a communication medium such
`as a bus, network and/or a wireless link.
`Programmable Hardware Elementiincludes various
`types of programmable hardware, recon?gurable hardware,
`programmable logic, or ?eld-programmable devices (FPDs),
`such as one or more FPGAs (Field Programmable Gate
`Arrays), or one or more PLDs (Programmable Logic
`Devices), such as one or more Simple PLDs (SPLDs) or one
`or more Complex PLDs (CPLDs), or other types of pro
`grammable hardware. A programmable hardware element
`may also be referred to as “recon?gurable logic”.
`Mediumiincludes one or more of a memory medium,
`carrier medium, and/or programmable hardware element;
`encompasses various types of mediums that can either store
`program instructions/data structures or can be con?gured
`with a hardware con?guration program.
`Programithe term “program” is intended to have the full
`breadth of its ordinary meaning. The term “program”
`includes 1) a software program which may be stored in a
`memory and is executable by a processor or 2) a hardware
`con?guration program useable for con?guring a program
`mable hardware element.
`Software Programithe term “software program” is
`intended to have the full breadth of its ordinary meaning,
`and includes any type of program instructions, code, script
`and/or data, or combinations thereof, that may be stored in
`a memory medium and executed by a processor. Exemplary
`software programs include programs written in text-based
`programming languages, such as C, C++, Pascal, Fortran,
`Cobol, Java, assembly language, etc.; graphical programs
`(programs written in graphical programming languages);
`assembly language programs; programs that have been
`compiled to machine language; scripts; and other types of
`executable software. A software program may comprise two
`or more software programs that interoperate in some man
`ner.
`Hardware Con?guration Programia program, e.g., a
`netlist or bit ?le, that can be used to program or con?gure a
`programmable hardware element.
`Graphical User Interfaceithis term is intended to have
`the full breadth of its ordinary meaning. The term “Graphi
`cal User Interface” is often abbreviated to “GUI”. A GUI
`may comprise only one or more input GUI elements, only
`one or more output GUI elements, or both input and output
`GUI elements.
`The following provides examples of various aspects of
`GUIs. The following examples and discussion are not
`intended to limit the ordinary meaning of GUI, but rather
`provide examples of what the term “graphical user inter
`face” encompasses:
`AGUI may comprise a single window having one or more
`GUI elements, or may comprise a plurality of individual
`GUI elements (or individual windows each having one or
`more GUI elements), wherein the individual GUI elements
`or windows may optionally be tiled together.
`Graphical User Interface Element (GUI element)ian
`element of a graphical user interface, such as for providing
`input or displaying output. Exemplary graphical user inter
`face elements comprise input controls and output indicators.
`Input Controlia graphical user interface element for
`providing user input to a program. Exemplary input controls
`comprise dials, knobs, sliders, input text boxes, etc.
`Output Indicatoria graphical user interface element for
`displaying output from a program. Exemplary output indi
`cators include charts, graphs, gauges, output text boxes,
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`numeric displays, etc. An output indicator is sometimes
`referred to as an “output control”.
`Computer Systemiany of various types of computing or
`processing systems, including a personal computer system
`(PC), mainframe computer system, workstation, network
`appliance, Internet appliance, personal digital assistant
`(PDA), television system, grid computing system, or other
`device or combinations of devices. In general, the term
`“computer system” can be broadly de?ned to encompass any
`device (or combination of devices) having at least one
`processor that executes instructions from a memory
`medium.
`Measurement Deviceiincludes instruments, data acqui
`sition devices, smart sensors, and any of various types of
`devices that are operable to acquire and/or store data. A
`measurement device may also optionally be further operable
`to analyZe or process the acquired or stored data. Examples
`of a measurement device include an instrument, such as a
`traditional stand-alone “box” instrument, a computer-based
`instrument (instrument on a card) or external instrument, a
`data acquisition card, a datalogger, a device external to a
`computer that operates similarly to a data acquisition card,
`a smart sensor, one or more DAQ or measurement cards or
`modules in a chassis, an image acquisition device, such as an
`image acquisition (or machine vision) card (also called a
`video capture board) or smart camera, a motion control
`device, a robot having machine vision, and other similar
`types of devices. Exemplary “stand-alone” instruments
`include oscilloscopes, multimeters, signal analyZers, arbi
`trary waveform generators, spectroscopes, and similar mea
`surement, test, or automation instruments.
`A measurement device may connect to a host computer or
`computers during, before, and/or after acquiring data, or
`may never connect to a host computer.
`A measurement device may be further operable to per
`form control functions, e.g., in response to analysis of the
`acquired or stored data. For example, the measurement
`device may send a control signal to an external system, such
`as a motion control system or to a sensor, in response to
`particular data. A measurement device may also be operable
`to perform automation functions, i.e., may receive and
`analyZe data, and issue automation control signals in
`response.
`Measurement Dataidata generated by a measurement
`device. For example, the measurement device may receive a
`signal from a unit under test or a physical system and may
`generate measurement data based on the signal. The mea
`surement device may be coupled to another device, e.g., a
`computer system, that receives the measurement data gen
`erated by the measurement device.
`Live measurement dataimeasurement data that is gen
`erated continuously or quasi-continuously by a measure
`ment device. For example, live measurement data may
`comprise a stream of data elements (e.g., ?oating point
`numbers or other elements) generated in rapid succession by
`the measurement device. Examples of live measurement
`data include data that is generated in real time based on a
`physical signal, e.g., where data values are generated in a
`live or streaming manner. One speci?c example of live
`measurement data is data that represents a continuous wave
`form.
`FIG. 14Computer System
`FIG. 1 illustrates a computer system 82 operable to
`execute a program that performs a measurement function.
`This program is also referred to herein as a “measurement
`application program”. As shown, a measurement device 80
`
`
`
`US 7,184,922 B2
`
`7
`may be coupled to the computer system 82. The measure
`ment device 80 may receive a signal from a physical system
`or unit under test 150 and may generate measurement data
`based on the signal. In various embodiments, the measure
`ment device 80 may generate measurement data based on
`any of various kinds of signals received from any of various
`kinds of physical systems or units under test 150.
`The measurement application program executing on the
`computer system 82 may receive the measurement data
`generated by the measurement device 80 and may utiliZe the
`measurement data to perform the measurement function.
`The measurement data may be utiliZed to perform any of
`various kinds of measurement functions, such as test and/or
`analysis of the physical system or unit under test 150,
`simulation, hardWare-in-the-loop testing, process monitor
`ing and control, control of mechanical or electrical machin
`ery, data logging, laboratory research, etc.
`According to one embodiment, the measurement device
`80 may be operable to generate one or more ?les based on
`the measurement data it generates. The ?les may comprise
`?les of any kind and may be structured in any desired Way.
`In one embodiment the ?les may be simple ?les that simply
`represent the measurement data itself, e.g., as binary ?les
`comprising binary values representing the measurement data
`values or human-readable text ?les indicating the measure
`ment data values.
`In another embodiment the ?les may be more structurally
`complex or may include elements other than the measure
`ment data. For example, the measurement device 80 may be
`operable to generate: spreadsheet ?les for particular spread
`sheet applications, Where the spreadsheet ?les include the
`measurement data; HTML, XML, or other markup language
`?les that include the measurement data; a ?le representing a
`graph, Where the graph visually indicates the measurement
`data; an executable program ?le that utiliZes the measure
`ment data; etc. These ?les may also include elements other
`than the measurement data. For example, an HTML ?le
`generated by the measurement device 80 may not only
`include the measurement data but may also include text or
`graphic elements, e.g., as in a report ?le. Thus, in one
`embodiment the measurement device 80 may differ from
`traditional measurement devices in that it not only generates
`the raW measurement data but also applies a higher-level
`structuring and/or interpretation to the measurement data
`and generates a ?le based on the measurement data.
`The measurement application program executing on the
`computer system 82 may receive the one or more ?les
`generated by the measurement device 80 and may read or
`analyZe the ?les to perform the desired measurement func
`tion. The measurement application program may possess
`knoWledge of What kind of ?les are generated by the
`measurement device 80 and may be operable to utiliZe these
`?les accordingly, e.g., to obtain, process, display and/or
`store the included measurement data. In the prior art, mea
`surement application programs typically do not receive
`measurement data in the form of ?les, but rather commu
`nicate With measurement devices to receive raW measure
`ment data.
`In various embodiments, the measurement device 80 may
`be coupled to the computer system 82 in any of various
`Ways, and the computer system 82 may communicate With
`the measurement device 80 using any technique to receive
`the ?les generated by the measurement device 80. According
`to one embodiment, the measurement device 80 may com
`prise a USB device coupled to a USB bus of the computer
`system 82. In particular, in one embodiment the measure
`ment device 80 may appear to the computer system 82 as a
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`USB device of a ?rst type, e.g., as a USB Mass Storage
`device, and the ?les generated by the measurement device
`80 may appear as ?les stored on a USB Mass Storage device.
`Thus, the computer system 82 may communicate With the
`measurement device 80 to obtain the generated ?les in the
`same standard manner in Which it Would obtain ?les stored
`on any other USB Mass Storage device. Embodiments in
`Which the measurement device 80 appears as a USB Mass
`Storage device are described in further detail beloW.
`As used herein, the term USB is intended to include prior,
`current, and future versions of the Universal Serial Bus
`(U SB) standard and similar standards.
`In another embodiment the measurement device 80 may
`not appear to the computer system 82 as a USB Mass
`Storage device but may appear as another type of ?le storage
`device, e.g., a ?le storage device that uses communication
`standards other than USE. As used herein, a ?le storage
`device may comprise a device that appears to a computer
`system as a device on Which ?les can be stored and/or from
`Which ?les can be received. For some types of ?le storage
`devices, the computer system may be able to automatically
`detect connection of the ?le storage device to the computer
`system and may be operable to automatically con?gure itself
`to communicate With the ?le storage device, e.g., by using
`a standard ?le storage device driver provided by or built in
`to the operating system of the computer system.
`Referring again to FIG. 1, the computer system 82 may
`include a display device. For example, FIG. 1 shoWs a GUI
`of the measurement application program displayed on the
`display device of the computer system 82. The computer
`system 82 may also include a memory medium(s) on Which
`programs or softWare components may be stored. For
`example, the memory medium may store the measurement
`application program executed by the computer system 82.
`The memory medium may also store operating system
`softWare. For example, the operating system may provide
`support for automatically detecting and communicating With
`USB devices or other kinds of devices. In particular, the
`operating system may include softWare, e.g., a driver, for
`communicating With USB Mass Storage devices or other ?le
`storage devices. Thus, in an embodiment in Which the
`measurement device 80 conforms to USB Mass Storage
`speci?cations or other standard ?le storage device speci?
`cations, the measurement device 80 may advantageously be
`installed on the computer system 82 Without requiring a
`special driver for the measurement device 80 to be installed,
`as described beloW.
`
`FIG. 24Computer System Block Diagram
`FIG. 2 is a block diagram representing one embodiment
`of the computer system 82 illustrated in FIG. 1. It is noted
`that any type of computer system con?guration or architec
`ture can be used as desired, and FIG. 2 illustrates a repre
`sentative PC embodiment. It is also noted that the computer
`system may be a general purpose computer system, a
`computer implemented on a card installed in a chassis, or
`other types of embodiments. Elements of a computer not
`necessary to understand the present description have been
`omitted for simplicity.
`The computer may include at least one central processing
`unit or CPU (processor) 160 Which is coupled to a processor
`or host bus 162. The CPU 160 may be any of various types,
`including an x86 processor, e. g., a Pentium class, a PoWerPC
`processor, a CPU from the