`Ard
`
`US005915106A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,915,106
`Jun. 22, 1999
`
`[54] METHOD AND SYSTEM FOR OPERATING A [57]
`SCANNER WHICH EMULATES A DISK
`DRIVE
`
`[75] Inventor; Mark Ard, Santa Clara, Calif
`
`[73] Assignees; Ricoh Company, Ltd” Tokyo, Japan;
`Ricoh Corporation, San Jose, Calif
`
`[21] Appl' NO‘: 08/821’343
`[22] Filed
`Mar 20 1997
`'
`l
`’
`[51] Int. Cl.6 ........................... .. G06F 13/10; G06F 13/12
`[52] US. Cl. ......................... .. 395/500; 395/308; 395/309
`_
`Fleld of Search ................................... ..
`/
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,508,821
`
`4/1996 Murata .................................. .. 358/442
`
`Primary Examiner—Kevin J. Teska
`Assistant Examiner—Hugh Jones
`Attorney, Agent, or Firm—Oblon, Spivak, McClelland,
`Maier & Neustadt, PC.
`
`ABSTRACT
`_
`_
`_
`_
`_
`_
`A scanner is provided With a disk drive emulator and is
`attached to a general purpose computer via a SCSI bus. The
`disk drive emulator provides signals such that the general
`purpose computer identi?es the scanner as a disk drive.
`Applications running on the general purpose computer direct
`operation of the scanner via standard operating system disk
`drive commands. To facilitate the transfer of commands to
`the scanner, a scanner parameters setup program, also
`knoWn as an Application Program Interface (API), is pro
`vided that is resident on the scanner and accessible to the
`general purpose computer via the disk drive emulator. When
`executed, the scanner parameters setup program provides a
`graphical? Orient“? 196ml gllovhvting a usertto fntetr pasam
`e ers suc as reso u 1on, r1g ness, con ras , e c.
`nce
`
`entered, the parameters are Saved to the Scanner Via a Save command. An application running on the general
`
`purpose computer then operates the scanner in accordance
`With the parameters thus saved by performing a File Open
`command on a ?le visible to the general purpose computer
`via the disk drive emulator and corresponding to the saved
`parameters. Image data resulting from operation of the
`scanner is transferred from the scanner via the disk drive
`emulator to the general purpose computer as if a ?le is being
`opened. Alternatively, the scanner is operated upon the
`saving of the parameters to the scanner, and image data
`resulting therefrom is saved as a ?le to a storage device
`accessible to the general purpose computer.
`
`22 Claims, 10 Drawing Sheets
`
`@
`
`USER EXECUTES SCANNER PARAMETERS /61
`SETUP PROGRAM.
`
`USER ENTERS PARAMETERS
`(RESOLUTION, BRICHTNESS, CONTRAST, ETC).
`
`/53
`
`SETUP PROGRAM WRIIES PARAMETERS I0
`SCANNER VIA FILE SAVE COMMAND.
`
`65
`
`USER PERFORMS AN APPLICATION FILE
`OPEN COMMAND.
`
`67
`/
`
`SCANNER FIRMWARE OPERATES SCANNER /6g
`BASED ON PARAMETERS CORRESPONDING TO
`THE FILE OPEN COMMAND, AND IMACE
`DATA IS TRANSFERRED TO THE APPLICATION.
`
`QTE
`
`HUAWEI EX. 1106 - 1/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 1 0f 10
`
`5,915,106
`
`5
`
`%
`
`\
`
`//////////////////////
`
`f3
`
`1\
`
`,J-__—__Q_, I:
`
`FIG. 7
`
`PRIOR ART
`
`HUAWEI EX. 1106 - 2/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 2 0f 10
`
`5,915,106
`
`_
`
`
`
`/, ............................... _ 20520; “$28 _
`
`_ NZ 5? 022% _ _ n R _ 2 m _ _
`
`
`
` Rm‘ QFNNEQWN N .QNK
`
`m _ 8 F l | l l | I | I | I I | I I | I l l | | | || L _ r ||||||||||||||||||||||||||||||| | .. L
`
`
`_ 52% as / E5? 55% _ _ _ _ @255 a u _
`as 5% ga 55% _ _
`
`n " ENE " _
`
`/ _ / \ _ _
`
`_ _
`
`_ _| | I | l l l | | i | | l | l l | I | I | | | I |_ _
`
`HUAWEI EX. 1106 - 3/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 3 0f 10
`
`5,915,106
`
`I ]—
`|
`I
`
`_| 15
`GRAPHICS ‘ = SCSI : L SCSI
`APPLICATION
`DRIVER
`CARD
`\
`\
`13
`17
`
`I
`=.
`l
`I
`I
`l
`I
`|
`|
`SCANNER
`I
`l
`l
`I
`|
`PARAMEIERS
`I
`l
`I
`|
`PSRES'RLIJITI
`I
`GENERAL
`l
`| I_
`I
`OPERATING SYSTEM
`I__—_%I—_—___—_ _____J
`A
`TV
`\2
`
`HUAWEI EX. 1106 - 4/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 4 0f 10
`
`5,915,106
`
`33
`
`31 I
`
`RICOH SCANNER OONIROI MENU
`
`V
`
`PIXEI OEPIII
`
`8 BIT ORAY
`
`<7
`
`SOAN
`
`RESOIIIIION
`
`2OO PER INOII V
`
`OPEN FILE
`
`PAOE SIZE
`
`8 1/2 x II IN. V
`
`SAvE EIEE
`
`BRIOIIINESS
`
`<1
`
`OONIRASI
`
`OANNA
`
`OANOEI
`
`E>
`
`E>
`
`SHARP
`
`V
`
`
`
`EIIIER FILE NAME
`
`
`
`NIP IIIOOOOI
`
`
`
`<7 V
`
`
`
`EEOOER EIAIBEO 0
`
`FILE IYPE
`
`IIE O4
`
`V
`
`FIG’. 4
`
`HUAWEI EX. 1106 - 5/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 5 0f 10
`
`5,915,106
`
`
`
`?zz/am 025135 2% Vma
`
`EzzSm
`
`SEQ
`
`A
`
`5%
`Q0
`
`2220525 /
`
`/
`on
`
`5%
`
`@2535 2% VZQ
`
`2 E05:
`
`
`
`m? \/ 5,22%
`
`5% moéom
`
`5% SE05
`
`A
`
`mg mow
`
`HUAWEI EX. 1106 - 6/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 6 0f 10
`
`5,915,106
`
`START I
`
`USER EXECUTES SCANNER PARAMETERS
`SETUP PROGRAM.
`
`USER ENTERS PARAMETERS
`(RESOLUTION, BRIGHTNESS, CONTRAST, ETC).
`
`/63
`
`SETUP PROGRAM WRITES PARAMETERS TO
`SCANNER VIA FILE SAVE COMMAND. J65
`
`USER PERFORMS AN APPLICATION FILE
`OPEN COMMAND.
`
`/67
`
`SCANNER FIRMWARE OPERATES SCANNER
`BASED ON PARAMETERS CORRESPONDING TO
`THE FILE OPEN COMMAND, AND IMACE
`DATA IS TRANSFERRED TO THE APPLICATION.
`
`I
`
`FINISH I
`
`FIG’. 6'
`
`HUAWEI EX. 1106 - 7/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 7 of 10
`
`5,915,106
`
`gzzsmTil
`
`8_Eo
`
`m>_%xma
`
`Z2535
`
`Rm>_%
`
`is
`
`Em
`
`E>_%
`
`HUAWEI EX. ‘I106 - 8/‘I7
`
`HUAWEI EX. 1106 - 8/17
`
`
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 8 0f 10
`
`5,915,106
`
`I
`
`START I
`
`USER EXEGUTES SCANNER PARAMETERS
`SETUP PROGRAM.
`
`f/IDI
`
`USER ENTERS PARAMETERS
`(RESOLUTION, BRIGHTNESS, CONTRAST, ETC).
`
`/IO3
`
`SETUP PROGRAM WRITES PARAMETERS TO
`SCANNER, AND SCANNER OPERATES IN
`ACCORDANCE WITH PARAMETERS.
`
`IMAGE DATA DIRECTED TO A FILE.
`
`APPLICATION READS IMAGE DATA BY
`OPENING EILE ON STORAGE DEVICE.
`
`I
`
`FINISH I
`
`HUAWEI EX. 1106 - 9/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 9 0f 10
`
`5,915,106
`
`I
`
`START I
`
`USER SELECTS AOUIRE FROM AN
`APPLICATION.
`
`DLL LINK BOOTS UP SCANNER PARAMETERS f1] 3
`SETUP PROGRAM.
`
`USER EILLS OUT PARAMETERS.
`
`/115
`
`SETuP PRCCRAII wR|TES PARAMETERS T0
`THE SCANNER, AND THE SCANNER IS
`OPERATED ACCOROINOLY.
`
`/U7
`
`MACE DATA RESULTING FROM SCANNER
`OPERATION IS TRANSFERRED TO THE
`APPLICATION.
`
`/II9
`
`I
`
`FINISH I
`
`FIG’. .9
`
`HUAWEI EX. 1106 - 10/17
`
`
`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 10 0f 10
`
`5,915,106
`
`T
`
`START I
`
`ATTACH SCANNER TO SCSI BUS.
`
`TURN SCANNER POWER ON.
`
`/55
`
`TURN COMPUTER POWER ON.
`
`/57
`
`T
`
`FINISH I
`
`FIG’. 70
`
`HUAWEI EX. 1106 - 11/17
`
`
`
`1
`METHOD AND SYSTEM FOR OPERATING A
`SCANNER WHICH EMULATES A DISK
`DRIVE
`
`BACKGROUND OF THE INVENTION
`
`FIELD OF THE INVENTION
`
`This invention relates to an interface structure for periph
`eral devices such that those devices may be attached to any
`one of various computer systems Without a speci?cally
`developed driver. The invention is more particularly related
`to an apparatus and interface structure Which alloWs a
`computer to control a peripheral device connected to that
`computer by a Small Computer System Interface (SCSI) bus
`via standard operating system disk drive commands Without
`utilizing a speci?cally developed device driver. The inven
`tion is still further related to a scanning apparatus that can be
`connected betWeen one of multiple computer and operating
`systems and Which can be controlled either independently or
`from Within a graphics application running on a host com
`puter Without a device driver installed on the host computer
`for the scanning apparatus.
`
`DISCUSSION OF THE BACKGROUND
`
`With the increasing use of computer peripheral devices in
`both the home and of?ce environments, computer users and
`system maintainers are increasingly confronted With the
`tasks of installing neW and upgraded peripherals and related
`softWare packages. Typically, because peripherals are not
`standardiZed as to an interface protocol betWeen the periph
`eral and a host computer, one of the related softWare
`packages that must be installed With a neW peripheral device
`is a device driver.
`The device driver places communications betWeen an
`application and peripheral device in the proper format
`required by the peripheral device. Thus, an application
`Wishing to access a peripheral device makes an access
`request to the appropriate device driver Which then formats
`communications as required by the peripheral device alloW
`ing communication betWeen the peripheral device and the
`application. Device drivers are often referred to as softWare
`or peripheral drivers and are commonly included When
`peripheral devices are purchased. Device drivers for periph
`eral devices are normally available free of charge from
`peripheral device manufacturers and can often be doWn
`loaded off the Internet.
`While the installation of device drivers for a speci?c
`peripheral device is not a particularly difficult problem, it is
`complicated by a multitude of available peripheral devices,
`several available computer platforms and related operating
`systems, and multiple versions of each of the above.
`Because of the plurality of peripherals, platforms, systems
`and versions thereof, problems are often encountered When
`installing a neW peripheral device Which revolve around
`installation of the appropriate driver speci?c to the device
`and system on Which the peripheral is being installed. These
`problems are typically manifested in desperate calls to help
`lines and desks of peripheral manufacturers and computer
`retailers Where neW and upgraded device drivers are distrib
`uted.
`In addition to the installation of neW peripheral devices,
`vintage peripheral devices of anyWhere from one month to
`several years of age are often transferred from one computer
`to another. The same problems of obtaining proper device
`drivers to alloW a host computer to communicate With the
`peripheral device are manifested again, but in this case to a
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,915,106
`
`2
`greater extent because of the potential that the device is no
`longer supported. Even if the appropriate device driver is
`available, the task of tracking that driver doWn may exceed
`the value of the peripheral.
`Furthermore, there are costs associated With the develop
`ment of device drivers and assuring that the device drivers
`are included in softWare packages developed and offered for
`sale in the retail marketplace. As With the development of
`any softWare package, the development of a device driver
`requires hiring of engineers With appropriate experience.
`Once developed, drivers must undergo rigorous testing. If a
`released device driver does not properly operate a peripheral
`device, the peripheral device can effectively be rendered
`inoperative, thereby resulting in cost far beyond those asso
`ciated With development of the device driver itself.
`Regarding the assurance that device drivers are included
`in softWare packages on the retail market, developers of
`softWare packages typically rely on a toolkit developer to
`maintain a library of drivers for multiple peripheral devices.
`The softWare package developer purchases a toolkit Which is
`then linked into the developed softWare package, thus alloW
`ing the developed softWare package to access any peripheral
`device supported in that toolkit.
`Like the development of softWare drivers, toolkits are not
`free. Increased cost results from the fact that toolkit manu
`facturers require peripheral developers to pay a fee in order
`to have their peripheral device driver included in the next
`toolkit release. In addition, developers of softWare packages
`must also pay the toolkit developers a royalty for each model
`peripheral device they Wish to have included in the library
`they purchase.
`Because device drivers are utiliZed to format communi
`cations betWeen a computer and a peripheral device, prob
`lems and added expense occur. The problems relate mainly
`to the location and installation of neW and upgraded device
`drivers, and the added expense relates mainly to the same
`plus development and distribution costs of the device driv
`ers.
`The present inventor has realiZed that the conventional
`solution of providing a softWare driver for formatting com
`munications betWeen an application executing on a host
`computer and a peripheral device attached thereto has draW
`backs Which are potentially either inconvenient, an added
`expense, or prohibitive to potential users of that peripheral
`device.
`
`SUMMARY OF THE INVENTION
`Accordingly, it is an object of this invention to provide a
`disk drive emulator attached to a peripheral device such that
`the peripheral may be operated from a host computer as a
`disk drive Without the need of a device driver.
`It is another object of the invention to provide a setup
`program resident on a peripheral device and executable by
`a host computer alloWing a user to enter operational param
`eters and commands to direct operation of the peripheral
`device.
`These and other objects are accomplished by a disk drive
`emulator attached to or included in a peripheral device.
`Because the peripheral device has an attached disk drive
`emulator, the host computer interacts With the peripheral
`device as if it is a disk drive. Because a disk drive is a
`standard device, all operating systems are able to perform
`basic disk drive functions such as opening and saving a ?le.
`The disk drive emulator translates Open File and Save File
`commands received from the host computer and interprets
`those commands as functions to be performed by the periph
`eral device.
`
`HUAWEI EX. 1106 - 12/17
`
`
`
`3
`The disk drive emulator maintains a setup program Which
`constitutes an Application Program Interface (API) enabling
`communications betWeen a user and the peripheral device.
`The setup program is accessible by the host computer, and
`upon execution, a menu is provided in Which the user may
`select various operational parameters and commands to
`direct operations of the peripheral device. The setup pro
`gram then saves these operational parameters and com
`mands to the disk drive emulator using a Save File com
`mand. When the appropriate command is received via the
`disk drive emulator, the peripheral device is operated in
`accordance With that command and the parameters saved by
`the setup program. In one embodiment, the interface
`betWeen the host computer and disk drive emulator is a SCSI
`interface, and the peripheral device is an optical scanner.
`The operational parameters and commands entered at the
`menu of the setup program and saved to the disk drive
`emulator are stored in a memory and are visible as a ?le to
`the operating system of the host computer. When an appli
`cation running on the host computer performs a File open
`command on a ?le corresponding to saved operational
`parameters, the disk drive emulator directs operation of the
`optical scanner based upon the stored operational parameters
`and transfers data resulting from operation of the scanner to
`the application as if a ?le is being opened.
`Alternatively, When the operational parameters and com
`mands are saved via a File Save command to the disk drive
`emulator, the optical scanner is operated in accordance
`thereof and data resulting from operation of the scanner is
`transferred to a ?le.
`The operational parameters and commands entered or
`selectable by the user include Pixel Depth, Resolution,
`Brightness, Contrast, Gamma, Filter, Page SiZe, File Name,
`File Type, Feeder, and Flatbed parameters, and Scan, Open
`File, Save File, and Cancel commands.
`An application program having an Aquire command for
`retrieving image data from a scanner is provided With a DLL
`link to the setup program. The DLL link operates such that
`When the Aquire command is invoked the application calls
`the setup program. When the user completes entering opera
`tional parameters and commands, they are Written to the disk
`driver emulator utiliZing a File Save command. The disk
`drive emulator then operates the optical scanner in accor
`dance With the operational parameters and commands, and
`image data resulting from that operation is transferred from
`the scanner to a current WindoW of the application program.
`To accommodate multiple computer platforms, multiple
`setup programs are provided, each setup program corre
`sponding to a speci?c computer platform. An external
`sWitch is provided having multiple positions, each position
`identifying a type of computer platform and corresponding
`to one of the multiple setup programs. The disk drive
`emulator only alloWs a setup program corresponding to a
`computer platform identi?ed by the external sWitch to be
`visible to the host computer.
`
`1O
`
`15
`
`25
`
`35
`
`45
`
`55
`
`5,915,106
`
`4
`FIG. 3 illustrates a scanner connected to a SCSI bus of a
`general purpose computer and the softWare components of
`the general purpose computer used to operate the attached
`scanner constructed in accordance With the present inven
`tion;
`FIG. 4 illustrates a graphical scanner control menu in
`accordance With the present invention;
`FIG. 5 illustrates a scanner peripheral device according to
`the present invention;
`FIG. 6 is a ?oWchart of the operation of an embodiment
`of the present invention;
`FIG. 7 illustrates a scanner peripheral device according to
`the present invention including a disk drive attached to a
`SCSI bus;
`FIG. 8 is a ?oWchart of the process of operating a scanner
`peripheral device and saving image data to a ?le in accor
`dance With the present invention;
`FIG. 9 is a ?oWchart of the process of operating an
`attached peripheral scanner in accordance With an alterna
`tive embodiment of the present invention including a DLL
`link Within a softWare application; and
`FIG. 10 is a ?oWchart of the process of connecting a
`scanner peripheral device to a host computer in accordance
`With the present invention.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Referring noW to the draWings, Wherein like reference
`numerals designate identical or corresponding parts
`throughout the several vieWs, and more particularly to FIG.
`1 thereof, there is illustrated a conventional computer Work
`station 1 connected to a scanner 5 using a connecting cable
`3. As a peripheral device, the scanner 5 Would likely be set
`up as shoWn in FIG. 2 With a graphics application 9, a
`peripheral driver 19, an interface card device driver 25, and
`an operating system 7, all hosted on computer Workstation
`1.
`
`Graphics application 9 is any softWare application that
`Would access scanner 5 to retrieve data or is capable of
`manipulating graphics data, such as Adobe Photoshop or
`Corel DraW, for example. Peripheral driver 19 is a softWare
`application that formats communications betWeen the graph
`ics application 9 and scanner 5. The interface card device
`driver 25 is a softWare application that formats communi
`cations as required for transfer across the connecting cable
`3 to the scanner 5, similar to the operation of a SCSI driver
`in relation to a SCSI card. Operating system 7 is a softWare
`application that provides a user interface for invocation and
`a platform for operation of other softWare applications.
`The computer Workstation 1 is also shoWn having an
`interface card 27 Which receives communications from
`computer Workstation 1, placing the communications on the
`connecting cable 3 as required for delivery to the scanner 5.
`The interface card 27 is attached to a computer bus 15
`thereby resulting in the connection of the computer Work
`station 1 to the scanner 5. The con?guration of FIG. 2 alloWs
`the graphics application 9 to control the scanner 5 by
`communicating With the peripheral driver 19 Which properly
`formats the scanner commands from the graphics applica
`tion 9 and provides the properly formatted commands to the
`interface card device driver 25 Which then packages those
`commands in a format for transportation to the interface card
`27 and across the connecting cable 3 to the scanner 5.
`A problem that exists in the prior art thus described is
`embodied in the peripheral driver 19 Which must provide
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`A more complete appreciation of the invention and many
`of the attendant advantages thereof Will be readily obtained
`as the same becomes better understood by reference to the
`folloWing detailed description When considered in connec
`tion With the accompanying draWings, Wherein:
`FIG. 1 illustrates a conventional computer Workstation
`connected to an image scanner;
`FIG. 2 illustrates communications betWeen an application
`executing on a computer Workstation and a scanner;
`
`65
`
`HUAWEI EX. 1106 - 13/17
`
`
`
`5
`commands in proper format for the scanner 5 and is there(cid:173)
`fore a specifically developed software application com(cid:173)
`monly referred to as a device driver. The peripheral driver 19
`will almost assuredly need to be changed with any changes
`or upgrades to the scanner, computer, or operating system.
`For instance, peripheral driver 19 will need to be changed
`any time the scanner 5 is replaced with a different or newer
`version scanner (not shown), such as a new model or a
`model from a different manufacturer, or if the operating
`system 7 is upgraded, such as from DOS to Windows or 10
`Windows 3.1 to Windows 95, or if the computer workstation
`1 is changed, such as from an Intel based X86 processor to
`a Macintosh. Also, movement of the scanner 5 to another
`computer workstation (not shown), even though perhaps
`similar to the computer workstation 1, may require finding 15
`a peripheral driver matching the platform and operating
`system in accordance with that similar computer worksta(cid:173)
`tion.
`In order to solve the problem in the prior art relating to
`locating and installing an appropriate driver for a peripheral 20
`device, such as a scanner, FIG. 3 illustrates a disk drive
`emulating scanner 6 attached to a general purpose computer
`2 wherein the operating system 7 is hosted and the graphics
`application 9 and a scanner parameters setup program 11 are
`executed. Both the scanner parameters setup program 11 and 25
`the graphics application 9 communicate with the disk drive
`emulating scanner 6 via the SCSI driver 13, the operating
`system 7, a computer system bus 15, a SCSI card 17 and a
`SCSI bus 4 using standard disk drive commands Open File
`and Save File.
`Both Open File and Save File commands are standardized
`commands that can be invoked by software applications
`executing in a computer environment based on any stan(cid:173)
`dardized operating system. The Open File command directs
`the operating system to read a file stored on a storage device
`and provide the data contained therein to the software
`application invoking the command. The Save File command
`directs the operating system to store data from the software
`application invoking the Save File command to a file on a
`storage device.
`The scanner parameters setup program 11 is a software
`application that provides a scanner control menu 31 as
`shown in FIG. 4 on which a computer user may enter
`scanner parameters 33 and scanner commands 35 which will
`then be used in operation of the disk drive emulating scanner
`6. The scanner control menu 31 utilizes standard graphical
`pulldown menus, text boxes, slide bars, and buttons for input
`of the scanner parameters 33 and the scanner commands 35.
`The scanner parameters setup program 11 is originally
`resident within the disk drive emulating scanner 6 and is
`accessible by and executed on the general purpose computer
`2.
`
`30
`
`35
`
`40
`
`FIG. 5 illustrates the major control and communication
`paths within the disk drive emulating scanner 6. A disk drive
`emulator 41 receives Open File or Save File commands sent
`from the general purpose computer 2 over the SCSI bus 4.
`Prior to execution, the scanner parameters setup program
`11 is stored in a setup program storage area 47 A of a memory
`47 on the disk drive emulating scanner 6. When receiving an 60
`Open File command for the scanner parameters setup pro(cid:173)
`gram 11, the disk drive emulator 41 retrieves the scanner
`parameters setup program 11 from setup program storage
`area 47 A and transfers the scanner parameters setup program
`11 via the SCSI bus 4 to the general purpose computer 2 for
`execution. When receiving a Save File command for a file
`with the scanner parameters 33 and the scanner commands
`
`5,915,106
`
`5
`
`6
`35 entered by the user, the disk drive emulator 41 retrieves
`the scanner parameters 33 and the scanner commands 35
`contained therein. Thus, the scanner parameters setup pro(cid:173)
`gram 11 constitutes an Application Program Interface (API)
`that enables communications between the user and the disk
`drive emulating scanner 6.
`Operation of the scanner optics 45, which includes, for
`example, a Charge Coupled Device (CCD), illuminating
`lamp, mirrors, a motor to move appropriate parts, etc., is
`commanded by the scanner control block 43. The scanner
`control block 43 is implemented as a programmable device
`operating based on a set of firmware instructions (not
`shown) stored in a firmware storage area 47B in the memory
`47. The firmware instructions stored in firmware storage
`area 47B are loaded into the scanner control block 43 upon
`power-up of the disk drive emulating scanner 6. The scanner
`optics 45 are operated in accordance with the firmware
`instructions and scanner parameters 33 upon transfer of
`those parameters to the scanner control block 43.
`Alternatively, the setup program storage area 47A is
`constructed from flash memory. Flash memory is a non(cid:173)
`volatile memory that can be written to via software
`instructions, and therefore the contents of the memory (i.e.,
`the scanner parameters setup program 11, or applicable API)
`can then be upgraded via the general purpose computer 2.
`Similarly, the entire memory 47 including the setup program
`storage area 47A and the firmware storage area 47B are
`constructed from flash memory and upgradable via the
`general purpose computer 2.
`When utilizing flash memory, the disk drive emulator 41
`identifies if a file identified in a Save File command contains
`data or a program corresponding to a specific area of the
`memory 47. Identification is based upon a file name, or
`identifying specific file contents, for example, and is per(cid:173)
`formed by identification device 30. Upon identification, the
`disk drive emulator 41 writes the contents of the file to the
`corresponding area of memory 47. For example, a file
`containing an upgraded version of the scanner parameters
`setup program 11 would be identified and stored in the setup
`program storage area 47A.
`In one embodiment, the disk drive emulator 41 saves the
`scanner parameters 33 to a file in the memory 47. Then, upon
`receiving a File Open command directed toward the opening
`45 of a file thus saved, the disk drive emulating scanner
`performs a scan in accordance with the saved parameters
`and transfers image data resulting therefrom to the general
`purpose computer as if the file were being opened.
`In more detail, the disk drive emulator 41 receives a File
`50 Open command from the SCSI bus 4 directed toward
`opening a file stored in the memory 47 containing the
`scanner parameters 33. The disk drive emulator 41 then
`retrieves the file, and transfers the scanner parameters 33
`contained therein to the scanner control block 43. The
`55 scanner control block 43 then commands operation of scan(cid:173)
`ner optics 45 in accordance with the transferred parameters.
`The disk drive emulator 41 then returns image data resulting
`from the scan to the SCSI bus 4 for transfer to the general
`purpose computer 2.
`From a user standpoint, the present invention is easily
`operated. As shown in FIG. 6, operation of the present
`invention begins with step 61 wherein the user executes the
`scanner parameters setup program 11. The scanner param(cid:173)
`eters setup program 11 is resident in the memory 47 in the
`65 setup program storage area 47 A and is executed by any
`standard invocation such as a command issued at a com(cid:173)
`mand prompt, via a File Manager (not shown), or via a link
`
`HUAWEI EX. 1106 - 14/17
`
`
`
`10
`
`25
`
`35
`
`15
`
`7
`to an icon displayed on a Program Manager (not shown). In
`the case of command prompt invocation under the Disk
`Operating System (DOS), the invocation Would appear as:
`C>d:\setup.exe,
`Where C> corresponds to the command prompt,
`d:\corresponds to the disk drive emulating scanner 6 emu
`lating logical drive d, and setup.exe corresponds to the
`scanner parameters setup program 11. When executed, the
`scanner parameters setup program 11 displays the scanner
`control menu 31.
`At step 63, the user enters parameters on the scanner
`control menu 31 including resolution, brightness, contrast,
`etc, as desired. At step 65, the scanner parameters setup
`program 11 Writes the parameters thus entered to the disk
`drive emulating scanner 6 via a File Save command. At step
`67, the user performs a File Open command from an active
`softWare application to read a ?le corresponding to the
`scanner parameters 33 and stored on the disk drive emulat
`ing scanner 6. At step 69, the disk drive emulator 41 operates
`the disk drive emulating scanner 6 based on the parameters
`Written to disk drive emulator 41 and corresponding to the
`File Open command in step 67. Image data resulting from
`the scanning operation is transferred to the application.
`FIG. 7 illustrates another embodiment of the present
`invention including a disk drive 23 attached to the SCSI bus
`4. In this embodiment, the disk drive 23 is utiliZed to store
`image data generated from scan operations of the disk drive
`emulating scanner 6. When the scanner optics 45 are oper
`ated in accordance With the scanner parameters 33, image
`data resulting from that operation is directed by the disk
`drive emulator 41 to the disk drive 23 for storage in a ?le.
`Once stored, the image data can be read from the disk drive
`23 like any other ?le stored on a disk drive. If desired, the
`disk drive 23 is housed Within the disk drive emulating
`scanner 6.
`The embodiment including disk drive 23 could alterna
`tively be implemented Without disk drive 23 by providing
`enough storage in the memory 47 (Which may be imple
`mented using any desired semiconductor memory and/or as
`a disk drive) for saving image ?les. In this alternative
`embodiment, image data resulting from operation of the
`scanner optics 45 is directed by disk drive emulator 41 to the
`memory 47 Where the image data is stored as a ?le acces
`sible to the general purpose computer 2.
`The operation, from a user standpoint, of the embodiment
`including disk drive 23 or alternatively utiliZing the memory
`47 for storage of image data, is illustrated in FIG. 8. In FIG.
`8, at step 101, a user executes the scanner parameters setup
`program 11, Which brings up the scanner control menu 31.
`At step 103, the user enters the scanner parameters 33 as
`desired, and at step 105, the scanner parameters setup
`program 11 Writes the scanner parameters 33 to the disk
`drive emulating scanner 6 Which is operated in accordance
`With the Written parameters.
`At step 107, image data resulting from operation of the
`disk drive emulating scanner 6 is directed to and saved as a
`?le. Once saved as a ?le, the image data is accessible to any
`application capable of reading image data. At step 109, an
`application reads the stored image data.
`In the above steps, illustrated in FIG. 8, the image data
`directed to a ?le is in one embodiment directed to a ?le on
`the disk drive 23. In an alternative embodiment, the image
`data is directed to a ?le in the memory 47, as described
`above.
`In yet another embodiment, an Aquire command (not
`65
`shoWn) of the graphics application 9 is provided With a DLL
`link (not shoWn). A DLL link is an entry in an application
`
`45
`
`55
`
`5,915,106
`
`8
`program’s Dynamic Link Library (DLL). A DLL link links
`the occurrence of external events (such as invocation of an
`Aquire command) to the execution of external programs
`(such as the scanner parameters setup program 11) to
`perform some function. The DLL link is setup to execute the
`scanner parameters setup program 11 upon invocation of the
`Aquire command. After the user enters the scanner param
`eters 33, the disk drive emulating scanner is operated. Image
`data resulting from operation of the disk drive emulating
`scanner 6 in accordance With the scanner parameters 33 is
`transferred to a current WindoW (not shoWn) in the graphics
`application 9.
`The operation of the DLL link embodiment is illustrated
`in FIG. 9. FIG. 9 begins at step 111 Wherein the user invokes
`an Aquire command from the graphics application 9. The
`Aquire command initiates the startup of the scanner param
`eters setup program 11 via the DLL link