Plug-And-Play Device And Method Of Using The Same

Information

  • Patent Application
  • 20080005371
  • Publication Number
    20080005371
  • Date Filed
    May 26, 2006
    18 years ago
  • Date Published
    January 03, 2008
    17 years ago
Abstract
A plug-and-play device providing a set of functionality comprises a plug-and-play interface, storage, and software stored in the storage. The software is automatically executed by a computer when the plug-and-play device is connected thereto via the plug-and-play interface. The software detects disconnection of the plug-and-play device from the computer and terminates execution in response thereto. The computer does not persistently store the software thereafter.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will now be described, by way of example only, with reference to the attached Figures, wherein:



FIG. 1 shows a plug-and-play device comprising a touch panel, a controller and a cable, coupled to a computer;



FIG. 2 shows a schematic diagram of the cable of FIG. 1; and



FIG. 3 is a flow chart of the general operation of the plug-and-play device of FIG. 1.





DETAILED DESCRIPTION OF THE EMBODIMENTS


FIG. 1 illustrates a system 20 comprising a plug-and-play device 24 for receiving and digitizing input. In this embodiment, the plug-and-play device 24 includes a touch panel 28, a controller 32 and a cable 36. Touch panel 28 is of the type manufactured and sold by SMART Technologies, Inc. of Calgary, Alberta under the name SMARTBoard. The controller 32 controls the operation of the touch panel 28 and is in communication with a computer 40 via the cable 36. An LCD projector 44 is coupled to the computer 40 via a VGA cable 48. The computer 40 controls the LCD projector 44 to project images otherwise presented on a display of the computer 40 onto the touch panel 28. The projector 33 may be positioned in front of or behind the touch panel 28.


The touch panel 28 provides a user with the ability to interact with the projected images via a pointer, such as a marker or a finger, for the purpose of providing input. The touch panel requires no extra software other than that provided by the operating system to work as a mouse. The functionality of the touch panel is greatly enhanced by additional software not available on the operating system, as will be described below.


The controller 32 includes a processor (not shown) that executes firmware stored in non-volatile storage. Generally, the firmware causes the controller 32 to operate in one of two operational modes. In an initial mode, the controller 32 operates two USB profiles, namely an absolute mouse human interface device (“HID”) profile and a SMARTBoard HID profile. The absolute mouse HID profile enables the controller 32 to relay absolute position information for a pointer, as it is detected by the touch panel 28, along with basic mouse functions. The SMARTBoard HID is a proprietary device class that enables enhanced functionality for the touch panel 28. The enhanced functionality includes all of the functionality available in the absolute mouse HID device class, plus inking information, additional tool information (buttons, eraser, pen selection, etc.) and two-way communications with the controller 32. In a “native” operating mode, the controller 32 terminates the absolute mouse HID profile and only operates the SMARTBoard HID profile.


The components of the cable 40 are described with reference to FIG. 2. The cable 40 includes a USB hub component 52 that has a first USB interface 56 for connection to a USB cable 60 that extends to the touch panel 28, and a second USB interface 64 for connection to a USB cable 68 that extends to the computer 40. Both the first and second USB interfaces 56, 64 are in communication with a USB hub 72.


Also in communication with the USB hub 72 is storage 76, namely flash memory, that is configured to operate in accordance with the compact disk (“CD”) HID profile. The CD HID profile enables storage 76 to behave like a CD drive. Storage 76 stores a set of software applications, including a user application (SMARTBoardTools.exe), a service (SMARTBoardService.exe), a launcher application (SBLauncher.exe), a calibration application (SMARTBoardCalibrate.exe) and an autorun.inf file that references the launcher application. Further, the storage 76 can also store calibration settings associated with the configuration of the system 20. In particular, the calibration settings include data for mapping input received by the touch panel 28 with output projected by the LCD projector 44 onto the surface of the touch panel 28.


The position of the LCD projector 44 and the touch panel 28 are generally fixed relative to one another. As a result, once their relative positions are determined, they do not have to be re-determined.


The SMARTBoardTools.exe application permits a richer set of features than basic mouse functionality. It contains a number of presentation applications, integration into popular drawing and presentation applications, and an application to allow users to ink over documents in any application or the desktop of the graphical user interface of the computer 40 that is projected onto and displayed on the surface of the touch panel 28.


The method of operation of the plug-and-play device 24 is shown in FIG. 3. When the plug-and-play device 24 is connected to the computer 40 (step 104), and the connection of the plug-and-play device 24 to the computer 40 is detected by the operating system of the computer 40, the computer 40 queries the plug-and-play device 24 to determine what functionality is provided by the plug-and-play device 24 (step 108). As the USB hub 72 is connected to storage 76 as well as the controller 32, the USB hub 72 queries each of these two units to determine what profiles are available. The storage 76 responds by indicating that it supports the CD HID profile. The controller 32, which is in the initial mode, responds by indicating that it supports the absolute mouse HID profile and the SMARTBoard HID profile.


The computer 40, upon receiving this information, detects that the following functionality is available for the plug-and-play device 24: the absolute mouse HID profile, the SMARTBoard HID profile and CD HID profile (step 112). The computer 40 loads the drivers for the devices recognized by the operating system (i.e. for which the operating system has drivers); namely, the absolute mouse HID and CD HID (step 116). As each of these sets of functionality are detected by the computer 40, the computer 40 recognizes them as separate devices. The computer 40 does not load the SMARTBoard HID profile as the operating system of the computer 40 does not possess a corresponding driver. The computer 40 then assigns the detected CD HID device the next available drive letter (step 120).


Computer 40 is configured as the majority of computers are by default; that is, it is configured to search CD HID devices for a file named autorun.inf that will direct the computer 40 to automatically execute a specific application upon connection to a CD HID device. Accordingly, computer 40 queries the CD HID device for autorun.inf and, upon receiving it, loads and executes the instructions contained therein (step 124). The autorun.inf file is used by the Microsoft Windows® family of operating systems to execute, under certain conditions, the instructions contained therein upon detection of certain types of storage devices. For example, under certain conditions, the autorun.inf file is executed when a CD-ROM disk, containing the autorun.inf file, is inserted into the bay of a CD-ROM drive. Execution typically begins without delay after the information in the autorun.inf file becomes available to or is recognized by the operating system.


The autorun.inf file contains a pointer to the executable launcher application, SBLauncher.exe. Upon parsing the autorun.inf file, the computer 40 uses the pointer to obtain the SBLauncher.exe application from the storage 76, along with a set of corresponding dynamic link libraries (“DLLs”), and executes it (step 128). The SBLauncher.exe application, in turn, directs the computer 40 to copy two executable files, SMARTBoardTools.exe and SMARTBoardService.exe, along with some associated DLLs, from the storage 76 to a temporary directory on the computer 40 and execute them (step 132). Upon execution of the SMARTBoardService.exe service, the SBLauncher.exe application terminates execution and the SMARTBoardService.exe service directs the computer 40 to send a command to the controller 32 to switch to the SMARTBoard HID mode (step 136).


Upon launch, the SMARTBoardTools.exe application queries and obtains from storage 76 of the plug-and-play device 24 the calibration settings and other settings (step 140). The calibration settings enable the SMARTBoardTools.exe application to map touch input received from the touch panel 28 to the computer display coordinate system. The other settings include pen tray settings, COM port settings, contact filter settings and user settings for some of the software applications. All of these settings are stored in a standard Windows INI file. Further, several XML files are used to store layout and menu settings for various applets forming part of the SMARTBoardTools.exe application. These applets provide a floating window of toolbuttons for accessing various functionality, an on-screen keyboard, etc. These layout and menu settings are stored in XML files in the storage 76 of the plug-and-play device 24, and are loaded and saved in the user directory “C:\Documents and Settings\<user name>\Application Data\SMART Technologies Inc.\SMARTBoard Software\” during execution of the SMARTBoardTools.exe application, where <user name> is the login name of the current user.


Upon obtaining the calibration settings, the SMARTBoardTools.exe application permits user interaction with the touch panel 28 to be registered spatially relative to the images projected on the surface of the touch panel 28 by the LCD projector 44. During execution, some settings are stored in the “HKEY_CURRENT_USER” key of the registry and, in particular, in the “Software\SMART Technologies Inc.\SMARTBoard Software\” subkey. These settings include application window positions, user settings for each application and a list of recently used files. The “HKEY_CURRENT_USER” key is used as there are generally no restrictions on modifications made to this key. In addition, if there are no access restrictions on the “HKEY_LOCAL_MACHINE” key, spell checker settings are written there.


Upon termination of the session, the computer 40 can be unplugged from the plug-and-play device 24 and removed. When the plug-and-play device 24 is disconnected, the computer 40 notifies the SBLauncher.exe application (step 144). The SBLauncher.exe application proceeds to terminate execution of and delete the SMARTBoardTools.exe application, the SMARTBoardService.exe service, the various related DLLs and settings from the temporary locations on the computer 40 and then does the same for itself (step 148). Before termination of execution of the SBLauncher.exe application, it writes the user settings stored in “C\Documents and Settings\<user name>\Application Data\SMART Technologies Inc.\SMARTBoard Software\” to XML files which it then stores in storage 76 of the plug-and-play device 24. The SBLauncher.exe application then deletes these settings and those stored in the registry. Once the settings and files are deleted from the computer 40, the SBLauncher.exe application places an entry in the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce registry key which tells Windows to delete the SBLauncher.exe application when the user logs in next, and then terminates execution. If, instead, the user stops the SMARTBoard software by closing the SMARTBoardTools.exe application, then the SBLauncher.exe application executes the instance of itself found in the storage 76 of the plug-and-play device 24 and terminates execution of itself. In response, the SBLauncher.exe application is executed from the plug-and-play device 24 and deletes the instance of the SBLauncher.exe application stored on the computer 40.


As noted above, in order for input made relative to an image projected onto the touch panel 28 by the LCD projector 44 to be registered spatially with the image projected, the system 20 is calibrated. As the spatial relation between the image projected by the LCD projector 44 and the touch panel 28 changes only when the LCD projector 44 and the touch panel 28 are moved relative to one another, calibration is generally performed after the touch panel 28 and LCD projector 56 are fixed at a location. In order to calibrate the system 20, the SMARTBoardCalibrate.exe application is launched. The user is then prompted to touch a number of points on the graphical user interface of the computer 40 that is displayed on the surface of the touch panel 28. The resulting touch panel output is used to map the raw touch coordinates registered by the touch panel 28 to the computer display coordinate system. The newly-captured calibration settings are then recorded in the Windows INI file so that they can be used by other computers to map input received from the plug-and-play device 24 with the graphical user interface presented thereon.


While the system has been described with specificity to USB, other types of plug-and-play architectures can be utilized. For example, those of skill in the art will readily understand how to adapt the system described herein for use with FireWire and PCMCIA architectures and the like.


The drivers for the plug-and-play device can be stored on a separate CD HID device or the like. Similarly, the calibration settings can be stored on a separate removable storage, such as a USB flash drive, rewritable optical disk, etc. In this manner, existing calibration settings can be made available to other computers that are coupled to the plug-and-play device. Alternatively, the calibration settings can be stored on the touch panel's controller using the two-way communication enabled by the SMARTBoard HID profile.


While the system has been described with reference to a touch panel, the system can be any one of a number of other devices, such as cameras, sound systems, etc. For example, where the plug-and-play device is a sound system, the settings can include the output volumes for each speaker that have been previously calibrated to desired levels for the set configuration.


Although an embodiment has been described with reference to the accompanying drawings, those of skill in the art will appreciate that modifications and variations may be made without departing from the spirit and scope thereof as defined by the appended claims.

Claims
  • 1. A plug-and-play device providing a set of functionality, comprising: a plug-and-play interface;storage; andsoftware stored in said storage, said software being automatically executed by a computer when said plug-and-play device is connected thereto via said plug-and-play interface, said software being operable to detect disconnection of said plug-and-play device from said computer and terminate execution in response thereto, said computer not persistently storing said software thereafter.
  • 2. The plug-and-play device of claim 1, wherein said software enables said computer to access the set of functionality provided by said plug-and-play device.
  • 3. The plug-and-play device of claim 1, wherein said plug-and-play interface is a universal serial bus interface.
  • 4. The plug-and-play device of claim 3, wherein said storage stores an autorun.inf file that specifies said software for execution.
  • 5. The plug-and-play device of claim 4, wherein said plug-and-play device includes the CD HID profile.
  • 6. The plug-and-play device of claim 3, wherein said software is copied to a temporary location on said computer and executed therefrom, and is terminated and deleted upon disconnection of the plug-and-play device from the computer.
  • 7. The plug-and-play device of claim 6, wherein said software registers a request with the operating system of said computer to delete said software at a later time.
  • 8. The plug-and-play device of claim 1, wherein said software is copied to a temporary location on said computer and executed therefrom, and is terminated and deleted upon disconnection of the plug-and-play device from the computer.
  • 9. The plug-and-play device of claim 8, wherein said software registers a request with the operating system of said computer to delete said software at a later time.
  • 10. The plug-and-play device of claim 8, wherein said software executes the instance of said software stored in said storage of said plug-and-play device, terminates its own execution and the instance of said software executing from said storage of said plug-and-play device deletes said software from said temporary location on said computer.
  • 11. A method of using a plug-and-play device with a computer, comprising: detecting connection of the plug-and-play device to said computer;automatically locating software stored in memory of said plug-and-play device specified for execution;executing said software with said computer; andterminating execution of said software upon disconnection of said plug-and-play device from said computer.
  • 12. The method of claim 11, wherein said executing comprises copying said software to storage on said computer.
  • 13. The method of claim 12, further comprising: registering a request with the operating system of said computer to delete said software at a later time.
  • 14. A plug-and-play device, comprising: storage; andsettings stored in said storage, said settings being associated with a set of functionality.
  • 15. The plug-and-play device of claim 14, wherein said settings are calibration settings.
  • 16. The plug-and-play device of claim 14, wherein said settings are user settings.
  • 17. The plug-and-play device of claim 14, further comprising: software stored in said storage, said software providing access to said set of functionality when said plug-and-play device is connected to a computer.
  • 18. The plug-and-play device of claim 14, wherein said set of functionality is provided by said plug-and-play device.
  • 19. The plug-and-play device of claim 15, wherein said set of functionality is an input interface provided by said plug-and-play device.
  • 20. The plug-and-play device of claim 19, further comprising: software stored in said storage, said software being executable on a computer to which said plug-and-play device is connected to provide access to said set of functionality.
  • 21. The plug-and-play device of claim 20, wherein said software references said calibration settings during execution.
  • 22. The plug-and-play device of claim 21, wherein said software is automatically executed by said computer when said plug-and-play device is connected thereto via a plug-and-play interface thereof, said software detecting disconnection of said plug-and-play device from said computer and terminating execution in response thereto, said computer not persistently storing said software thereafter.
  • 23. The plug-and-play device of claim 15, further comprising: calibration software for setting said calibration settings.
  • 24. The plug-and-play device of claim 15, further comprising a touch panel on which images are projected, said calibration settings mapping touch panel and displayed image coordinate systems.
  • 25. A plug-and-play device for receiving input, comprising: a plug-and-play interface;a touch panel on which a computer-generated image is displayed;storage; andcalibration settings stored in said storage and mapping touch panel and computer-generated image coordinate systems.
  • 26. The plug-and-play device of claim 25, wherein said computer-generated image is a graphical user interface.
  • 27. The plug-and-play device of claim 25, wherein said plug-and-play interface is a universal serial bus interface.
  • 28. The plug-and-play device of claim 25, further comprising: calibration software stored in said storage for execution by a computer to set said calibration settings.
  • 29. A method of adjusting the function of a computer, comprising: retrieving calibration settings from an external device associated with functionality provided by the external device; andadjusting the function of said computer using said calibration settings.
  • 30. The method of claim 29, further comprising: receiving input from said external device,wherein said adjusting comprises adjusting the mapping of said input onto an area of input using said calibration settings.
  • 31. A plug-and-play device providing a set of functionality, comprising: a plug-and-play interface;storage; andsoftware stored in said storage, said software being copied to said computer and executed therefrom automatically when said plug-and-play device is connected to said computer, said software providing access to the set of functionality provided by said plug-and-play device.