Control program, control device, and update method
The control program automates the update process for printer and image processing device programs, addressing the challenge of manual updates in generic driver environments by acquiring and applying necessary updates.
Patent Information
- Application Number
- JP2024011745
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-30
- Publication Date
- 2025-08-12
Smart Images

Figure 2025117073000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a control program, a control device, and an update method. [Background technology]
[0002] Patent Document 1 discloses a technology that reduces the user's effort required to download and install a printer vendor-specific driver, even in an environment where a standard printer driver for the OS (Operating System) is installed. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2021-43547 Summary of the Invention [Problem to be solved by the invention]
[0004] The technology described in Patent Document 1 performs printing using a driver specific to the installed printer vendor, rather than using the OS's standard printer driver. However, in an environment where printing is performed using a generic printer driver such as the OS's standard printer driver, it is not possible to automatically update application programs provided by the printer vendor or printer firmware programs. Therefore, in such an environment, users must manually update these programs, which is time-consuming.
[0005] Therefore, in an environment where printing is performed using a generic printer driver, it is desirable to develop a technology that allows easy updating of printer-related programs, such as those provided by printer vendors.Similarly, in an environment where image processing is performed using a generic driver that controls a different type of image processing device than a printer, it is desirable to develop a technology that allows easy updating of image processing device programs, such as those provided by image processing device vendors. [Means for solving the problem]
[0006] A control program according to one aspect of the present disclosure causes a computer to execute an acquisition process for acquiring device information of an image processing device from a generic driver, a determination process for determining whether an external program related to the image processing device needs to be updated based on the acquired device information, and an update process for updating the external program if the determination process determines that the external program needs to be updated.
[0007] A control device according to one aspect of the present disclosure includes a generic driver, an acquisition processing unit that acquires device information of an image processing device from the generic driver, a judgment processing unit that determines whether an external program related to the image processing device needs to be updated based on the acquired device information, and an update processing unit that updates the external program if the judgment processing unit determines that an update of the external program is necessary.
[0008] An update method according to one aspect of the present disclosure includes an acquisition process for acquiring device information of an image processing device from a generic driver, a determination process for determining whether an external program related to the image processing device needs to be updated based on the acquired device information, and an update process for updating the external program if the determination process determines that the external program needs to be updated. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a block diagram showing an example of the configuration of a printing system according to a first embodiment. [Figure 2] 1. FIG. 4 is a sequence diagram illustrating a first example of an update process in the printing system of FIG. [Figure 3] 3 is a diagram showing an example of a user interface image displayed by a vendor assistant application program in the update process of FIG. 2. FIG. [Figure 4] FIG. 10 is a sequence diagram illustrating a second example of an update process in the printing system of FIG. [Figure 5] FIG. 10 is a block diagram showing an example of the configuration of a printing system according to a second embodiment. [Figure 6] FIG. 6 is a sequence diagram for explaining a first example of an update process in the printing system of FIG. 5. [Figure 7] FIG. 7 is a sequence diagram illustrating a second example of an update process in the printing system of FIG. [Figure 8] This is a sequence diagram continuing from FIG. [Figure 9] FIG. 2 illustrates an example of a hardware configuration of the apparatus. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the drawings are merely examples for explaining the embodiments of the present invention. Furthermore, not all of the components described in the embodiments of the present invention are necessarily essential components of the present invention.
[0011] In the following embodiments, a printing system including a printing device as an example of an image processing device will be described as an image processing system.
[0012] (Embodiment 1) [System Configuration] An example of the configuration of a printing system according to the first embodiment will be described with reference to Fig. 1. Fig. 1 is a block diagram showing an example of the configuration of a printing system according to the present embodiment.
[0013] As shown in FIG. 1, a printing system 100 according to this embodiment can include a terminal device 10, a download server 20, a printer A (31), a printer B (32), and a printer C (33).
[0014] The terminal device 10 is an information processing device with communication capabilities, such as a PC (Personal Computer), smartphone, or tablet terminal, and can be used by a user who desires to print. The terminal device 10 is connected to printer A (31), printer B (32), and printer C (33) via network N2 for processes such as sending print requests. Although not shown, the printing system 100 can be equipped with multiple terminal devices 10.
[0015] Printer A (31), printer B (32), and printer C (33) are all examples of printing devices that can print on media when print data is received. Each printer produces printed materials by performing this type of printing. For convenience, the printing system 100 is described assuming a configuration including three printers, but it is sufficient if at least one printer is included. Each printer may be a device with communication and printing functions, but may also be a multifunction device with other functions such as a scanner, copy, or facsimile transmission function. Each printer may also be referred to as a printing device or an image forming device. The printing method used by each printer is not limited; various printing methods, such as inkjet printing and laser printing, can be applied.
[0016] In the printing system 100, printing is performed by a printer selected from printer A (31), printer B (32), and printer C (33) through a user operation on the terminal device 10.
[0017] The terminal device 10 is also connectable to a download server 20 via the network N1. The terminal device 10 accesses the download server 20 and downloads an update program for updating an installed program. This update program can also be called an installer. Because the terminal device 10 performs this control, it can also be called a control device or an update device.
[0018] Download server 20 is a server that stores update programs for updating various application programs in a state that allows them to be downloaded from terminal device 10 so as to provide them to terminal device 10. Download server 20 can also store various application programs themselves in a state that allows them to be downloaded from terminal device 10 so as to provide them to terminal device 10. Download server 20 can be a server that centrally manages and publishes multiple application programs provided by printer vendors. In other words, the various application programs can be application programs provided by the printer vendors.
[0019] Therefore, although not shown, download server 20 may include a storage unit for storing the programs and update programs to be provided, a communication unit for communicating with terminal device 10 via network N1, and a control unit for overall control. Note that in this specification, "server" refers to a server computer or server device.
[0020] Below, a detailed description will be given of an example configuration of the terminal device 10. Note that explanations of example configurations of the download server 20 and each printer will be omitted.
[0021] [Configuration of terminal device 10] As shown in FIG. 1, the terminal device 10 may include a control unit 11, a storage unit 12, a communication unit 13, an operation unit 14, and a display unit 15.
[0022] The control unit 11 controls the entire terminal device 10. The control unit 11 can be configured to include, for example, an arithmetic processing unit, a working memory, and a storage device that stores control programs, parameters, etc. The arithmetic processing unit can be a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. The control unit 11 can also be configured as an SoC (System on a Chip). As can be seen from these examples, the control unit 11 can be configured to store the control program in an executable state. However, the control unit 11 can also be configured to store part of the control program as a circuit configuration such as an FPGA (Field-Programmable Gate Array), or can be configured as a dedicated circuit.
[0023] The control program may include a program for the arithmetic processing device to execute printing-related processes in cooperation with the storage unit 12, communication unit 13, operation unit 14, and display unit 15. The control program may include an OS. Since the OS is an OS installed in the terminal device 10, the type of OS will depend on the model of the terminal device 10, etc. The control program may include a web browser within or outside the OS. In the following, an example will be described in which at least a portion of the control program is stored in storage unit 12 provided separately from the control unit 11, but storage unit 12 may be part of a storage device within the control unit 11. In other words, storage unit 12 can also be considered part of the control unit 11.
[0024] The storage unit 12 is, for example, a storage device such as a hard disk drive, solid state drive, or other memory. As part of the control program, the storage unit 12 stores a generic printer driver 16 and a vendor auxiliary application program 17 (described later) in a state executable by the control unit 11. In the following description, the vendor auxiliary application program will be referred to as the vendor auxiliary App. The storage unit 12 can also store various other data, such as files to be printed.
[0025] The storage unit 12 also stores external programs, which are programs related to some or all of the printers and are different from the generic printer driver 16 and the vendor auxiliary app 17, in a state executable by the control unit 11. Each printer refers to a printer that can be connected to the terminal device 10, and in the example of FIG. 1, these are the above-mentioned printer A (31), printer B (32), and printer C (33). For example, the program related to printer A (31) includes an application program related to printer A (31). The application program related to printer A (31) can be an application program used for printing using printer A (31) or editing a file to be printed by printer A (31). The application program related to printer A (31) can be, for example, an application program provided by the vendor of printer A (31).
[0026] In this embodiment, an example will be described in which this external program is an application program installed in the terminal device 10. This external program is the target for downloading an update program from the download server 20. A plurality of such external programs can be stored in the storage unit 12, and any of these can be the target for downloading an update program. However, for the sake of simplicity, the following description will be given taking an example in which one external program, application A (18), is stored in the storage unit 12 as this target external program. Of course, application A (18) itself may also be an application program downloaded from the download server 20.
[0027] The communication unit 13 is a component that communicates wirelessly or wired with external devices such as the download server 20 via the network N1 in accordance with a predetermined communication standard such as various mobile communication standards or the Wi-Fi (registered trademark; the same applies below). The communication unit 13 is also a component that communicates wirelessly or wired with external devices such as printer A (31), printer B (32), and printer C (33) via the network N2 in accordance with a predetermined communication standard such as various mobile communication standards or the Wi-Fi (registered trademark; the same applies below). The communication unit 13 can be configured with one or more communication interfaces that enable these communications.
[0028] The operation unit 14 is a part that accepts operations by the user of the terminal device 10, and can also be called an operation acceptance unit. The operation unit 14 can be realized by, for example, one or more of physical buttons, a touch panel mounted on the display unit 15, a pointing device, and a keyboard. In a configuration in which the operation unit 14 includes a touch panel, the display unit 15 and the touch panel can be collectively called the operation panel of the terminal device 10.
[0029] The display unit 15 is a component for displaying a user interface (UI) image for operating the terminal device 10, and is configured with a display device such as a liquid crystal display or an organic electroluminescence display. The display unit 15 may also be configured to include a display and a drive circuit for driving the display.
[0030] The generic printer driver 16 will now be described. The generic printer driver 16 is an OS-standard printer driver that is included in the OS included in the control program or that is attached to the OS. For example, the generic printer driver 16 is a standard printer driver for the Windows (registered trademark; the same applies below) OS. The generic printer driver 16 can be a program that can control various types of printers to execute printing. The generic printer driver 16 can also be called an OS generic printing program or a generic printing program.
[0031] The generic printer driver 16 is a driver that uses a generic protocol for searching for printers and printing. The generic printer driver 16 uses, for example, mDNS / DNS-SD for searching for printers and IPP for printing on the printer. Here, DNS stands for Domain Name System. mDNS stands for multicast DNS. DNS-SD stands for DNS Service Discovery. IPP stands for Internet Print Protocol.
[0032] As can be seen from this example, the generic printer driver 16 can be, for example, an IPP Class driver. IPP is an example of a standard protocol for managing printers and controlling printing. IPP obtains and controls printer information using HTTP (Hyper Text Transfer Protocol) POST requests and responses. IPP can be used to configure the printer and obtain its status. Here, secure communication can be achieved by using HTTPS (HTTP Secure) instead of HTTP.
[0033] The vendor auxiliary app 17 will now be described. The vendor auxiliary app 17 is an application program that assists the generic printer driver 16 and is used to extend the functionality of the generic printer driver 16. Therefore, the generic printer driver 16 can have the functionality to launch the vendor auxiliary app 17 and send print jobs to the vendor auxiliary app 17. The vendor auxiliary app 17 can be, for example, a Print Support Application (PSA).
[0034] The vendor assistance app 17 can be a program that assists the generic printer driver 16 and causes a computer to execute print control suited to the capabilities of the target printer, i.e., print control that supports the printer's unique functions. The computer here refers to the terminal device 10 or the control unit 11. When the vendor assistance app 17 receives a print job from the generic printer driver 16, it can convert the print job so that printing using the specified printer's unique functions can be executed on that printer.
[0035] The vendor-auxiliary app 17 is an application program provided by a printer vendor or the like. The vendor-auxiliary app 17 can be provided to the user of the terminal device 10 by being published, for example, in an application store provided by the OS provider. Alternatively, the vendor-auxiliary app 17 can be provided to the user as being included in or attached to the OS.
[0036] The vendor-assistant application 17 includes a print control program, which will be described next. This print control program can also be implemented as a PSA, for example. This print control program can be used to automatically update programs such as application A (18).
[0037] Specifically, this print control program is a program that causes a computer to execute the acquisition process, determination process, and update process described below. The computer here also refers to the terminal device 10 or the control unit 11. In the following, an example will be given in which the target of update is application A (18), but other application programs may also be included.
[0038] The acquisition process acquires device information for printer A (31) from the generic printer driver 16. Device information can also be called device information or equipment information, and will be referred to as equipment information in the following explanations. In this acquisition process, the print control program can acquire the equipment information through inter-process communication with the generic printer driver 16. As can be seen from the fact that the equipment information is acquired from the generic printer driver 16, the equipment information is equipment information that can be acquired by the generic printer driver 16. Specifically, the generic printer driver 16 can acquire the equipment information for printer A (31) from printer A (31) using a generic protocol such as IPP.
[0039] The determination process determines whether application A (18), an external program related to printer A (31), needs to be updated based on the device information acquired in the acquisition process. For example, this determination process first obtains information about application A (18) associated with the device information. Next, this determination process checks the version of application A (18) and the latest version of application A (18) provided by the download server 20, and compares the two to determine whether an update is necessary. Whether an update is necessary can mean, for example, whether a more recent version of application A (18) than that of application A (18) in the storage unit 12 is available on the download server 20.
[0040] In the update process, if it is determined in the determination process that an update of application A (18) is necessary, application A (18) is updated. The update of application A (18) can mean a version upgrade of application A (18). In the update process, application A (18) is updated by downloading an update program for application A (18) from the download server 20 and executing the update program. Note that in the update process, application A (18) may also be updated by executing the update program for application A (18) on the download server 20.
[0041] In other words, this embodiment can provide an update method that includes the above-mentioned acquisition process, determination process, and update process.
[0042] In other words, the terminal device 10 includes a generic printer driver 16, and an acquisition processing unit, a determination processing unit, and an update processing unit as follows. The acquisition processing unit acquires device information for printer A (31) from the generic printer driver 16. The determination processing unit determines whether application A (18), which is an external program related to printer A (31), needs to be updated based on the device information acquired by the acquisition processing unit. If the determination processing unit determines that application A (18) needs to be updated, the update processing unit updates application A (18).
[0043] [Effects of the First Embodiment] Before describing a more specific example of the update process in this embodiment, the effects of this embodiment will be described.
[0044] As described above, in the printing system 100, in an environment where printing processing is performed using a generic printer driver 16 such as an OS standard printer driver, it is possible to automatically update application A (18) provided by the printer vendor. Therefore, even in such an environment, in the printing system 100, the user does not need to manually update application A (18), reducing the effort required for updates and making updates easier.
[0045] As described above, according to this embodiment, in an environment where printing processing is performed using the generic printer driver 16, it is possible to easily update printer-related application programs such as those provided by printer vendors.
[0046] To further explain these effects, we will compare this embodiment with printing systems according to comparative examples 1 and 2. First, the printing system according to comparative example 1 performs printing using a printer driver specific to the printer vendor, rather than a generic printer driver such as an IPP Class driver that is built into the OS as standard. In this case, the terminal device updates the application program using an update program provided by the vendor to manage updates to the application program. This update program compares the version of the application program installed on the terminal device with the version of the application program published on the download server, and performs an upgrade if necessary. However, the printing system according to comparative example 1 cannot perform printing using a generic printer driver.
[0047] The printing system according to Comparative Example 2 is a system that performs printing processing using a generic printer driver such as an IPP Class driver. However, the terminal device according to Comparative Example 2 is not equipped with the print control program described above according to this embodiment. In the printing system according to Comparative Example 2, because the printing processing is performed using a generic printer driver, it is not possible to use update programs like those used in Comparative Example 1. Therefore, the printing system according to Comparative Example 2 cannot determine which application programs the printer supports, nor can it update the application programs.
[0048] On the other hand, as described above, in this embodiment, the above-described print control program can be introduced to determine which application programs the printer supports and update them. Therefore, the printing system 100 according to this embodiment achieves the following effects even in an environment where printing processing is performed using a generic printer driver 16 such as an IPP Class driver. That is, the printing system 100 according to this embodiment makes it possible to easily update printer-related application programs, such as those provided by printer vendors, and keep them up to date.
[0049] [First example of update processing] A first example of the update process will be described with reference to Fig. 2 and Fig. 3. Fig. 2 is a sequence diagram for explaining the first example of the update process in the printing system 100 of Fig. 1. Fig. 3 is a diagram showing an example of a UI image displayed by the vendor assistance app 17 in the update process of Fig. 2.
[0050] In the first example, only printer A (31) is connected to terminal device 10, and of the application programs installed on terminal device 10, only application A (18) is supported by printer A (31).
[0051] In the first example, first, the user U uses the operation unit 14 to start the vendor auxiliary app 17, and then the vendor auxiliary app 17 performs a confirmation instruction operation to check the application programs supported by printer A (31) (step S11). Note that even if the user U does not perform a confirmation instruction operation, the vendor auxiliary app 17 may be configured to perform the above check upon startup.
[0052] Upon receiving the confirmation instruction, the vendor assistant app 17 sends a confirmation request for the device ID, an example of device information, to the printer A (31) connected to the terminal device 10 via the generic printer driver 16 (step S12). The device ID can also be called an apparatus ID or a device ID. In response, the printer A (31) sends the device ID of the printer A (31) to the generic printer driver 16, which then sends it to the vendor assistant app 17 (step S13). The generic printer driver 16 is not shown in the sequence diagrams such as Figure 2. Inter-process communication is used between the generic printer driver 16 and the vendor assistant app 17. IPP communication is used between the generic printer driver 16 and the printer A (31).
[0053] For example, the generic printer driver 16 can obtain the device ID from attribute information indicating the attributes of printer A (31) that is set for printer A (31) by the generic printer driver 16. In step S12, the generic printer driver 16 requests the attribute information for such settings, and in step S13, the generic printer driver 16 can obtain the device ID as part of the attribute information from printer A (31). Through such processing by the generic printer driver 16, the vendor assistance app 17 can send a request to confirm the device ID and receive the device ID.
[0054] This attribute information can be information that indicates the capabilities and status of printer A (31). For example, if the generic printer driver 16 is an IPP Class driver, this attribute information can be the following information: In this case, it can indicate any of the IPP setting values, such as Printer Attribute, Enable Printer, or Printer Description Attribute. If the generic printer driver 16 has already acquired the attribute information, the confirmation request in step S12 does not need to be sent to printer A (31); the vendor assistance app 17 can simply acquire the attribute information from the generic printer driver 16 in step S13.
[0055] In this way, the above-described acquisition process may acquire the device ID of the printer A (31) from the attribute information of the printer A (31) set by the generic printer driver 16.
[0056] Next, the vendor auxiliary app 17 sends a request to the download server 20 at the pre-stored URL to confirm the application programs supported by the printer A (31) with the acquired device ID (step S14). URL stands for Uniform Resource Locator. In response, the download server 20 sends information indicating the application programs supported by the printer A (31) to the vendor auxiliary app 17 (step S15). Due to space limitations, the application programs are simply abbreviated as "App" in FIG. 2. Hereinafter, the information sent in step S15 will be referred to as supported app information. This allows the vendor auxiliary app 17 to acquire the supported app information. The acquired supported app information can be information indicating the latest versions of the application programs supported by the printer A (31).
[0057] Next, the vendor-assisted app 17 determines whether the application program indicated by the support app information is installed based on the support app information received from the download server 20. In this example, application A (18) is installed. The vendor-assisted app 17 then compares the version of the determined installed application A (18) with the latest version indicated by the support app information to determine whether application A (18) needs to be updated (step S16).
[0058] Next, the vendor assistance app 17 incorporates the acquired support app information and the determination result of whether an update is necessary into its own UI image and displays it, which is then confirmed by the user U (step S17). If the determination result of step S16 indicates that an update is not necessary, the vendor assistance app 17 does not need to execute the processes from step S17 onwards or the processes from step S18 onwards, which will be described later. If the determination result of step S16 indicates that an update is not necessary and a UI image such as UI image 17a is to be displayed, the UI image may simply include, for example, a statement that no application programs require updating.
[0059] The UI image displayed in step S17 may be, for example, a UI image 17a shown in FIG. 3, which indicates an updatable application program and allows the user to instruct the execution of the update.
[0060] Furthermore, UI image 17a is an example of a UI image that allows not only updating updatable application programs but also new installation of new application programs that can be installed, because the supported app information can include information on not only the installed application A (18) but also all application programs supported by printer A (31).
[0061] The UI image 17a may include explanatory text 71, a group of update targets 72 with each target having a radio button for selection, a group of new installation targets 73 with each target having a radio button for selection, an update / install button 74, and a cancel button 75.
[0062] As shown in the figure, the sentence 71 may include a sentence indicating that it is possible to update a group of update targets 72, which are application programs that have already been installed and are related to printer A (31). The sentence 71 may also include a sentence indicating that it is possible to install a group of new installation targets 73, which are application programs that have not yet been installed and are related to printer A (31). In this example, the group of update targets 72 includes only application A (18). Also, FIG. 3 shows an example in which the group of new installation targets 73 includes application Aa and application Ab. Of course, the sentence 71 may also be a sentence recommending an update or a new installation.
[0063] In an example where new installation is also suggested, as illustrated in UI image 17a, the determination process in step S16 includes a determination as to whether new installation is necessary. The vendor assistance app 17 may compare the application programs installed in the terminal device 10 with the support app information. This allows the vendor assistance app 17 to obtain information indicating application programs related to printer A (31) that have not yet been installed.
[0064] The user U selects the target application program by selecting a radio button corresponding to the application program that needs to be updated or newly installed, and issues an installation instruction by selecting the update / install button 74 (step S18). This installation instruction is issued to the vendor-assisted App 17. Note that an update may also correspond to the installation of a new version, so step S18 is described as an installation instruction. In the example of UI image 17a, only the update of application A (18) has been selected, so an installation instruction to update application A (18) is issued.
[0065] Upon receiving the installation instruction, the vendor-assistant app 17 sends a transmission request to the download server 20 to acquire an app installer, which is an update program for the target application program (step S19). Upon receiving this transmission request, the download server 20 transmits the target app installer, and the vendor-assistant app 17 completes the download (step S20).
[0066] Next, the vendor-assisted app 17 executes the app installer to update or newly install the target application program (step S21). In the example of UI image 17a, since only the update of application A (18) is selected, only the app installer for application A (18) is downloaded in step S20, and only that app installer is executed in step S21.
[0067] When the update or new installation is complete, the vendor-assisted app 17 or the app installer displays an installation result indicating completion to the user U, and the user U can confirm the result (step S22). Note that the update or new installation may fail, in which case the installation result indicating failure may be displayed. In this way, from the execution of the app installer until the completion or failure of the update or new installation, the vendor-assisted app 17 or the app installer can receive instructions from the user U as needed and proceed with the process according to those instructions.
[0068] On the other hand, if the user U does not want to update or newly install any application programs, he or she can select the cancel button 75 instead of step S18. Upon receiving this selection, the vendor support app 17 closes the UI image 17a without updating or newly installing any application programs.
[0069] As explained in the first example, if the determination process determines that application A (18) needs to be updated, the above-mentioned update process can update application A (18) that has been determined to need to be updated.
[0070] Furthermore, as in the example that has undergone the processing of steps S17 and S18, if the determination processing determines that an update or new installation of an application program is necessary, the update processing may confirm with the user U before executing the update or new installation, respectively. In other words, the update processing may execute the update or new installation of the application program when the user U instructs the update or new installation, respectively. However, such confirmation of the user U regarding the update or new installation is not essential. In other words, if it is determined that an update or new installation is necessary, the update or new installation, respectively, may be executed automatically.
[0071] In step S17, UI image 17a is displayed, but the following UI image may be displayed instead of UI image 17a. That is, vendor assistance app 17 may extract only installed application A (18) from the information indicated by the support app information and display a UI image including only information about updates to the extracted application A (18). In this way, vendor assistance app 17 may not support new installations but may support only updates.
[0072] 2 shows an example in which the vendor's assistant app 17 performs all of the determination processing, but the following processing can also be used instead. That is, the download server 20 can perform the determination up to the necessity and send the determination result to the vendor's assistant app 17 as supported app information, and the vendor's assistant app 17 can use the determination result from the download server 20 as its determination result. In this case, in step S14, the vendor's assistant app 17 determines by itself whether an application program supported by printer A (31) indicated by the device ID obtained in step S13 is installed. Then, also in step S14, the vendor's assistant app 17 transmits information indicating the installed application program, in this example, information indicating application A (18), to the download server 20. This allows the download server 20 to determine whether an update is required.
[0073] In the first example of the update process, the device ID can be easily obtained by using attribute information to obtain the device ID. Also, in the first example, by making it possible to also support new installations, installation of application programs that have not yet been installed on printer A (31) can be executed on the terminal device 10. Also, in the first example, confirmation is obtained from user U before updating the application program, etc., so that processing can be performed in accordance with user U's intentions.
[0074] [Second example of update processing] A second example of the update process will be described with reference to Fig. 4. Fig. 4 is a sequence diagram for explaining the second example of the update process in the printing system 100 of Fig. 1.
[0075] The second example is an example in which the first example is adapted to handle updates to application programs related to multiple printers. In the second example, application A (18) is an application program related to printer A (31), and although not shown, application programs related to printer B (32) and printer C (33) are also stored in storage unit 12.
[0076] In the second example, the processing of steps S11 to S13 in the first example is also applied (steps S31 to S33). Next, the vendor assistant app 17 sends a device ID confirmation request to printer B (32), just as it did to printer A (31) (step S34), and receives the device ID sent from printer B (32) (step S35). Next, the vendor assistant app 17 sends a device ID confirmation request to printer C (33), just as it did to printer A (31) (step S36), and receives the device ID sent from printer C (33) (step S37). In this way, the vendor assistant app 17 can obtain the device IDs of printer A (31), printer B (32), and printer C (33). The order in which the device IDs of the printers are obtained does not matter, as long as a predetermined rule, such as the order in which the printers are registered in the generic printer driver 16, is determined in advance.
[0077] In this way, the above-described acquisition process may be a process of acquiring device information from the generic printer driver 16 for each of a plurality of printers.
[0078] 2, the vendor assistance app 17 then sends a request to the download server 20 at the pre-stored URL to confirm the application programs supported by the printer with the acquired device ID (step S38). However, unlike step S14, in step S38, a request is sent to confirm the application programs supported by the printer with the acquired device ID for all of printer A (31), printer B (32), and printer C (33).
[0079] In response, the download server 20 transmits information indicating the application programs supported by printer A (31), printer B (32), and printer C (33) to the vendor auxiliary app 17 (step S39). This allows the vendor auxiliary app 17 to obtain support app information indicating the latest versions of the application programs supported by printer A (31), printer B (32), and printer C (33). Of course, the application programs associated with printer A (31) may overlap with the application programs associated with other printers, such as printer B (32) and printer C (33). For example, application A (18) may be associated with printer A (31) and printer B (32). Therefore, the download server 20 should transmit support app information to the vendor auxiliary app 17 in a way that avoids duplication. However, the vendor auxiliary app 17 may determine whether the information is duplicated and retain one of the duplicated pieces of information for subsequent processing.
[0080] Next, the vendor-assisted app 17 determines whether the application program indicated by the support app information is installed based on the support app information received from the download server 20. For simplicity's sake, this example will also be described assuming that application A (18) is installed. Then, similar to step S16, the vendor-assisted app 17 compares the version of the determined installed application A (18) with the latest version indicated by the support app information. By performing this comparison, the vendor-assisted app 17 determines whether application A (18) needs to be updated (step S40).
[0081] Next, similar to step S17, the vendor assistance app 17 incorporates the acquired support app information and the result of the determination as to whether an update is necessary into its own UI image and displays it, which the user U confirms (step S41). However, in the UI image displayed here, for example, in the UI image 17a of Fig. 3, it is advisable to change the label "Printer A" to "Registered Printers" or "Printer A, Printer B, Printer C," etc.
[0082] The process following step S41 will not be described here, but is the same as steps S18 to S22 in FIG. 2 (steps S42 to S46), and is also the same when the user U does not want to update or newly install any application program.
[0083] In addition to the effects of the first example, the second example of the update process has the effect of being able to update or newly install application programs related to each of multiple printers. Furthermore, the second example has the advantage that the process can be performed all at once, compared to the example in which the first example of the update process is repeated for each printer.
[0084] [Third example of update processing] A third example of the update process will now be described. In the first example, application A (18) etc. is updated when user U launches vendor support app 17. On the other hand, in the third example, application A (18) etc. is updated when user U launches an application program that launches or edits a file to be printed, such as a document file, and sets print settings or issues print instructions to printer A (31).
[0085] Specifically, first, user U launches an application program that launches and edits files to be printed, such as document files. The application program to be launched may be application A (18) that is determined to be related to printer A (31), or any other application program, as long as it is an application program that can print.
[0086] Next, user U selects printer A (31) in the print settings for the file to be printed, or issues a print instruction to printer A (31) from the operation unit 14. In the third example, this operation is treated as the confirmation instruction operation of step S11 in Figure 2 and processed. This operation launches the vendor support app 17 via the generic printer driver 16, allowing the processing of Figure 2 to be executed.
[0087] By operating a print instruction to printer A (31), the generic printer driver 16 converts the file to be printed into print data, which is data in a printable format, and the vendor assistance app 17 receives the print data from the generic printer driver 16. Therefore, the determination process in the third example means that when print data, which is data to be processed by the printer, is received from the generic printer driver 16, it is determined whether or not an update of the application program related to printer A (31) is required.
[0088] Furthermore, when the print settings for printer A (31) are configured, the generic printer driver 16 launches the vendor support app 17. Therefore, the determination process in the third example can also mean determining whether an update is required when printer A (31) is specified from the generic printer driver 16 and the vendor support app 17 is launched. Here, too, the determination is made on the application program related to printer A (31).
[0089] Of course, the third example can be applied not only to updating an application program but also to new installations. Also, in the third example, in the situations described in steps S17 and S18 of the first example, the update may be executed after confirmation by the user U, or the update may be executed automatically without confirmation by the user U.
[0090] In addition to the effects of the first example, the third example of the update process has the effect of enabling updates or new installations of printer-related application programs with less confirmation effort on the part of the user U. Of course, the third example can also be applied to the second example in the same way.
[0091] (Embodiment 2) [System Configuration] An example of the configuration of a printing system according to the second embodiment will be described with reference to Fig. 5. Fig. 5 is a block diagram showing an example of the configuration of a printing system according to the second embodiment.
[0092] As shown in Fig. 5, the printing system 100a according to this embodiment is a system in which the firmware programs stored in each printer in the printing system 100 of Fig. 1 are subject to updates, etc. In other words, while the first embodiment gave an example of an external program that is subject to updates, etc., in this embodiment, the external program that is subject to updates, etc. is the printer's firmware program. The printer's firmware program is basically provided by the printer's vendor.
[0093] 5, the firmware programs stored in printer A (31), printer B (32), and printer C (33) are designated as FW31a, FW32a, and FW33a, respectively. In the printing system 100a, the terminal device 10a will be used as an example in which application A (18) is not installed on the terminal device 10.
[0094] In this embodiment, the download server 20a is a server that stores the following update program instead of an application program update program in the download server 20. This update program refers to a program for updating various printer firmware programs, such as FW31a, FW32a, and FW33a. This update program is stored in a state that allows it to be downloaded from each printer so that it can be provided to each printer, or in a state that allows it to be downloaded from the terminal device 10a so that it can be provided to the terminal device 10a. The download server 20a can also store the firmware programs themselves for various printers. In this way, the download server 20a can be a server that centrally manages and publishes multiple firmware programs provided by printer vendors. The rest of the configuration and processing of the printing system 100a are generally the same as those of the printing system 100, so a detailed description thereof will be omitted.
[0095] In the print control program of this embodiment, the target of the determination process and update process is firmware programs such as FW 31a, FW 32a, and FW 33a. Therefore, in the update process of this embodiment, if the determination process determines that FW 31a needs to be updated, for example, FW 31a is updated. With this configuration, the printing system 100a updates the printer firmware programs in the same way as the application programs in the printing system 100.
[0096] [Effects of the second embodiment] Before describing a more specific example of the update process in this embodiment, the effects of this embodiment will be described.
[0097] As can be seen from the above explanation, in the printing system 100a, in an environment where printing processes are performed using a generic printer driver 16 such as an OS standard printer driver, the firmware program provided by the printer vendor can be automatically updated. Therefore, even in such an environment, in the printing system 100a, the user does not need to manually update the firmware program, reducing the effort required for updates and making updates easier.
[0098] As described above, according to this embodiment, in an environment where printing processes are performed using the generic printer driver 16, it is possible to easily update the printer firmware program, such as that provided by the printer vendor.
[0099] To further explain these effects, we will compare this embodiment with printing systems according to comparative examples 3 and 4. First, the printing system according to comparative example 3, like comparative example 1, performs printing using a printer driver specific to the printer vendor, rather than a generic printer driver such as an IPP Class driver that is built into the OS as standard. In this case, the terminal device updates the firmware program using an update program for managing firmware program updates. This update program compares the firmware program version of the printer set as a printable printer on the terminal device with the firmware program version published on the download server. After performing this comparison, the update program performs an upgrade as necessary. However, the printing system according to comparative example 2 cannot perform printing using a generic printer driver.
[0100] The printing system according to Comparative Example 4, like Comparative Example 2, is a system that performs printing processes using a generic printer driver such as an IPP Class driver. However, like Comparative Example 2, the terminal device according to Comparative Example 4 is not equipped with the print control program described above according to this embodiment. In the printing system according to Comparative Example 4, because the printing process is performed using a generic printer driver, it is not possible to use update programs like those used in Comparative Example 3. Therefore, in the printing system according to Comparative Example 4, it is not possible to determine whether the printer's firmware program is the latest version, nor is it possible to update the firmware program.
[0101] On the other hand, as described above, in this embodiment, the above-described print control program is introduced to determine whether a printer's firmware program needs to be updated based on whether it is up to date, and if so, to execute the update. Therefore, the printing system 100a according to this embodiment achieves the following advantages even in an environment where printing is performed using a generic printer driver 16 such as an IPP Class driver. That is, the printing system 100a according to this embodiment makes it possible to easily update the printer's firmware program and keep it up to date.
[0102] [Fourth example of update processing] A fourth example of the update process will be described with reference to Fig. 6. The fourth example corresponds to the first example of the update process according to the second embodiment. Fig. 6 is a sequence diagram for describing a fourth example of the update process in a printing system, which is the first example of the update process in the printing system 100a in Fig. 5.
[0103] In the fourth example, for simplicity of explanation, an example will be given in which only printer A (31) is connected to terminal device 10a.
[0104] In the third example, first, the user U uses the operation unit 14 to start the vendor support app 17, and the vendor support app 17 issues a confirmation instruction to check the version of the firmware 31a of the printer A (31) (step S51). Note that even if the user U does not issue a confirmation instruction, the vendor support app 17 may be configured to perform the above check upon startup.
[0105] Upon receiving the confirmation instruction, the vendor assistant app 17 sends a request to confirm the version of the firmware 31a to the printer A (31) connected to the terminal device 10a (step S52). In response, the printer A (31) sends firmware version information indicating the version of the firmware 31a to the vendor assistant app 17 (step S53).
[0106] The communications in steps S52 and S53 may be performed in accordance with, for example, a vendor-extended IPP protocol, other Simple Network Management Protocol (SNMP), or a vendor-specific protocol. Note that the processing in steps S52 and S53 may be performed after the processing in steps S54 and S55, or after the processing in steps S56 and S57, as long as it is performed before step S58.
[0107] 2, the vendor assistant app 17 then sends a device ID confirmation request, as an example of device information, to printer A (31) connected to terminal device 10a via the generic printer driver 16 (step S54). Then, printer A (31) sends the device ID of printer A (31) to the generic printer driver 16 in response, as in step S13 of FIG. 2, and the generic printer driver 16 sends it to the vendor assistant app 17 (step S55).
[0108] Next, the vendor assistant app 17 sends a request to the download server 20a at the pre-stored URL to confirm the latest version of the firmware 31a for the printer A (31) with the acquired device ID (step S56). In response, the download server 20a sends latest firmware version information, which is information indicating the latest version of the firmware 31a, to the vendor assistant app 17 (step S57). This allows the vendor assistant app 17 to obtain the latest firmware version information.
[0109] Next, the vendor assistance app 17 compares the latest FW version information received from the download server 20a with the FW version information received from printer A (31) and determines whether the two match. In this way, the vendor assistance app 17 determines whether the FW 31a is up to date, that is, whether the FW 31a does not need to be updated (step S58).
[0110] Next, the vendor assistance app 17 incorporates the acquired latest FW version information and the determination result of whether an update is necessary into its own UI image and displays it, which the user U confirms (step S59). Although not shown, this UI image may include, for example, a button for performing an update if an update is necessary, or may include a message indicating that the latest version is present if an update is not necessary. If the determination result of step S58 indicates that an update is not necessary, the vendor assistance app 17 does not need to execute the processes from step S59 onwards or the processes from step S60 onwards, which will be described later.
[0111] The user U issues an instruction to update the target FW 31a by selecting an update button on the UI image displayed in step S59 from the operation unit 14 (step S60). This update instruction, which is a FW update instruction, is issued to the vendor assistance app 17.
[0112] The vendor support app 17 that has received the FW update instruction sends a FW update request, which is a request to update the FW 31a, to the web server 34 (step S61). The web server 34 is a server provided in the printer A (31). The web server 34 can also be installed as an external server of the printer A (31), in which case it can be connected to the printer A (31) via a network.
[0113] For the transmission of step S61, the terminal device 10a may include a web browser that serves as a client of the web server 34, either in the vendor assistant app 17 or external to the vendor assistant app 17. Upon receiving the FW update instruction, the vendor assistant app 17 may start up the web browser and transmit the FW update request by accessing an IP (Internet Protocol) address that is preset as the IP address of the web server 34.
[0114] Upon receiving this FW update request, the Web server 34 requests the download server 20a to send command data for updating the FW 31a, and in response, the download server 20a sends the command data to the Web server 34. Note that updating the FW 31a may also mean rewriting the FW 31a. This command data can also be referred to as ROM (read-only memory) data. This allows the Web server 34 to receive the command data for the FW 31a. By executing this command data, the Web server 34 controls the printer A (31) to update the FW 31a, that is, to perform a version upgrade of the FW 31a (step S62).
[0115] When the update is complete, the Web server 34 transmits a FW update completion notification indicating that the update is complete to the vendor assistance app 17 (step S63). The vendor assistance app 17 receives this notification and displays the FW update result indicating the result of the FW update on the UI image (step S64). If the update fails, the web server 34 notifies the vendor assistance app 17 of the FW update failure in step S63, and notifies the vendor assistance app 17 of the FW update failure in step S64.
[0116] On the other hand, if the user U does not want to update the firmware 31a, instead of step S60, the user U can instruct the vendor assistance app 17 not to update the firmware 31a.
[0117] As explained in the fourth example, in the update process of this embodiment, when it is determined in the determination process that the FW 31a needs to be updated, the FW 31a that is determined to need to be updated can be updated.
[0118] Furthermore, as in the example that has gone through the processing of steps S59 and S60, if it is determined in the determination processing that a firmware program update is necessary, the update processing described above may execute the update after confirming with the user U. In other words, the update processing described above may execute an update of the firmware program when the user U instructs the update. However, such confirmation of the update with the user U is not essential. In other words, the update may be executed automatically when it is determined that an update is necessary.
[0119] 6 shows an example in which the vendor-assistant app 17 performs all the determination processing, but the following processing can be adopted instead. That is, the download server 20a can determine whether an update is necessary and transmit the determination result to the vendor-assistant app 17 as latest FW version information, and the vendor-assistant app 17 can use the determination result of the download server 20a as it is as its determination result. In this case, in step S56, the vendor-assistant app 17 transmits information indicating the version of the firmware program, in this example, the FW version information of FW 31a, to the download server 20a. The download server 20a can then use this FW version information to determine whether an update is necessary and transmit the determination result as the latest FW version information in step S57.
[0120] In step S61, the vendor assistant app 17 may also issue a transmission request to the download server 20a to obtain command data for executing the update of the target firmware 31a. In this case, in step S62, the download server 20a receives this transmission request and transmits the target command data to the vendor assistant app 17, thereby causing the vendor assistant app 17 to complete the download. The vendor assistant app 17 then executes the command data to control the printer A (31) and complete the version upgrade of the firmware 31a.
[0121] In the fourth example of the update process, instead of the application program in the first example of the update process according to the first embodiment, it is possible to easily complete the upgrade of the printer's firmware program. Also, in the fourth example, it is possible to update a firmware program for which a newer version is available using a web server provided in the printer. Also, in the fourth example, by confirming with the user U before updating the firmware program, it is possible to perform processing in accordance with the user U's intentions.
[0122] [Fifth example of update processing] A fifth example of the update process will be described with reference to Fig. 7 and Fig. 8. The fifth example corresponds to the second example of the update process according to the second embodiment. Fig. 7 is a sequence diagram for explaining a fourth example of the update process in a printing system, which is the second example of the update process in the printing system 100a in Fig. 5. Fig. 8 is a sequence diagram following Fig. 7.
[0123] The fifth example is an example in which the fourth example is adapted to support updates of firmware programs FW31a, FW32a, and FW33a for printer A (31), printer B (32), and printer C (33), which are examples of multiple printers.
[0124] In the fifth example, the processing of steps S51 to S55 in the fourth example is also applied (steps S71 to S75). Next, the vendor assistant app 17 sends a FW version information confirmation request to printer B (32) (step S76) and receives a response thereto (step S77), just as it did to printer A (31). Also, the vendor assistant app 17 sends a device ID confirmation request to printer B (32) (step S78) and receives the device ID as a response thereto (step S79), just as it did to printer A (31). This allows the vendor assistant app 17 to obtain the FW version information and device ID of printer B (32). Next, the vendor assistant app 17 sends a FW version information confirmation request to printer C (33) (step S80) and receives a response thereto (step S81), just as it did to printer A (31). Similarly to printer A (31), the vendor assistance app 17 also sends a device ID confirmation request to printer C (33) (step S82) and receives the device ID in response (step S83). This allows the vendor assistance app 17 to obtain the firmware version information and device ID of printer C (33). Note that the order in which the firmware version information and device IDs of the printers are obtained does not matter, as long as a predetermined rule, such as the order in which the printers are registered in the generic printer driver 16, is determined in advance.
[0125] In this way, the acquisition process in this embodiment may also be a process of acquiring device information from the generic printer driver 16 for each of a plurality of printers.
[0126] 6, the vendor assistance app 17 then sends a request to the download server 20 at the pre-stored URL to confirm the latest version of the firmware program for each printer indicated by each acquired device ID (step S84). However, unlike step S56, in step S84, a request is sent to confirm the latest version of FW31a, FW32a, and FW33a for printer A (31), printer B (32), and printer C (33) indicated by each acquired device ID.
[0127] In response, the download server 20a transmits latest FW version information, which is information indicating the latest versions of FW 31a, FW 32a, and FW 33a, to the vendor assistant App 17 (step S85). This allows the vendor assistant App 17 to obtain the latest FW version information for FW 31a, FW 32a, and FW 33a.
[0128] Next, the vendor assistance app 17 compares the latest FW version information received from the download server 20a with the FW version information received from each printer, and determines whether the two match for each printer. As a result, the vendor assistance app 17 determines whether each of FW 31a, FW 32a, and FW 33a is up to date (step S86). The determination in step S86 means determining whether each of FW 31a, FW 32a, and FW 33a needs to be updated.
[0129] Next, similar to step S59, the vendor assistance app 17 incorporates the acquired latest version information and the determination result of whether an update is necessary into its own UI image and displays it, which the user U confirms (step S87). However, the UI image displayed here is the UI image displayed in the fourth example, which shows the determination results for all of printer A (31), printer B (32), and printer C (33). Although not shown, this UI image may include, for example, a button for performing an update if an update is necessary, or may include a statement indicating that the latest version is present if an update is not necessary. If the determination result of step S86 indicates that an update is not necessary for any firmware program, the vendor assistance app 17 does not need to execute the processing from step S87 onwards or the processing from step S88 onwards, which will be described later.
[0130] The user U issues an instruction to update the firmware program to be updated among FW 31a, FW 32a, and FW 33a by selecting an update button on the UI image displayed in step S87 from the operation unit 14. This update instruction, which is a FW update instruction, is sent to the vendor assistance App 17.
[0131] Similar to step S61, the vendor assistance app 17 that has received the FW update instruction sends a FW update request, which is a request to update the firmware program to be updated, to the web server 34 (step S89). However, the illustrated web servers 34 are a server provided in printer A (31), a server provided in printer B (32), and a server provided in printer C (33). Then, in step S89, the FW update request is sent to each of the servers provided in the printers to be updated.
[0132] For the transmission of step S89, the terminal device 10a may include a web browser that serves as a client of the web server 34, either in the vendor assistant app 17 or external to the vendor assistant app 17. Upon receiving the FW update instruction, the vendor assistant app 17 may start up the web browser and transmit a FW update request to each web server 34 by accessing an IP address that has been preset as the IP address of each web server 34.
[0133] Each Web server 34 that receives this FW update request requests the download server 20a to send command data for executing the update of the target firmware program, and in response, the download server 20a sends the command data to the Web server 34. This allows each Web server 34 to receive the command data for the target firmware program. By executing this command data, the Web server 34 controls the target printer to update the firmware program to be updated, i.e., to perform a version upgrade (step S90). As a result, if, for example, FW 31a, FW 32a, and FW 33a all require updating, it is possible to update all of the firmware programs.
[0134] However, the Web server 34 can also be installed as a shared server external to printer A (31), printer B (32), and printer C (33). In this case, the Web server 34 simply needs to be connected to printer A (31), printer B (32), and printer C (33) via a network. In this case, the destination of the FW update request in step S89 is a single Web server 34. This Web server 34 then obtains command data for one or more printers whose firmware programs are to be updated from the download server 20a. Note that, depending on the model of each printer, multiple firmware programs among FW 31a, FW 32a, and FW 33a may be the same. In this case, only one shared command data needs to be obtained. The Web server 34 then executes the obtained command data to control the printers whose firmware is to be updated and update their firmware programs. Even when a shared server is provided as the Web server 34 in this way, if, for example, FW 31a, FW 32a, and FW 33a all require updating, all of the firmware programs can be updated.
[0135] When the update is complete, each Web server 34 that received the FW update request transmits a FW update completion notification indicating that the update has been completed to the vendor assistance App 17 (step S91). The vendor assistance App 17 then receives this notification and displays the FW update results indicating the results of each FW update on the UI image (step S92). Note that for firmware programs whose updates have failed, a notification of FW update failure is sent in step S91, and a notification of the FW update failure is sent in step S92.
[0136] On the other hand, if the user U does not want to update any of the firmware programs, instead of step S88, the user U can instruct the vendor assistance app 17 not to perform the updates.
[0137] In addition to the effects of the fourth example, the fifth example of the update process has the effect of being able to update the firmware programs of multiple printers at once. In other words, the fifth example has the advantage that the process can be performed all at once compared to the example in which the fourth example of the update process is repeated for each printer.
[0138] [Sixth example of update processing] A sixth example of the update process will be described. The sixth example corresponds to the third example according to the second embodiment. The sixth example is obtained by applying the third example of the update process described in the first embodiment to the second embodiment in the same manner.
[0139] A sixth example of the update process will now be described. In the fourth example, the FW 31a is updated when the user U starts the vendor support app 17. On the other hand, in the sixth example, the user U starts an application program that starts or edits a file to be printed, such as a document file, and sets print settings or issues a print instruction to the printer A (31), thereby updating the FW 31a.
[0140] Specifically, first, user U launches an application program that launches and edits files to be printed, such as document files. The application program to be launched may be an application program related to a connected printer, such as application A (18) related to printer A (31), or any other application program. The application program to be launched may be any application program that is capable of printing.
[0141] Next, user U selects printer A (31) in the print settings for the file to be printed, or issues a print instruction to printer A (31) from the operation unit 14. In the sixth example, this operation is treated as the confirmation instruction operation of step S51 in Fig. 6 and processed. This operation launches the vendor support app 17 via the generic printer driver 16, allowing the processing in Fig. 6 to be executed.
[0142] As explained in the third example, when a print instruction is issued to printer A (31), the generic printer driver 16 converts the file to be printed into print data, and the vendor assistance app 17 receives the print data from the generic printer driver 16. Therefore, the determination process in the sixth example means that when print data, which is data to be processed by the printer, is received from the generic printer driver 16, it is determined whether or not the firmware 31a of printer A (31) needs to be updated.
[0143] Furthermore, an operation to configure print settings for printer A (31) causes the generic printer driver 16 to launch the vendor support app 17. Therefore, the determination process in the sixth example can also mean determining whether the firmware 31a of printer A (31) needs to be updated when printer A (31) is specified from the generic printer driver 16 and the vendor support app 17 is launched.
[0144] Also, in the sixth example, in situations such as those described in steps S59 and S60 of the fourth example, the update may be performed after confirmation from user U, or the update may be performed automatically without confirmation from user U.
[0145] In addition to the effects of the fourth example, the sixth example of the update process has the effect of allowing the printer firmware program to be updated with less confirmation effort on the part of the user U. Of course, the sixth example can also be applied to the fifth example in the same way.
[0146] (Other variations) The present disclosure is not limited to the above-described embodiments and may be modified as appropriate without departing from the spirit of the present disclosure. For example, the system configuration of the printing system, the configuration of each device constituting the system, the configuration of each program included in each device, and the processing procedures of each device are not limited to those exemplified. The printing system may also employ a network configuration in which a terminal device connects to a printer via a print server. Embodiments 1 and 2 may also be combined. In other words, the printing system may be configured to support updates of both application programs and firmware programs.
[0147] Furthermore, in the above-described embodiments, a printing device is used as an example of an image processing device, and a printing system is used as an example of an image processing system. However, the image processing device is not limited to a printing device, and the image processing system is not limited to a printing system. Image processing devices other than printing devices include various types of devices that perform image processing, such as scanners, facsimile machines, and projectors. The various examples and effects described in the above-described embodiments can be explained for any image processing device by substituting the printing device for the image processing device. For example, if the image processing device is a scanner, the generic driver would be a generic scanner driver. The present disclosure enables easy updating of programs related to various types of image processing devices, such as those provided by image processing device vendors, even in environments where image processing is performed using generic drivers that control the image processing devices.
[0148] Each device included in an image processing system such as a printing system according to the above-described embodiment may have, for example, the following hardware configuration. Here, examples of the devices shown in Figures 1 and 5 include a terminal device, a download server, and printers. Figure 9 is a diagram showing an example of the hardware configuration of a device.
[0149] 9 may include a processor 1001, a memory 1002, and an interface 1003. The interface 1003 may include, for example, a communication interface or an interface with an input / output device, as required depending on the device.
[0150] The processor 1001 may be, for example, a CPU, a GPU, or an MPU (Micro Processor Unit), also known as a microprocessor. The processor 1001 may include multiple processors. The memory 1002 is configured, for example, by a combination of volatile memory and non-volatile memory. The functions of each device are realized by the processor 1001 reading a program stored in the memory 1002 and executing it while exchanging necessary information via the interface 1003.
[0151] The above-described program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable media or tangible storage media include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD), or other memory technologies. By way of example and not limitation, computer-readable media or tangible storage media include CD-ROMs, digital versatile discs (DVDs), Blu-ray discs, or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable media or communication media include electrical, optical, acoustic, or other forms of propagated signals.
[0152] The present invention has been described above in accordance with the above-mentioned embodiment, but the present invention is not limited to the configuration of the above-mentioned embodiment, and naturally includes various modifications, alterations, and combinations that a person skilled in the art can make within the scope of the invention as defined in the claims of this application. [Explanation of symbols]
[0153] 10...terminal device, 10a...terminal device, 11...control unit, 12...memory unit, 13...communication unit, 14...operation unit, 15...display unit, 16...generic printer driver, 17...vendor auxiliary app, 17a...UI image, 18...application A, 20...download server, 20a...download server, 31...printer A, 31a...FW, 32...printer B, 32a...FW, 33...printer C, 33a...FW, 34...web server, 71...text, 72...group to be updated, 73...group to be newly installed, 74...update / install button, 75...cancel button, 100...printing system, 100a...printing system, 1000...device, 1001...processor, 1002...memory, 1003...interface, N1...network, N2...network, U...user.
Claims
1. an acquisition process for acquiring device information of the image processing device from the generic driver; a determination process for determining whether an external program related to the image processing device needs to be updated based on the acquired device information; an update process for updating the external program when it is determined in the determination process that the external program needs to be updated; A control program that causes a computer to execute the above.
2. the image processing device is a printing device, The control program according to claim 1 .
3. the control program is a Print Support Application; The control program according to claim 2 .
4. the acquisition process acquires the device information from attribute information indicating attributes of the image processing device set by the generic driver; The control program according to claim 1 or 2.
5. When it is determined in the determination process that the external program needs to be updated, the update process asks a user for confirmation, and when the user instructs the external program to be updated, the update process executes the update of the external program. The control program according to claim 1 or 2.
6. the determination process determines whether or not the external program needs to be updated when data to be processed by the image processing device is received from the generic driver; The control program according to claim 1 or 2.
7. the external program is a firmware program for the image processing device; The control program according to claim 1 or 2.
8. The external program is an application program installed on the computer. The control program according to claim 1 or 2.
9. the acquisition process acquires the device information from the generic driver for each of a plurality of image processing devices; The control program according to claim 1 or 2.
10. A generic driver and an acquisition processing unit that acquires device information of the image processing device from the generic driver; a determination processing unit that determines whether an external program related to the image processing device needs to be updated based on the acquired device information; an update processing unit that updates the external program when the determination processing unit determines that the external program needs to be updated; A control device comprising:
11. an acquisition process for acquiring device information of the image processing device from the generic driver; a determination process for determining whether an external program related to the image processing device needs to be updated based on the acquired device information; an update process for updating the external program when it is determined in the determination process that the external program needs to be updated; Update methods including:
Citation Information
Patent Citations
Information processing device and control method for information processing device, and program
JP2021043547A