The present invention relates to a recording system having an image supply apparatus such as a digital camera or the like, and a recording apparatus, and a communication control method thereof, and an image supply apparatus, recording apparatus, and communication control method thereof.
In recent years, digital cameras (image sensing devices) which can sense an image and can convert the sensed image into digital image data by a simple operation have been popularly used. When an image sensed by such camera is printed and is used as a photograph, it is a common practice to temporarily download the sensed digital image data from a digital camera to a PC (computer), to execute an image process by that PC, and to output the processed image data from the PC to a color printer, thus printing an image.
By contrast, a color print system which allows a digital camera to directly transfer digital image data to a color printer without the intervention of any PC and can print it out (to be referred to as a direct print process hereinafter), a so-called photo-direct (PD) printer which can receive a memory card, which is mounted on a digital camera and stores sensed images, and can print sensed images, and the like have recently been developed (see Japanese Patent Laid-Open No. 2003-061034).
In particular, when image data is directly transferred from a digital camera to a printer upon printing, since digital cameras have different specifications, operation methods, and the like depending on vendors, a photo-direct printer compatible to digital cameras of various vendors is demanded.
In a communication mode of a photo-direct printer compatible to digital cameras of various vendors, a request and response are always paired. Therefore, when a printer sends a request to a digital camera, the digital camera must return an appropriate response to the printer when it receives and interprets the request.
In this case, the digital camera cannot often return a response to the request by reasons that the digital camera is executing some process, and no free buffer area is available, the digital camera cannot interpret the request received from the printer, the digital camera is not ready to interpret the request, and so forth. In this case, since the printer cannot receive any response to the issued request, the printer cannot proceed to the next process, and inconsistency occurs in a communication mode which is effected by a request and response, resulting in communication failures.
The present invention has been made in consideration of the above prior art, and a characteristic feature of the present invention is to provide a recording system and communication control method, which can receive and record image data from image supply apparatus of respective vendors since image data transfer and recording instructions are made independently of interfaces.
According to an aspect of the present invention, there are provided an image supply apparatus and recording apparatus, which disable a received request in communication procedures to prevent communication failures if no response can be returned to the request in a recording system in which an image supply apparatus and recording apparatus communicate with each other via a general-purpose interface, and image data is transmitted from the image supply apparatus to the recording apparatus using a predetermined protocol upon recording, a recording system including these apparatuses, and a communication control method thereof.
According to the present invention, there is provided with a recording system in which an image supply apparatus and a recording apparatus communicate with each other via a general-purpose interface, and the image supply apparatus transmits image data to the recording apparatus using a predetermined protocol to record the image data, wherein after a communication procedure is established by applications which are installed in the image supply apparatus and the recording apparatus and use the predetermined protocol, in a case where one of the recording apparatus and the image supply apparatus transmits a request, and a receiving apparatus transmits information other than a response corresponding to the request in response to the request in a case where the receiving apparatus does not process the request, the apparatus that has transmitted the request comprises means for disabling the received information, and the receiving apparatus comprises transmission means for transmitting the information other than the response corresponding to the received request in accordance with status of the receiving apparatus.
Further, according to the present invention, there is provided with a communication control method in a recording system in which an image supply apparatus and a recording apparatus communicate with each other via a general-purpose interface, and the image supply apparatus transmits image data to the recording apparatus using a predetermined protocol to record an image, the method comprising: a step of allowing, in a case where one of the recording apparatus and the image supply apparatus transmits a request, and the receiving apparatus transmits information other than a response corresponding to the request in response to the request in a case where the receiving apparatus does not process the request, the apparatus that has transmitted the request to disable the received information, after a communication procedure is established by applications which are installed in the image supply apparatus and the recording apparatus; and a transmission step of allowing the receiving apparatus to transmit the information other than a response corresponding to the received request in accordance with status of the receiving apparatus.
Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the descriptions, serve to explain the principle of the invention.
Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings.
Referring to
One end portion of the access cover 1003 is rotatably held by the upper case 1002 to be able to open/close the opening formed on the upper surface of the main body. When the access cover 1003 is opened, a printhead cartridge (not shown), ink tanks (not shown), or the like housed in the main body can be exchanged. Although not shown, when the access cover 1003 is opened/closed, a projection formed on the rear surface of the cover 1003 rotates a cover open/close lever. By detecting the rotation position of that lever using a microswitch or the like, the open/close state of the access cover 1003 is detected.
A power key 1005 is arranged on the upper surface of the upper case 1002. A control panel 1010 which comprises a liquid crystal display 1006, various key switches, and the like is provided on the right side of the upper case 1002. The structure of the control panel 1010 will be described in detail later with reference to
<Overview of Printer Console>
Referring to
<Overview of Printer Electric Specification>
The arrangement of principal part associated with the control of the PD printer 1000 according to this embodiment will be described below with reference to
Referring to
Note that signals are exchanged between this controller 3000 and printer engine 3004 via the aforementioned USB 3021 or an IEEE 1284 bus 3022.
Reference numeral 4001 denotes a PC card interface, which reads image data stored in the inserted PC card 3011, or writes data in the PC card 3011. Reference numeral 4002 denotes an IEEE 1284 interface, which exchanges data with the printer engine 3004. This IEEE 1284 interface 4002 is a bus used when image data stored in the digital camera 3012 or PC card 3011 is to be printed. Reference numeral 4003 denotes a USB interface, which exchanges data with the PC 3010. Reference numeral 4004 denotes a USB host interface, which exchanges data with the digital camera 3012. Reference numeral 4005 denotes a control panel interface, which receives various operation signals from the control panel 1010, and outputs display data to the display unit 1006. Reference numeral 4006 denotes a viewer interface, which controls display of image data on the viewer 1011. Reference numeral 4007 denotes an interface, which controls interfaces with various switches, LEDs 4009, and the like. Reference numeral 4008 denotes a CPU interface, which controls data exchange with the DSP 3002. Reference numeral 4010 denotes an internal bus (ASIC bus), which interconnects these interfaces.
An overview of the operation based on the above arrangement will be explained below.
<Normal PC Printer Mode>
This mode is a print mode for printing an image on the basis of print data sent from the PC 3010.
In this mode, when data from the PC 3010 is input via the USB connector 1013 (
<Direct Print Mode from PC Card>
When the PC card 3011 is attached to or detached from the card slot 1009, an interrupt is generated, and the DSP 3002 can detect based on this interrupt whether or not the PC card 3011 is attached or detached (removed). When the PC card 3011 is attached, compressed image data (e.g., compressed by JPEG) stored in that PC card 3011 is read and stored in the memory 3003. If the user issues a print instruction of the stored image data using the control panel 1010, the compressed image data is decompressed, and is stored in the memory 3003. The image data is converted into print data that can be printed by the printer engine 3004 by executing conversion from RGB signals into YMCK signals, gamma correction, error diffusion, and the like, and the print data is output to the printer engine 3004 via the IEEE 1284 interface 4002, thus printing an image.
<Overview of Camera/Printer Connection>
Referring to
An object of this embodiment is to provide a PD printer which can connect digital cameras of a plurality of vendors and can print data. Protocols required upon executing a print process by connecting the PD printer 1000 according to this embodiment and a digital camera will be described in detail hereinafter.
This embodiment proposes NCDP (New Camera Direct Print) which makes communication control between the PD printer and digital camera using a general-purpose file and general-purpose format, and is independent from interfaces.
Referring to
In this case, when it is detected that the PD printer 1000 and DSC 3012 have been connected via the USB cable 5000, as shown in
Referring to
The image print processes based on the above “basic procedures” and “extended procedures” will be explained below.
The PD printer 1000 sends a command (NCDPStart) indicating shift to the NCDP to the DSC 3012 (900). If the DSC 3012 supports the NCDP, it replies “OK” (901). Note that a practical example of the NCDP confirmation procedures using PTP will be explained in detail later with reference to
If the PD printer 1000 and DSC 3012 confirm each other that they support the NCDP, the PD printer 1000 transmits to the DSC 3012 an instruction (ProcedureStart) for shifting to the NCDP mode (902). In response to this command, when the DSC 3012 transmits “basic procedures” as a simple print mode (903), the control shifts to a print mode based on “basic procedures”. In this case, when an image to be printed is selected and its print instruction is issued upon operation on the DSC 3012, a command (JobStart) indicating the start of a print job is sent from the DSC 3012 to the PD printer 1000 (904). In response to the command, the PD printer 1000 is set in the simple print mode, and sends a command (GetImage) to the DSC 3012 to request it to send a JPEG image (905). Then, the DSC 3012 sends a JPEG image to the PD printer 1000 (906), and a print process in the PD printer 1000 starts. Upon completion of the print process of the designated image, the PD printer 1000 sends a command (SendStatus) indicating the end of the print job to the DSC 3012 (907). When the DSC 3012 returns an acknowledgement (OK) in response to this command (908), the print process based on this “basic procedures” ends. Note that it is determined based on Capability data of both the DSC and PD printer whether or not exchange is made in the “basic procedures”.
In
As shown in
Script notation of the Capability information facilitates export to architectures of other communication protocols and standardization of exchange of such function information. Note that this script notation may comply with XML.
The user of the DSC 3012 that has received such Capability information determines which of the functions of the PD printer 1000 is to be used in a print process, selects an image to be printed, and selects and determines the print conditions of that image from the functions of the PD printer 1000. After the user determines the image to be printed, its print condition, and the like, and designates the start of a print process, a print instruction (JobStart) is sent to the PD printer 1000. The PD printer 1000 then issues a command (GetImage xn) that requests the image data (912), and the DSC 3012 transmits the corresponding image data in an image format (Tiff, JPEG, RGB, or the like) that can be received by the PD printer 1000 (913), in response to that command. The reason why a plurality of image data can be transmitted for an image print process per paper sheet is that when, for example, a 2×2 layout print mode or the like is designated, four image data must be transmitted per sheet. Upon completion of the print process of the designated image, the PD printer 1000 transmits status information (SendStatus) indicating the end of the print job to the DSC 3012 (907). In this case, “endednormaly” indicating normal end is transmitted. When the DSC 3012 returns an acknowledgement (OK) in response to this information (908), the control starts the select and print processes of the next image based on this “recommended procedures” again.
The aforementioned processing procedures will be explained below with reference to the flowchart of
In step S1, a communication is established between the digital camera (DSC) 3012 and PD printer 1000 (700). It is determined in step S2 whether these devices support the NCDP. If these devices support the NCDP, the NCDP mode starts. The flow then advances to step S3 to receive a procedure designation from the DSC 3012, and to start the designated procedures. If “basic procedures” are designated, the flow advances from step S4 to step S5 to execute a print process based on “basic procedures”. On the other hand, if “recommended procedures” are designated, the flow advances from step S6 to step S7 to execute a print process based on “recommended procedures”. Furthermore, if “extended procedures” are designated, the flow advances from step S8 to step S9 to execute a print process based on “extended procedures” corresponding to each vendor. If other procedures are designated, the flow advances to step S10 to execute a print process in a mode unique to the PD printer 1000 and DSC 3012.
An example (PTP wrapper) wherein various NCDP commands (
[NCDPStart]
After the PD printer 1000 and DSC 3012 are physically connected, the PD printer 1000 transmits GetDeviceInfo to the DSC 3012 (1400) to request it to send information associated with objects held by the DSC. In response to this request, the DSC 3012 transmits information about objects held by itself to the PD printer 1000 using DeviceInfo Dataset. By OpenSession (1402), a start request of procedures that assign the DSC 3012 as a resource, assign handles to data objects as needed, and make a special initialization process is issued. Upon reception of an acknowledgement (OK) from the DSC 3012, PTP communications start. The PD printer 1000 requests the DSC 3012 to send all script handles (Storage ID: FFFFFF, Object Type: Script) (1403). In response to this request, the DSC 3012 returns a list of all handles held by it (1404). Information of the i-th object handle is acquired from the PD printer 1000 (1405, 1406). If this object includes a keyword (e.g., “Marco”) indicating identification of the DSC 3012, the PD printer 1000 instructs to send object information (SendObjectInfo) (1407). Upon reception of an acknowledgement (OK) in response to this instruction, the PD printer 1000 transmits object information to the DSC 3012 by SendObject. Note that this object includes, e.g., “Polo” as a response keyword corresponding to the aforementioned keyword.
In this manner, the PD printer 1000 and DSC 3012 can recognize each other as connected partners. After that, the control can shift to the NCDP procedures (701 in
[ProcedureStart]
In order to notify the DSC 3012 of procedures “basic procedures”, “recommended procedures”, and “extended procedures” supported by the PD printer 1000, the PD printer 1000 notifies the DSC 3012 of the presence of object information to be sent to it using SendObjectInfo (1501). Upon reception of an acknowledgement (OK) from the DSC 3012 in response to this command, the PD printer sends a message indicating that it is ready to transmit an object to the DSC 3012 using SendObject (1502), and then transmits information associated with the procedures supported by the PD printer 1000 using ObjectData (1503). The DSC 3012 notifies the PD printer 1000 that it wants to launch a GetObject operation (shift to a push mode) (1504). If the PD printer 1000 sends a message indicating that it is ready to receive information associated with object information (GetObjectInfo) (1505), that information is returned using ObjectInfo Dataset (1506). If object information itself is requested by designating that object information (1507), the DSC 3012 informs the PD printer 1000 of procedures (“basic”, “recommended”, “extended”, and the like) that the DSC 3012 uses by Object Dataset (1508).
In this manner, the DSC 3012 can designate an image print mode of the PD printer 1000.
[NCDPEnd]
In this procedure, the PD printer 1000 informs the DSC 3012 of the presence of object information to be sent to it (1600), and notifies the DSC 3012 that it leaves the NCDP mode using ObjectData. Upon reception of an acknowledgement (OK), CloseSession is transmitted (1601) to end this communication. In this way, the NCDP communication procedures end.
[getCapability]
In this procedure, the DSC 3012 informs the PD printer 1000 of the presence of an object to be sent to it using (RequestObjectTransfer) (1701). If the printer 1000 requests information of that object (1702), the DSC 3012 notifies the printer 1000 of a data set of the object to be transferred (1703). If the printer 1000 issues an acquisition command (GetObject) of the object to the DSC 3012 (1704), the object is transmitted from the DSC 3012 to the printer 1000 in response to that command. As a result of transmission of this object, it is determined that the DSC 3012 requests the printer 1000 to send Capability data (1705).
The printer 1000 then transmits information associated with the requested object held by it to the DSC 3012. Capability information indicating the functions of the printer 1000 is transmitted from the PD printer 1000 to the DSC 3012 in a script format using SendObject and ObjectData (1707). In this manner, the PD printer 1000 and DSC 3012 can exchange their function information.
[GetImage]
Upon sending a request of information associated with an object held by the DSC 3012 (1800), the DSC 3012 sends information (Object Dataset) associated with that object to the PD printer 1000 (1801). If an acquisition request (GetObject) is issued by designating that object (1802), the DSC 3012 transmits the requested image file (Object Dataset) to the PD printer 1000 (1803). In this way, the PD printer 1000 can acquire a desired image file from the DSC 3012.
[SendStatus]
The PD printer 1000 notifies the DSC 3012 of the presence of object information to be sent to it using SendObjectInfo (1900). Then, the PD printer 1000 transmits an information set (Object Dataset) associated with the object information to the DSC 3012 (1901). In response to an acknowledgement (OK) from the DSC 3012, status information of errors or the like in the PD printer 1000 is transmitted using SendObject and Object Dataset.
[PageEnd]
In
[JobStart]
The DSC 3012 sends RequestObjectTransfer to the PD printer 1000 (2200) so as to urge the PD printer 1000 to issue a GetObject command. As a result, if the PD printer 1000 issues GetObjectInfo (2201), the DSC 3012 transmits information associated with object information to be transmitted. In response to this information, if the PD printer 1000 requests object information (GetObject: 2203), Object Dataset is transmitted to issue a print instruction from the DSC 3012 to the PD printer 1000 (2204).
[JobAbort]
[JobContinue]
In
[Capability]
The communication procedures between the PD printer 1000 and DSC 3012 and the processes in the PD printer 1000 and DSC 3012 as characteristic features according to this embodiment will be described below.
In this embodiment, since the DSC 3012 connected to the PD printer 1000 is based on the assumption that unspecified digital cameras manufactured by respective vendors are connected, even when the PD printer 1000 transmits information of its all functions to the DSC as Capability information, that DSC may not often recognize all or some contents of the Capability information. In such case, a print job file which describes print conditions that the PD printer 1000 did not intend is sent from the DSC. If the PD printer 1000 cannot execute a print process under the print conditions designated by that print job file, it notifies the DSC that the received print job cannot be processed.
Referring to
When the paper size set in the PD printer 1000 is “L size”, but “A4 size” is designated as the Capability paper size in the print job file received from the DSC 3012, the PD printer 1000 notifies the DSC that the print job cannot be processed.
If Capability information is received from the PD printer 1000 in step S21, the flow advances to step S22 to interpret the Capability information. If there are items that cannot be understood, they are ignored. The flow advances to step S23 to display a print instruction window (UI) on the display unit of the camera 3012, and the user inputs a print instruction using the UI window in step S24. After the print instruction is input, the flow advances to step S25 to generate a print job file that describes an image file to be printed, various print conditions, and the like, which are set using the UI. In step S26, the print job file is transmitted to the PD printer 1000. In step S27, the image file described in the print job file is transmitted to the PD printer 1000.
<Overview of Digital Camera>
Referring to
The process in the DSC 3012 will be explained first.
The DSC 3012 transmits the request B to the PD printer 1000 (2801). The DSC 3012 waits for reception of the response B to the request B from the PD printer 1000. The DSC 3012 checks if a command received from the PD printer 1000 is the response B to the request B (2802). If NO is determined (the DSC 3012 receives the request A issued by the PD printer 1000 at nearly the same timing as 2801 in
If the DSC 3012 receives the request A re-issued by the PD printer 1000 (2804), it transmits the response A to the request A to the PD printer 1000 (2805).
As described above, if collision has occurred between the DSC 3012 and the PD printer 1000, the DSC 3012 waits for reception of a response (response B) to the request B transmitted to the PD printer 1000. If the DSC 3012 receives a command or response other than the response (response B) during waiting, it discards the received command or response to avoid problems due to the collision.
The process in the PD printer 1000 in the NCDP will be described below.
The PD printer 1000 transmits the request A to the DSC 3012 at nearly the same timing as 2801 above (2806). The PD printer 1000 then waits for reception of the response A to the request A (2807). However, the PD printer 1000 receives the request B issued by the DSC 3012 in 2801 (2807). As a result, the PD printer 1000 transmits the response B to the request B received in 2807 (2808). The PD printer 1000 re-transmits the request A to the DSC 3012 as in 2806 above (2809). The PD printer 1000 determines whether a command received from the DSC 3012 is the response A to the request A (2810). If the PD printer 1000 determines that the received command is the response A, the printer 1000 executes a process of the received command.
As described above, the PD printer 1000 always returns a response to a request received from the DSC 3012. If collision is likely to occur, i.e., no response (response A in this case) to the transmitted request is received, the previously issued request (request A) is re-issued to the DSC 3012. In this way, even when collision has occurred, the DSC 3012 and PD printer 1000 can be avoided from not advancing to the next processing step.
In the second embodiment, a communication process between the PD printer 1000 which transmits a request to the DSC 3012, and the DSC 3012 which can not interpret the request received from the PD printer 1000 will be explained. Note that the arrangements of the DSC 3012 and PD printer 1000 in the second embodiment are the same as those of the DSC 3012 and PD printer 1000 in the first embodiment, and a description thereof will be omitted.
As described above, communication means according to the embodiment corresponds to a communication specification in which a request and response are always paired. For this reason, both the DSC 3012 and PD printer 1000 must return a response to a request if they receive the request. In the second embodiment, the response includes a response indicating “affirmative”, a response indicating that “a request can never be processed”, and a response indicating that “a request cannot be processed now”.
More specifically, when each of the DSC 3012 and PD printer 1000 receives a request, it interprets the contents of the request. As a result of interpretation, if the contents of the request cannot be understood or a request to unsupported function information is included, a response indicating that the “the request can never be processed” is returned. This response notifies the DSC 3012 or PD printer 1000 which has received the response that the request as the cause of the response is never processed in the communication if it is requested at any given timing.
When the contents of the request can be understood but cannot be processed at the present timing for some reason, a response indicating that the “request cannot be processed now” is returned. The response notifies the DSC 3012 or PD printer 1000 which has received the response that the request as the cause of the response cannot be processed now but may be able to be processed if the request is re-issued.
When the contents of the request can be understood, and the request can be processed, a response indicating “affirmative” is returned. In this case, the DSC 3012 or PD printer 1000 that has received the response processes the request, and notifies the partner device that the next request can be transmitted.
Under the above assumption, when the DSC 3012 receives a request from the PD printer 1000, it must interpret the request and return an appropriate response. For example, assume that the DSC 3012 cannot interpret the received request, and tentatively returns a response indicating that the “request cannot be processed now” without normally interpreting the request. In this case, upon reception of the response, the PD printer 1000 re-issues the same request after an elapse of a predetermined period of time. As a result, the DSC 3012 receives the request again, and interprets it. At this time, if it is determined that the request includes a request to a function which is not supported by the DSC 3012, the DSC 3012 returns a response indicating that the “request can never be processed”. In this case, the PD printer 1000 determines that the request will be processed sooner or later if it repetitively issues the request, since it has received the response indicating that the “request cannot be processed now” in response to the first request. However, if the PD printer receives the response indicating that the “request can never be processed” in response to the re-sent request, the response is inconsistent with the first response, and the PD printer is likely to be confused.
For this reason, upon reception of a request from the PD printer 1000, if a situation in which that request cannot be interpreted has occurred, the DSC 3012 cannot tentatively return an appropriate response, and cannot return any irresponsible response since the printer may be confused. As a result, the DSC 3012 is stuck, thus failing the communication with the PD printer 1000. Hence, this embodiment prevents occurrence of such problem.
Upon reception of a request from the PD printer 1000 in step S31, the flow advances to step S32 to determine whether the DSC 3012 is ready to interpret the received request. If the DSC 3012 is ready to interpret the received request, the flow advances to step S33, and the DSC 3012 interprets the request. The flow then advances to step S34 to return an appropriate response.
On the other hand, if it is determined in step S32 that the DSC 3012 is not ready to interpret the request, the flow advances to step S35 to discard the request since the DSC 3012 cannot return any response to the request received in step S31. More specifically, the DSC 3012 transmits “GetStatus” to the PD printer 1000 in response to the request received in step S31 in step S35 to request the status of the PD printer 1000. The flow advances to step S36 to receive a response to the “GetStatus” from the PD printer 1000. In this case, the PD printer 1000 recognizes that collision has occurred since it does not receive any response to the issued request, and recognizes that the previously issued request has been discarded by the DSC 3012. The flow advances to step S37 to discard the response received in step S36. This is because “GetStatus” transmitted from the DSC 3012 in step S35 is a dummy command used to notify the PD printer 1000 that the request received in step S31 has been discarded, and the contents of its response need not be interpreted.
Note that the command which is sent from the DSC 3012 to the PD printer 1000 in step S35 to notify that the received request has been discarded is not particularly limited as long as the command does not include any user's instruction or a response to the command from the PD printer does not include any operation instruction to the DSC 3012. Therefore, a command that can be transmitted at an arbitrary timing irrespective of a status request is preferably used. For example, “GetCapability” or the like may be used.
As described above, when a request is received, and a response to the request cannot be returned, an insignificant request is transmitted to the PD printer in response to the received request in place of a corresponding response, thus intentionally causing collision. In this way, the DSC 3012 can disable the request received from the PD printer 1000. As a result, even when the DSC 3012 is not ready to interpret a request, the communication with the PD printer can be prevented from failing. When the DSC 3012 receives a request from the PD printer 1000 again if it is ready to interpret the request, the DSC 3012 can reliably return a response to the request.
The second embodiment has explained the process of a request executed by the DSC 3012 while it is not ready to interpret the received request. In the third embodiment, the process of the DSC 3012 which has no free area in a memory will be explained. Note that the arrangements of the DSC 3012 and PD printer 1000 in the second embodiment are the same as those of the DSC 3012 and PD printer 1000 in the first embodiment, and a description thereof will be omitted.
More specifically, the DSC 3012 has no free area on its memory (RAM 3102) in a case where the DSC 3012 uses the memory to generate a request to be transmitted to the PD printer 1000, in a case where a request which is just about to be transmitted to the PD printer 1000 occupies the memory, and so forth. In recent years, a size reduction and price reduction of the DSC 3012 do not allow the DSC 3012 to have a large-capacity memory.
Under the aforementioned assumption, the DSC 3012 cannot return any response to a request received from the PD printer 1000 since a memory area used to render the contents of the request received from the PD printer 1000 and a memory area required to transmit the response are insufficient. As a result, since the printer cannot receive any response, a communication failure occurs, and the print process is disturbed due to the communication failure, resulting in user's confusion.
In such case, as in the second embodiment, it is determined in step S32 whether the memory (RAM 3102) has a free area in place of determining if the DSC is ready to interpret the received request. If the memory has a free area, the flow advances to step S33; otherwise, the flow advances to step S35, thus solving the aforementioned problem as in the second embodiment.
Upon reception of a request from the PD printer 1000 in step S41, the flow advances to step S42 to determine whether a request which is about to be transmitted to the PD printer 1000 is stored. If the request to be transmitted is stored, the process or the like uses the memory, and a sufficient memory area required to return a response to the request received in step S41 is unlikely to be assured. On the other hand, if no request to be transmitted to the PD printer 1000 is stored, the received request can be interpreted and an appropriate response can be returned. Hence, if the request to be transmitted to the PD printer 1000 is stored, the flow advances to step S43 to discard the request received in step S41, and the request to be transmitted to the PD printer 1000 is transmitted to the PD printer 1000. The flow advances to step S44 to receive a response to the request transmitted in step S43 from the PD printer 1000. In this case, the PD printer 1000 recognizes that the collision has occurred, and also that the initially transmitted request has been discarded by the DSC 3012.
As a result, the DSC 3012 can preferentially process a request of the self device, and can consequently make a free area in the memory. Hence, the DSC 3012 can prepare for the request re-received from the PD printer 1000.
On the other hand, if no request to be transmitted to the PD printer 1000 is stored, the flow advances to step S45. In step S45, the received request is interpreted to generate an appropriate response to the request. In step S46, the generated response is transmitted to the PD printer 1000.
In this manner, a print instruction can be issued to the PD printer 1000 by prioritizing a request from the DSC 3012.
In the above described embodiments, a case where an appropriate response is not returned in response to a request base on a statue of a memory is explained, but the present invention is not limited to the case. For example, there may be adopted to cases in which the electric power capacity of an apparatus for issuing the response is degraded, or the processing ability of CPU of the apparatus is degraded, or the apparatus is in a busy state due to be controlled by another apparatus. In those cases, the apparatus for issuing the response can respond by an appropriate response, but in a case where the ability of the apparatus is degraded, the apparatus may dare to respond by incorrect response in place of the appropriate response.
This embodiment begins with a request of function information of the printer from the DSC 3012 as the image supply device, and exchanges each other's function information. Alternatively, this embodiment can also be achieved by beginning with a request of function information of the DSC 3012 as the image supply device from the printer 1000 as the image printing device, and by exchanging each other's function information.
The objects of the present invention can also be achieved by supplying a storage medium, which records a program code of a software program to the system or apparatus, and reading out and executing the program code stored in the storage medium by a computer (or a CPU or MPU) of the system or apparatus. In this case, the program code itself read out from the storage medium implements the functions of the above-mentioned embodiments, and the storage medium which stores the program code constitutes the present invention. As the storage medium for supplying the program code, for example, a floppy® disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, and the like may be used.
The functions of the above-mentioned embodiments may be implemented not only by executing the readout program code by the computer but also by some or all of actual processing operations executed by an OS (operating system) running on the computer on the basis of an instruction of the program code.
Furthermore, the functions of the above-mentioned embodiments may be implemented by some or all of actual processing operations executed by a CPU or the like arranged in a function extension board or a function extension unit, which is inserted in or connected to the computer, after the program code read out from the storage medium is written in a memory of the extension board or unit.
The present invention is not limited to the above embodiments and various changes and modifications can be made within the spirit and scope of the present invention. Therefore, to apprise the public of the scope of the present invention, the following claims are made.
This application claims priority from Japanese Patent Application No. 2003-298796 filed on Aug. 22, 2003, which is hereby incorporated by reference herein.
Number | Date | Country | Kind |
---|---|---|---|
2003-298796 | Aug 2003 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP04/11652 | 8/6/2004 | WO | 2/22/2006 |