Systems and methods for printer configuration management

Systems and methods consistent with disclosed embodiments provide a method for managing a printer configuration menu comprising a plurality of menu options, by associating a menu configuration change field with each menu options, assigning a value to the menu configuration change field, and displaying the menu option as part of printer configuration menu during printer configuration based on the value of the menu configuration change field associated with the at least one menu option.

BACKGROUND

1. Field of the Invention

The present invention relates to the field of printing, and in particular to systems and methods for facilitating the configuration of printers.

2. Description of Related Art

Computer printers, which are ubiquitous in most modern organizations, permit the quick printing of stored documents. Designers of modern printers have focused relentlessly on improving printer speed, throughput, features, efficiency, and cost resulting in virtually universal adoption of printers. The proliferation of printers has led to their deployment in a wide variety of information processing environments. Accordingly, in an attempt to allow users flexibility in customizing printers, printer manufacturers have provided users with a wide variety of configuration options. Typically, these options may be set or changed using an operator control panel coupled to the printer, or through a user interface displayed on a monitor coupled to a user's computer. In some instances, the user interface may be provided by a printer driver or a print controller coupled to the printer.

While the plethora of configuration options available on printers has facilitated printer deployment across a variety of environments, it has also contributed to an increase the complexity of printer configuration for both manufacturers and end-users. For example, a manufacturer may have to deal with a large number of potentially different configuration menus for individual printer models. From the standpoint of an end user, the user may have to navigate through a maze of pull-down menus before being able to locate and change a specific configuration setting. Moreover, the increased flexibility afforded to users has come at the expense of decreased control exercised by system administrators over printer configuration. For example, a system administrator may not be able to prevent one or more users or user groups from altering a specific printer configuration, especially if the configuration setting is directly accessible using an operator control panel coupled to the printer. Therefore, there is a need for a simple, efficient, and easily deployable systems and methods that facilitate the configuration management of printers.

SUMMARY

In accordance with disclosed embodiments, apparatus, systems, and methods for the configuration management of printers are presented. In some embodiments, a method for managing a printer configuration menu comprising a plurality of menu options comprises: associating a menu configuration change field with at least one menu option; assigning a value to the menu configuration change field; and displaying the menu option as part of printer configuration menu during printer configuration based on the value of the menu configuration change field associated with the at least one menu option.

Embodiments of the present invention also relate to software, firmware, and program instructions created, stored, accessed, or modified by processors using computer-readable media or computer-readable memory. The methods described may be performed by systems, including a computer and/or a printing device. These and other embodiments are further explained below with respect to the following figures.

DETAILED DESCRIPTION

In accordance with the present invention, systems and methods for the configuration management of printers are presented.

FIG. 1shows a block diagram of exemplary system100for the configuration management of printers. A computer software application may be deployed on a network of computers and/or printers, as shown inFIG. 1, that are connected through communication links that allow information to be exchanged using conventional communication protocols and/or data port interfaces.

As shown inFIG. 1, exemplary system100includes a computer or computing device110and a server130. Further, computing device110and server130may communicate over a connection120, which may pass through network140, which in one case could be the Internet. Computing device110may be a computer workstation, desktop computer, laptop computer, or any other computing device capable of being used in a networked environment. Server130may be a platform capable of connecting to computing device110and other devices too (not shown). Computing device110, server130, and printers160may be capable of executing software (not shown) that allows the configuration management of printers, such as printers160-1and160-2.

Printers160may be laser printers, ink jet printers, LED printers, or any other device capable of placing marks on a print medium. From a functional perspective, printers160may take the form of plotters, multi-function devices, facsimile machines, digital copiers, and/or various other devices for printing documents. Computing device110may contain a removable media drive150. Removable media drive150may include, for example,3.5inch floppy drives, CD-ROM drives, DVD ROM drives, CD±RW or DVD±RW drives, flash drives, memory cards, and/or any other removable media drives consistent with embodiments of the present invention. Portions of software applications may reside on removable media and be read and executed by computing device110using removable media drive150. In some embodiments, intermediate and final results and/or data generated by applications may also be stored on removable media.

Connection120couples computing device110, server130, and printers160and may be implemented as a wired or wireless connection using conventional communication protocols and/or data port interfaces. In general, connection120can be any communication channel that allows transmission of data between the devices. In one embodiment, for example, the devices may be provided with conventional data ports, such as serial, parallel, USB™, SCSI, FIREWIRE™, and/or Ethernet ports for transmission of data through the appropriate connection120. The communication links could be wireless links or wired links or any combination that allows communication between computing device110, server130, and printers160.

Network140could include a Local Area Network (LAN), a Wide Area Network (WAN), or the Internet. Exemplary printing device160-2, may be a network printer, and can be connected to network140through connection120.

System100may include multiple printing devices160and other peripherals (not shown), according to embodiments of the invention. Printing devices160may be controlled by hardware, firmware, or software, or some combination thereof. Printing devices160may include one or more print controller boards175, such as exemplary print controllers175-1and175-2, which may control the operation of printing devices160. Printing devices160may be controlled by firmware or software resident on memory devices in print controllers175. In general, print controllers175may be internal or external to print devices160. In some embodiments, printing devices160may also be controlled in part by software, including print servers, or other software, running on computing device110or server120.

Printing devices, such as exemplary printing devices160, may also include consoles190such as consoles190-1and190-2, or other interfaces. In some embodiments, consoles190may take the form of an operator control panel (“OCP”) coupled to a printer and allow users to manage the configuration of printers160. In some embodiments, the OCPs may provide a keyboard, trackball, or a touch-screen interface to facilitate user input. In some embodiments, as shown inFIG. 1, console190in the form of OCP190-2may provide a basic interface to an operator. For example, up (↑) down (↓), right (→) and left (←) arrow keys may be provided along with an enter <ENTER> key to navigate, toggle, select, and set presented configuration options. In some embodiments, the OCP190-2may also (or alternatively) provide a numeric keypad to permit navigation, toggling, selection, and setting of configuration options.

In one embodiment, consoles190-1and190-2may accept user input and allow various configuration options for printers160to be set. For example, one or more menus may be provided to users to permit the selection and setting of individual configuration options. In some embodiments, the menus may be drop-down or pull-down menus, where the selection of one menu option may provide a list of additional configuration parameters associated with the selected menu option. In some embodiments, the user may be navigate through configuration using a sequence of configuration screens, where a selection on one configuration screen may bring up a subsequent configuration screen to permit further configuration. In general, the selection and setting of configuration parameters may be accomplished using a variety of user-interfaces and the disclosed methods may be modified appropriately based on the type of user-interface as would be apparent to one of ordinary skill in the art.

Consoles190may also be used to display a log-in screen to permit passwords and/or user identification and authentication information to be entered. In some embodiments, consoles190may take the form of a display or a monitor for a computer coupled to printing devices160. For example, configuration options for printer160may be displayed using a virtual operator control panel using an appropriate graphical user interface (“GUI”) on monitor190-3, which is coupled to computer110. In some embodiments, configuration management for printers160may be performed using software running on server130and displayed on console190-3.

In some embodiments, user-configurable configuration parameters, which may be presented as configuration options in a printer configuration menu, may include one or more of user-interface configuration, security settings, print resolution, media size, color options, media type, duplex settings, print modes, input and output tray selection, output collation and stapling options, and various other configuration parameters. User interface configuration may permit configuration of the user-interface for printers160displayed on consoles190. Print mode may allow the user to select a draft mode, ink saving mode and various other modes that may be provided by a manufacturer. A user may also be able to specify the use of automatic document feeders with input trays to allow batch processing of documents.

A computer software application consistent with the present invention may be deployed on any of the exemplary computers, or printers as shown inFIG. 1. For example, computing device110could execute software that may permit configuration management of printer160-1. An independent application may also execute concurrently on printer160-2to permit its configuration. In another example, a configuration management application may operate to change configuration settings on printer160-1but could reside and execute on print controller175-1. In general, applications may execute in whole or in part on one or more computers, print controllers, or printers in the system. The embodiments described above are exemplary only and other embodiments and implementations will be apparent to one of reasonable skill in the art.

FIG. 2illustrates a portion of a conventional menu hierarchy200showing menu objects used to configure a printer menu that is displayed to user during printer configuration. As shown inFIG. 2, menu hierarchy200includes one or more menu objects, which can be used by a configuration management program to present users with configuration options in a configuration menu for printers160.

Menu objects, which may be held in a data structure, may be used to display choices that are presented to a user at various points during the configuration of printers160. For example, exemplary menu object205may correspond to the main menu and provide an initial set of menu options. Menu objects, such as exemplary menu object205, may include one or more data fields and/or other objects including: choices or menu selections to be displayed to the user; identification information for menu objects associated with each selection option displayed to the user such as exemplary child menu objects211,215, and218; the current value of any configuration parameters associated with menu object205; the acceptable ranges or values for any configuration parameters associated with menu object205; identification information for any parent menu objects; and/or values of any configuration parameters associated with child menu objects such as values associated with exemplary menu objects211,215, and218.

As shown inFIG. 2, menu hierarchy200may include a top level or root menu object205, which may be configured to permit a printer configuration management program to provide the user with an initial set of selections, where each selection presented to the user may be associated with a corresponding child menu object such as one of menu objects211,215, or218. Accordingly, when a user chooses one of the options presented, the printer configuration management program may use the menu object associated with the selection to determine the next set of configuration options to be presented to the user.

As shown inFIG. 2, in menu hierarchy200, child menu objects221and222descend from parent menu object211. Similarly, child menu objects225,226, and227descend from parent menu object215, while child menu object228descends from parent menu object218. Further, menu object222is associated with lower level menu object232, while menu object228is associated with lower level menu objects238and239. Menu hierarchy200may also include other menu objects (not shown) as indicated by the dotted lines. In conventional systems, a printer configuration management program can use the menu objects in a data structure configured to represent the menu hierarchy to display configuration options and to alter configuration settings of printers160based on user input during the printer configuration process.

If menu hierarchy is presented to a user using up (↑) and down (↓) keys for navigation, right (→) and left (←) arrow keys for toggling between options presented with the enter <ENTER> key to select a configuration option, then selection of a menu option (by using the <ENTER> key) corresponding to menu object205may lead to the display of menu options corresponding to menu objects211,215, or218. If the menu option corresponding to menu object211was selected then, the user may toggle between the options corresponding to menu object211using the right (→) and left (←) arrow keys. Similarly, selection of a menu option corresponding to menu object211(by using the <ENTER> key) may lead to the display of menu options corresponding to menu objects221or222. In general, the use of <ENTER> selects the displayed option while the use of the right (→) and left (←) arrow keys toggles between the options available for a menu object. In some embodiments, the up (↑) and down (↓) keys may be used for navigating the menu hierarchy to browse configuration settings without changing the current settings.

If a numeric keypad is provided, the operator may be provided with a unique numeric identifier for each presented menu option corresponding to a menu object. The operator may then select one of the options by depressing the appropriate numeric key on the numeric keypad associated with the OCP. As can be seen, in the conventional systems described above, configuring the printer may be a cumbersome process that can involve the use of several keys repeatedly. The burden of the printer configuration process may be significantly compounded if the conventional system provides only a basic interface (such as arrow keys and/or numeric keypad) for the operator control panel.

FIG. 3illustrates a portion of an exemplary menu hierarchy300showing menu objects used to configure a menu displayed to user during a printer configuration process consistent with disclosed embodiments. For ease of description, menu hierarchy300, as shown inFIG. 3, is structurally identical to exemplary menu hierarchy200shown inFIG. 2. As shown inFIG. 3, each exemplary menu object3XY in menu hierarchy300also includes an associated menu configuration change field or menu configuration change object3XY-1, where X and Y are digits in the identifier for the menu object. For example, menu object305(for which X=0 and Y=5) includes associated configuration change field305-1. Similarly, lower level objects311,315, and318include associated menu configuration change fields311-1,315-1, and318-1, respectively.FIG. 3also shows lower level menu objects321,322,325,326,327,328,332,338, and339along with their respective associated menu configuration change fields321-1,322-1,325-1,326-1,327-1,328-1,332-1,338-1, and339-1.

In some embodiments, a portion of menu configuration change field3XY-1(or another field) associated with object3XY may be used to determine if object3XY and any associated configuration parameters are accessible to end-users. For example, a printer manufacturer may be able to use a master menu hierarchy, which can take the form of menu hierarchy300, to configure the user-interfaces for individual printers across a printer family. In one embodiment, appropriate bits may be set in the menu configuration field3XY-1associated with object3XY to determine which menu items are displayed to end-users. For example, access to a menu object corresponding to duplex mode and its associated configuration option may be disabled for all end-users in a printer that does not support duplex mode printing. Accordingly, in this embodiment, the configuration menu will not display a duplex configuration option to end-users.

In some embodiments, some portion of menu configuration change field3XY-1associated with object3XY in the menu hierarchy available to the end-user may also be used to determine if further changes are permitted to menu configuration options associated with object3XY when the printer is being configured by end-users. For example, an end user, such as a system administrator, may permit the configuration of some parameters but may wish to disable changes to other printer configuration settings. Accordingly, in the example above, the system administrator may further configure the menu hierarchy enabled on exemplary printer160to further restrict access to and/or the readability of one or more configuration menu options.

In one implementation, the value of configuration change field3XY-1associated with object3XY may be set to either 0 or 1. In this implementation a value “0” for configuration change field311-1may indicate that no changes are permitted to configuration settings associated with object311and its descendants, whereas a value “1” for field311-1may indicate that changes are permitted to configuration settings associated with object311. Further, in this implementation, when the configuration change field3XY-1associated with object3XY has the value 1, changes may be permitted to the configuration parameters associated with menu object3XY. However, changes to configuration parameters associated with children or descendants of object3XY will depend on the value of their respective individual configuration change fields. In general, while the enabling of configuration changes for a menu object3XY is local to object3XY, a disabling of configuration changes for a menu object3XY will also disable configuration changes to menu objects descended from menu object3XY.

For example, in the implementation above, a manufacturer may disable menu option associated with menu object327when configuring the user-interface for printer160-2by setting appropriate bits in menu configuration change field327-1to “0”. Consequently, menu options associated with menu object327will not be displayed on printer160-2. For example, menu object327may correspond to a duplex printing mode, which may not be available on printer160-2. Subsequently, a system administrator may further configure the configuration menu on printer160-2by setting appropriate bits in menu configuration change field328-1to “0” thereby preventing users for accessing and/or reading configuration options associated with menu object328. For example, menu object328may be associated a particular high resolution print mode that the system administrator may wish to disable.

Note that, in some embodiments, if the value of menu configuration change field311-1is set to 0, then configuration changes may be disabled for menu options associated with lower level menu objects321,322, and332. However, if the value of menu configuration change field311-1is set to 1, then configuration changes are permitted for menu options associated with menu object311, but the values of fields321-1and322-1will determine if changes are permitted to configuration parameters associated with menu objects321and322, respectively.

If the user checks a box associated with a menu option icon, then, in the embodiment shown inFIG. 4, that option and any lower level menu options may not be displayed to a user during configuration process for a printer thereby preventing configuration settings associated with those options from being changed. For example, inFIG. 4, check-box418-1associated with menu option icon418has been checked. Therefore, menu options associated with icons428,438,429and any other lower level menu option icons will be disabled when a configuration menu for the printer being configured is displayed to the user. Similarly, check-box425-1associated with menu option icon425has been checked. Therefore, menu options associated with icon425and any lower level menu option icons will be disabled. In some embodiments, when the user checks or un-checks check box4XY-2then the value of menu configuration change field3XY-1in menu object3XY may be changed to reflect the new configuration. For example, checking check box418-1may change the value of menu configuration change field318-1associated with menu object318to “0”.

FIG. 5shows the effective configuration menu hierarchy500resulting from user selections shown inFIG. 4. Effective menu hierarchy500may result from the implementation of the exemplary user check box selections shown in user interface400. In some embodiments, when the display of menu option5XY in a configuration menu for printer160may depend on whether a user has checked corresponding check box4XY-1associated with the menu option icon4XY, or for any of its ancestors in the user interface400. As discussed earlier, in some embodiments, any user selections made using user interface400may be reflected in configuration change field3XY-1, which may be used by a configuration management program to determine the configuration menu choices to be presented to a user.

For example, as shown InFIG. 4, check boxes418-1and425-1for menu option icons418and425have been checked. Accordingly, menu options corresponding to menu option icons418and425and menu options associated with icons for their descendants have been disabled and are not available in the configuration menu shown to the user. Therefore, as shown inFIG. 5, effective menu hierarchy shows two child menu options511and515for top level menu option505, while menu option515shows two child menu options526and527. Menu option511continues to have menu options for its descendants521,522, and532.

FIG. 6shows an exemplary flowchart for an algorithm600to manage printer menu configuration. In some embodiments, algorithm600may be implemented by one or more of computer110, printers160, server130, or print controllers175. In some embodiments, a user may invoke configuration management algorithm in step610. In some embodiments, invoking of configuration management may result in a log-in screen being presented to the user who may be asked to input a user-id and password in step620. For example, the user-id and password information may be requested by print controllers175to ensure that the user is authorized to make changes to the configuration menu for printer160.

The entered information may be verified in step630. For example, print controller175may verify the information by using a local database or by requesting information from server130using network140. If the entered information is correct the algorithm can proceed to step640. If the entered information is incorrect, the user may be asked to repeat the process. In some embodiments, repeated log-in failures may result in suspension of the configuration process and/or a notification to the system administrator or security personnel.

In step640, the current menu configuration structure or web page may be requested. In some embodiments, the current menu configuration structure may be obtained from printer160or print controller175and served and displayed as a web page. Next, in step650, the menu configuration hierarchy may be displayed to the user to permit the user to make changes to the menu configuration. For example, the menu hierarchy may be displayed using user interface400and a user may check or un-check check boxes4XY-1to change the existing menu configuration. Once the user has completed making changes the updated menu configuration may be stored in step660. In some embodiments, the configuration settings and/or changes may be stored in non-volatile memory or other storage coupled to printer160. The algorithm may then exit the menu configuration process in step670.

FIG. 7shows an exemplary flowchart for an algorithm700for printer configuration consistent with disclosed embodiments. Exemplary algorithm700may be invoked during the configuration of printer160. In some embodiments, algorithm700may commence and in step710, the user may be asked whether the user desires to view or change the first (or additional) configuration settings.

If the viewing or changing of configuration settings on printer160is requested, then in step720, the algorithm may proceed to enter the configuration menu. Next, in step730, the algorithm may obtain or determine the location of the menu object associated with the currently displayed menu screen in the menu hierarchy. In step740, the algorithm may obtain the value of menu configuration change field3XY-1associated with the current menu option. In step750, the value of menu configuration change field3XY-1may be checked. If menu configuration change field3XY-1is not “0” (“No” in step750) then, in step753, the menu option may be displayed. If menu configuration change field3XY-1is “0” (“Yes” in step750), then the algorithm returns to step710to begin another iteration. For example, if menu configuration change field305-1is set to 0, then the user may be disabled from viewing or changing any configuration settings on the printer.

In step755, the algorithm checks whether the user has made changes to the menu options presented. If the user has made changes (“Yes” in step755), then, in step760, changes to the configuration parameters associated with the menu option are saved and the algorithm then returns to step710to begin another iteration. If the user has not made any changes (“No” in step755), then the algorithm then returns to step710to begin another iteration. In step710, if the user elects not to change or view additional configuration settings (“No” in step710), then the algorithm terminates in step780.

Further, methods consistent with embodiments of the invention may conveniently be implemented using program modules, hardware modules, or a combination of program and hardware modules. Such modules, when executed, may perform the steps and features disclosed herein, including those disclosed with reference to the exemplary flow charts shown in the figures. The operations, stages, and procedures described above and illustrated in the accompanying drawings are sufficiently disclosed to permit one of ordinary skill in the art to practice the invention. Moreover, there are many computers and operating systems that may be used in practicing embodiments of the instant invention and, therefore, no detailed computer program could be provided that would be applicable to these many different systems. Each user of a particular computer will be aware of the language, hardware, and tools that are most useful for that user's needs and purposes.

The above-noted features and aspects of the present invention may be implemented in various environments. Such environments and related applications may be specially constructed for performing the various processes and operations of the invention, or they may include a general-purpose computer or computing platform selectively activated or reconfigured by program code to provide the functionality. The processes disclosed herein are not inherently related to any particular computer or other apparatus, and aspects of these processes may be implemented by any suitable combination of hardware, software, and/or firmware.

Embodiments of the present invention also relate to compute-readable media that include program instructions or program code for performing various computer-implemented operations based on the methods and processes of embodiments of the invention. The program instructions may be those specially designed and constructed for the purposes of the invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of program instructions include, for example, machine code, such as produced by a compiler, and files containing a high-level code that can be executed by the computer using an interpreter.

Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims. As such, the invention is limited only by the following claims.