Electronic apparatus, server, and method for controlling electronic apparatus

An electronic apparatus stores therein information that includes a first list, a second list, and a third list. The first list contains a list of memory devices usable with the electronic apparatus, the second list contains a list of memory devices for which it is not certain whether the memory devices are usable with the electronic apparatus, and the third list contains a list of memory devices unusable with the electronic apparatus. A determining unit determines, by using the information, whether a connected memory device is usable or unusable with the electronic apparatus or determines that it is not certain whether the connected memory device is usable with the electronic apparatus.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to and incorporates by reference the entire contents of Japanese Patent Application No. 2008-301387 filed in Japan on Nov. 26, 2008.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an electronic apparatus to which a dynamically removable memory device can be connected, a server to be connected to the electronic apparatus via a network, and a control method for controlling the electronic apparatus, whereby it can be easily determined whether the memory device can be used with the electronic apparatus.

2. Description of the Related Art

A large variety of removable memory devices (hereinafter, “memory devices”), such as secure digital (SD) cards or universal serial bus (USB) memories are manufactured by various companies all over the world. The memory devices have superior portability, and the memory capacity of the memory devices has been dramatically increasing in recent years. In addition, the memory devices are inexpensive and have rapidly spread among users.

In view of the above circumstances, although the memory devices used to be used only with an information-processing apparatus such as a personal computer (PC), the memory devices are now also used with various electronic apparatuses (hereinafter, an electronic apparatus to which a memory device is connectable is referred to as “apparatus”) such as home electronics.

There is a standard for the memory devices. The memory devices are manufactured so as to meet the standard so that the memory devices can be connected without any problems to various apparatuses that are in conformity with the standard.

The problem is that some memory devices have such poor quality that they fail to meet the standard. If such a non-standard memory device is connected to an apparatus, the apparatus can malfunction. The malfunction can occur in the apparatus to various degrees, for example, the operation of the apparatus is stopped, or, although the apparatus recognizes the memory device, the apparatus cannot perform writing and reading operations to and from the memory device. Thus, inconvenience is caused to users.

Manufacturers conduct some tests on an apparatus before the apparatus is put on the market. If the apparatus has functions that use memory devices, the manufacturer conducts some tests on the functions by using various types of memory devices. However, it is impractical in terms of cost and time for manufacturers to perform tests on the functions by using all the memory devices available on the market. Therefore, the manufacturer usually selects typical memory devices from the memory devices available on the market and conducts the tests by using these selected memory devices. The manufacturer often treats the typical memory devices that pass the tests as recommended memory devices and the other memory devices as memory devices that are not supported by the apparatus.

Therefore, if a user has a memory device that is not a recommended memory device, because the user is not sure if the memory device can be used with the apparatus, the user uses the memory device in the apparatus taking a risk that the apparatus can malfunction. Japanese Patent Application Laid-open No. 2003-114834 discloses a USB-device evaluation system in which if a problem occurs when a USB device is operated with a PC during evaluation of the operation of the USB device, the status of a USB bus during the occurrence of the problem is recorded in order to find and remove the cause of the problem.

The limitation with the technology disclosed in Japanese Patent Application Laid-open No. 2003-114834 is that it is possible only to solve the problem when it occurs. Therefore, if the user has a memory device that is not a recommended memory device, the user uses the memory device in the apparatus taking a risk that the apparatus can malfunction.

It is inconvenient for the user to check that a memory device is a recommended memory device or to remember the names of recommended memory devices. Furthermore, it is disadvantageous for the user to prepare a recommended memory device each time the user needs to use a memory device.

As described above, it is difficult in terms of cost and time for the manufacturer to conduct tests on memory devices available on the market one by one. Furthermore, it is also difficult in terms of cost for the manufacturer to examine what kinds of memory devices available on the market are often used.

SUMMARY OF THE INVENTION

According to an aspect of the present invention there is provided an electronic apparatus including a connecting structure for connecting thereto a dynamically removable memory device; a storing unit configured to store therein information that includes at least a first list that is a list of memory devices usable with the electronic apparatus, a second list that is a list of memory devices for which it is not certain whether those memory devices are usable with the electronic apparatus, and a third list that is a list of memory device unusable with the electronic apparatus; and a determining unit that determines, by using the information stored in the storing unit, whether a memory device connected to the connecting structure is usable or unusable with the electronic apparatus or determines whether it is not certain whether the memory device is usable with the electronic apparatus.

According to another aspect of the present invention there is provided a server including a storing unit configured to store therein information that includes at least a first list that is a list of memory devices usable with an electronic apparatus connected to the server via a network, a second list that is a list of memory devices for which it is not certain whether those memory devices are usable with the electronic apparatus, and a third list that is a list of memory device unusable with the electronic apparatus; a receiving unit that receives a result of a test from an electronic apparatus, the result indicating whether a memory device connected to the electronic apparatus is usable or unusable with the electronic apparatus or whether it is not certain whether the memory device is usable with the electronic apparatus; and an updating unit that autonomously updates the information stored in the storing unit based on the result received by the receiving unit.

According to still another aspect of the present invention there is provided a method of controlling an electronic apparatus. The electronic apparatus including a connecting structure for connecting thereto a dynamically removable memory device and a storing unit configured to store therein information that includes at least a first list that is a list of memory devices usable with the electronic apparatus, a second list that is a list of memory devices for which it is not certain whether those memory devices are usable with the electronic apparatus, and a third list that is a list of memory device unusable with the electronic apparatus. The method including determining, by using the information stored in the storing unit, whether a memory device connected to the connecting structure is usable or unusable with the electronic apparatus or determining whether it is not certain whether the memory device is usable with the electronic apparatus.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1Ais a schematic diagram that illustrates hardware configuration of a system according to an embodiment of the present invention.FIG. 1Bis a block diagram of hardware configuration built in an apparatus11and a server12.

As shown inFIG. 1A, the system includes the apparatus11, the server12, and a removable memory device13. The memory device13can be connected to the apparatus11.

In accordance with the standard of memory devices, when a memory device is connected to an apparatus, the apparatus generally acquires the ID (hereinafter, “memory device ID”) for uniquely identifying the memory device.

The memory device ID stored therein the ID (vendor ID) for identifying the manufacturer of the memory device and the ID (product ID or serial number) for identifying the memory device. For example, “enumeration” performed when a USB device is connected to an apparatus corresponds to a process for acquiring a memory device ID. In the embodiment, the memory device ID is acquired by a connection process, such as the enumeration, performed in accordance with the standard.

As shown inFIG. 1B, each of the apparatus11and the server12includes a central processing unit (CPU)1, a read-only memory (ROM)2, a random access memory (RAM)3, an input/output interface (I/F)4, and a hard disk drive (HDD)5. The CPU1controls the apparatus11or the server12. Control programs to be executed by the CPU1for controlling the apparatus11or the server12are stored in the ROM2. The RAM3is used as a work area, and the like, for the CPU1. The input/output I/F4mediates between the apparatus11or the server12and external devices. Various computer programs and data are stored in the HDD5. The CPU1, the ROM2, the RAM3, the input/output I/F4, and the HDD5are connected to one another via a bus6. The hardware configuration is implemented by using a general computer. The apparatus11can include an additional configuration to perform optional functions.

FIG. 2is a functional block diagram of the apparatus11and the server12.

Each of the apparatus11and the server12includes processing units that are executed by the CPU1in accordance with control programs. If data is transmitted and received to and from an external device in a process performed by each of the processing units, data is transmitted and received to and from the external device via the input/output I/F4.

The apparatus11includes a determining unit201, a testing unit202, a presenting unit203, a storage unit204, a transmitting unit205, a receiving unit206, and an updating unit207.

The determining unit201determines whether the memory device13connected to the apparatus11can be used with the apparatus11or determines that it is not certain whether the memory device13can be used with the apparatus11by using three lists, i.e., a white list (a recommended-device list), a gray list, and a black list.

If it is not certain whether the connected memory device13can be supported by the apparatus11, the testing unit202conducts an automatic test to see whether the memory device13can be used with the apparatus11.

If the connected memory device13cannot be used with the apparatus11, the presenting unit203causes a display unit (not shown) included in the apparatus11to display the indication that the memory device13cannot be used with the apparatus11. If it is not certain whether the connected memory device13can be used with the apparatus11, the presenting unit203causes the display unit to display an indication to cause the user to select that an automatic test be conducted.

The storage unit204stores the result of the automatic test in the HDD5. The transmitting unit205transmits the result of the automatic test to the server12connected to the network. The receiving unit206receives the update notification that the three lists have been updated from the server12. The updating unit207updates all or some of the three lists stored in the apparatus11in accordance with the update notification received from the server12.

The server12includes a receiving unit211, an updating unit212, and a notifying unit213.

The receiving unit211receives the result of the automatic test from the apparatus11. The updating unit212autonomously determines the result of the automatic test received from the apparatus11and then updates all or some of the three lists stored on the server12. After the updating unit212updates the lists stored on the server12, the notifying unit213transmits the update notification that the lists have been updated to the apparatus11connected to the network.

A white list221, a gray list222, a black list223, and an automatic-test item224are stored in the HDD5of the apparatus11. A white list231, a gray list232, a black list233, and an automatic-test item234are stored in the HDD5of the server12.

The white list contains memory devices (recommended devices) that can be definitely operated with the apparatus11.

The gray list contains memory devices for which it is not certain whether the memory devices can be definitely operated with the apparatus11. If it is not certain whether the memory device can be definitely operated with the apparatus11, it means that although some records of successful operations of the memory device are stored, the number of records of successful operations is not enough to determine whether the memory device is a recommended device.

The black list contains memory devices that cannot be definitely operated with the apparatus11or that can adversely affect the apparatus11.

A memory device ID for uniquely identifying a corresponding memory device is stored in each of the lists.

The automatic-test item contains items of the automatic test that is conducted if necessary when a memory device is connected to the apparatus11and codes (scripts and operation codes) to conduct the automatic test using the items. The automatic-test item will be explained in detail later.

The three lists and the automatic-test item are always stored in both the apparatus11and the server12and default values are stored at the time of manufacture of the apparatus11and the server12. Communication is performed between the apparatus11and the server12to synchronize data when the apparatus11is started up or when the three lists and the automatic-test item are updated by the server12. In order to simplify explanations in the following descriptions, all or some of the three lists are simply referred to as a “list”.

FIG. 3is a sequence diagram that illustrates the communication between the apparatus11and the server12when the list is updated at the time of startup of the apparatus11.

When the power of the apparatus11is turned on, the apparatus11transmits a list-update date request to the server12(t31).

Upon receiving the list-update date request from the apparatus11, the server12transmits a list-update date reply to the apparatus11in order to notify the apparatus11of the date of the list update performed by the server12(t32).

Upon receiving the list-update date reply from the server12, the apparatus11compares the date of the list update stored in the apparatus11with the date of the list update indicated by the list-update date reply. If the date of the list update stored in the apparatus11is earlier than the date of the list update stored on the server12, the apparatus11transmits a list request to the server12in order to request the list updated by the server12(t33).

Upon receiving the list request from the apparatus11, the server12transmits a list reply to the apparatus11in order to notify the contents of the list updated by the server12(t34).

Upon receiving the list reply from the server12, the apparatus11updates the contents of the list stored in the apparatus11(t35).

The process from t31to t35is performed on each of the white list, the gray list, and the black list.

After the process for updating the list is completed, the apparatus11transmits an automatic-test item date request to the server12to synchronize the automatic-test item between the apparatus11and the server12(t36).

Upon receiving the automatic-test item date request from the apparatus11, the server12transmits an automatic-test item date reply to the apparatus11in order to notify the apparatus11of the update date of the automatic-test item updated by the server12(t37).

Upon receiving the automatic-test item date reply from the server12, the apparatus11compares the update date of the automatic-test item stored in the apparatus11with the update date of the automatic-test item indicated by the automatic-test item date reply. If the update date of the automatic-test item stored in the apparatus11is earlier than the update date of the automatic-test item stored on the server12, the apparatus11transmits an automatic-test item request to the server12thereby requesting the contents of the automatic-test item updated by the server12(t38).

Upon receiving the automatic-test item request from the apparatus11, the server12transmits an automatic-test item reply to the apparatus11to notify the apparatus11of the contents of the automatic-test item updated by the server12(t39).

Upon receiving the automatic-test item reply from the server12, the apparatus11updates the contents of the automatic-test item stored in the apparatus11(t40).

FIG. 4is a sequence diagram that illustrates the communication between the apparatus11and the server12when the server12has updated any of the white list, the gray list, the black list, and the automatic-test item.

The reason why the update is performed by the server12will be explained later.

When the server12has updated the list/automatic-test item, the server12broadcasts a list/automatic-test item update notification to the apparatus11(t41).

Upon receiving the list/automatic-test item update notification from the server12, the apparatus11that has been started up transmits a list/automatic-test item request to the server12(t42).

Upon receiving the list/automatic-test item request from the apparatus11, the server12transmits a list/automatic-test item reply to the apparatus11to notify the apparatus11of the contents of the updated list/automatic-test item (t43).

Upon receiving the list/automatic-test item reply from the server12, the apparatus11updates the contents of the list/automatic-test item in accordance with information indicated by the list/automatic-test item reply (t44).

The process from t42to t44is performed only on the list or the automatic-test item for which the update notification is received. The apparatus11transmits the list-update date request and the automatic-test item date request to the server12, as described with reference toFIG. 3. However, in the synchronization process performed immediately after the server12has updated the list or the automatic-test item as described with reference toFIG. 4, because it is obvious that the updated list or automatic-test item is the latest, the apparatus11does not transmit the list-update date request and the automatic-test item date request to the server12.

If the apparatus11has not been started up, the synchronization process cannot be performed. When the apparatus11is started up, the synchronization process is performed as described with reference toFIG. 3.

FIG. 5is a flowchart of the process performed when the memory device13is connected to the apparatus11.

When the memory device13is connected to the apparatus11, the apparatus11acquires the memory device ID from the memory device13and then determines whether the memory device ID is listed in the white list (Step S501).

If it is determined that the memory device ID is listed in the white list (Yes at Step S501), the apparatus11determines that the memory device13can be used with the apparatus11without condition and then allows the user to use the memory device13in order to use the functions of the apparatus11(Step S502). Then, the process shown inFIG. 5ends.

If it is determined that the memory device ID is not listed in the white list (No at Step S501), the apparatus11determines whether the memory device ID is listed in the black list (Step S503).

If it is determined that the memory device ID is listed in the black list (Yes at Step S503), the apparatus11displays the indication “this memory device cannot be used” on a liquid crystal display (LCD) panel included in the apparatus11and does not allow the user to use the memory device13(Step S504).

After the user removes the memory device13from the apparatus11(Yes at Step S505), the process shown inFIG. 5ends.

If it is determined that the memory device ID is not listed in the black list (No at Step S503), a gray-list process is performed (Step S506). The gray-list process will be explained later.

As described above, when the memory device13is connected to the apparatus11, the apparatus11is operated in a different manner depending on the list in which the memory device ID of the memory device13is listed.

FIG. 6is a flowchart of the gray-list process. If the memory device ID of the memory device13is listed in the gray list, the user is notified of the following two points: the memory device13connected to the apparatus11is not recommended for use with the apparatus11; and if the user desires to use the memory device13connected to the apparatus11, it is necessary to conduct a test to see whether the memory device13can be used with the apparatus11. The LCD panel then displays the indications “conduct the test to see whether the memory device can be used” and “stop using the memory device with the apparatus”, so that the user can select any one of the options indicated (Step S601).

If it is determined that the user has selected “conduct the test” (Yes at Step S602), the apparatus11conducts the automatic test in accordance with a predetermined test procedure stored in the apparatus11(Step S603). Thus, the apparatus11checks whether the memory device13connected to the apparatus11can be correctly operated.

If the automatic test has been passed (Yes at Step S604), the apparatus11transmits the memory device ID and the test result (a result indicating the automatic test has been passed) to the server12(Step S605). The LCD panel then displays the indication that the automatic test has been passed so that the user is notified of the indication (Step S606). The apparatus11then allows the user to use the memory device13in order to use the functions of the apparatus11(Step S607).

If an error is detected in the automatic test (No at Step S604), the apparatus11transmits the memory device ID and a test result (a result indicating the automatic test has been failed) to the server12(Step S608). The LCD panel then displays the indications “the automatic test has been failed” and “the memory device needs to be removed from the apparatus” so that the user is notified of the indications (Step S609). The apparatus11then does not allow the user to use the apparatus11(Step S610) until the user removes the memory device13from the apparatus11.

When the memory device13is removed from the apparatus11(Yes at Step S611), the apparatus11allows the user to use the apparatus11again (Step S612).

If it is determined that the user has selected “stop using the memory device” (No at Step S602), the LCD panel displays the indication “the connected memory device cannot be used with the apparatus because it is not certain whether the memory device can be used” so that the user is notified of the indication. Then, the process from Step S609to S612is performed, and the user is not allowed to use the apparatus11until the memory device13is removed from the apparatus11.

The gray-list process is performed if the memory device ID of the memory device13is listed in the gray list. Even if the memory device ID is not listed in the gray list (in such a case, the memory device ID is not listed in any of the three lists), the gray-list process is performed in the same manner as if the memory device ID is listed in the gray list.

FIG. 7is a flowchart of the list update process performed by the server12.

As described with reference toFIG. 6, in some cases, the apparatus11conducts the automatic test when the memory device is connected to the apparatus11. If the apparatus11has conducted the automatic test, the apparatus11transmits a test result to the server12. The server12performs a process in accordance with the received test result as described below.

Three thresholds described below are preliminarily stored on the server12in order to perform the list update process.

The number of test passes by the memory device is counted in accordance with test results received by the server12, and if the accumulated number of passes is equal to or more than a first threshold, the memory device ID of the memory device is moved from the gray list or the black list to the white list in principle, and the gray list or the black list and the white list are updated.

The number of test failures by the memory device is counted in accordance with test results received by the server12. Even though the number of test passes is equal to or more than the first threshold, if the number of test failures is equal to or more than a second threshold, the memory device ID is not moved to the white list. The reason why the second threshold is stored on the server12is that, if some memory devices are often defective, the memory devices are likely to accumulate a large number of test passes and test failures; therefore, the memory devices are not allowed to be listed in the white list. To prevent such a memory device from being listed in the white list, the second threshold is stored on the server12.

If the number of test failures is equal to or more than a third threshold, the memory device ID is moved from the white list or the gray list to the black list in principle, and the white list or the gray list and the black list are updated.

The server12receives the memory device ID and the test result from the apparatus11in the gray-list process (Step S701).

The server12then determines whether the received memory device ID is listed in the gray list (Step S702).

If it is determined that the memory device ID is not listed in the gray list (No at Step S702), the process control proceeds to Step S703.

The server12adds the memory device ID to the gray list (Step S703) and sets the number of failures and the number of passes to zero (Step S704). The number of failures and the number of passes are used as counters.

Because the server12has updated the gray list at Step S703, the server12broadcasts a list update notification to an apparatus connected to the network (Step S705).

If it is determined that the memory device ID is listed in the gray list (Yes at Step S702), the server12determines whether the automatic test has been passed using the received test result (Step S706).

If it is determined that the automatic test has been passed (Yes at Step S706), the server12adds “1” to the number of passes (Step S707).

The server12then determines whether the number of passes is equal to or more than the first threshold (Step S708). If it is determined that the number of passes is less than the first threshold (No at Step S708), the process shown inFIG. 7ends.

If it is determined that the number of passes is equal to or more than the first threshold (Yes at Step S708), the server12determines whether the number of failures is equal to or more than the second threshold (Step S709).

If it is determined that the number of failures is equal to or more than the second threshold (Yes at Step S709), the server12sets the number of passes to zero (Step S710), and then the process shown inFIG. 7ends.

If it is determined that the number of failures is less than the second threshold (No at Step S709), the process control proceeds to Step S711.

The server12deletes the memory device ID received at Step S701from the gray list (Step S711) and adds the memory device ID to the white list (Step S712).

Because the server12has updated the gray list at Step S711and the white list at Step S712, the server12broadcasts a list update notification to an apparatus connected to the network (Step S713), and the process shown inFIG. 7ends.

If it is determined that the automatic test has been failed (No at Step S706), the server12adds “1” to the number of failures (Step S714).

Then, the server12determines whether the number of failures is equal to or more than the third threshold (Step S715). If it is determined that the number of failures is less than the third threshold (No at Step S715), the process shown inFIG. 7ends.

Conversely, if it is determined that the number of failures is equal to or more than the third threshold (Yes at Step S715), the process control proceeds to Step S716.

The server12deletes the memory device ID received at Step S701from the gray list (Step S716) and adds the memory device ID to the black list (Step S717).

Because the server12has updated the gray list at Step S716and the black list at Step S717, the server12broadcasts a list update notification to an apparatus connected to the network (Step S718), and then the process shown inFIG. 7ends.

As described above, if the number of passes of the automatic test for the memory device is equal to or more than the first threshold, the memory device ID of the memory device is moved to the white list. However, if the number of failures of the automatic test is equal to or more than the second threshold, the number of passes is set to zero, and the memory device ID is kept on the gray list. If the number of failures is equal to or more than the third threshold, the memory device ID is moved to the black list. If the list has been updated according to the above conditions, as shown inFIG. 4, the server12broadcasts the list update notification to an apparatus and, in accordance with a request received from an apparatus that has been started up, transmits a reply to the apparatus to notify the contents of the updated list.

FIG. 8is a flowchart of a process performed when the memory device13is connected to the apparatus11while the apparatus11is not connected to the network.FIG. 9is a flowchart of the gray-list process shown inFIG. 8.

In the above descriptions, it is assumed that the apparatus11can be connected to the server12. If the apparatus11cannot be connected to the network or if the apparatus11cannot be connected to the server12due to a network failure, or the like, the process described below is performed.

The process shown inFIG. 8is substantially the same as the process shown inFIG. 5. Only the gray-list process (Step S506shown inFIG. 5and Step S806shown inFIG. 8) is different. Therefore, the explanations for the same parts except for the gray-list process will be omitted.

First, the user is notified of the following two points: the memory device13connected to the apparatus11is not recommended for use with the apparatus11; and if the user desires to use the memory device13, it is necessary to conduct a test to see whether the memory device13can be used with the apparatus11. The LCD panel then displays the indications “conduct the test to see whether the memory device can be used” and “stop using the memory device with the apparatus” so that the user can select any one of the options indicated (Step S901).

If it is determined that the user has selected “conduct the test” (Yes at Step S902), the apparatus11conducts the automatic test in accordance with a predetermined test procedure stored in the apparatus11(Step S903). Thus, the apparatus11checks whether the memory device13connected to the apparatus11can be correctly operated.

If the automatic test has been passed (Yes at Step S904), the apparatus11adds “1” to the total number of passes stored in the apparatus11(Step S905). The LCD panel then displays the indication that the automatic test has been passed so that the user is notified of the indication (Step S906). The apparatus11then allows the user to use the memory device13in order to use the functions of the apparatus11(Step S907).

If an error is detected in the automatic test (No at Step S904), the apparatus11adds “1” to the total number of failures stored in the apparatus11(Step S908). The LCD panel then displays the indications that “the automatic test has been failed” and “the connected memory device needs to be removed from the apparatus” so that the user is notified of the indications (Step S909). The apparatus11then does not allow the user to use the apparatus11(Step S910) until the user removes the memory device13is removed from the apparatus11.

When the memory device13is removed from the apparatus11(Yes at Step S911), the apparatus11allows the user to use the apparatus11again (Step S912).

If it is determined that the user has selected “stop using the memory device” (No at Step S902), the LCD panel displays the indication “the connected memory device cannot be used with the apparatus because it is not certain whether the memory device can be used” so that the user is notified of the indication. Then, the process from Step S909to S912is performed, and the user is not allowed to use the apparatus11until the memory device13is removed from the apparatus11.

The gray-list process is performed if the memory device ID of the memory device13is listed in the gray list. Even if the memory device ID is not listed in the gray list (in such a case, the memory device ID is not listed in any of the three lists), the gray-list process is performed in the same manner as if the memory device ID is listed in the gray list.

Even if a specific memory device accumulates a large number of test passes and failures, a local list stored in the apparatus11is not updated.

The reasons why the local list stored in the apparatus11is not updated are as follows: it is better to define the list on the basis of whether the memory device is recommended by the manufacturer and it is better not to define the list only in terms of performances of the memory device under the environment of a specific apparatus; and it is necessary to avoid data mismatching caused by the list update after the apparatus is connected to the network again.

It is assumed that the local list stored in the apparatus11is updated. In the local list, if the memory device13has accumulated a certain number of test passes, the memory device ID of the memory device13is moved from the gray list to the white list. However, if the list stored on the server12is updated, the local list stored in the apparatus11is overwritten with the list stored on the server12; therefore, the number of test passes stored in the local list is deleted. As a result, there is a possibility that the memory device13that has been used by the user is suddenly treated as an unrecommended device. To prevent such a problem, the local list is not updated.

FIG. 10is a sequence diagram that illustrates the communication between the apparatus11and the server12upon the list/automatic-test item update when the apparatus11is connected to the network again.

When the apparatus11is connected to the network, the apparatus11notifies the server12of the memory device ID (not shown inFIG. 10) and the total number of passes as the test result shown inFIG. 7(t101). The apparatus11then notifies the server12of the total number of failures (t102).

The server12adds the total number of passes received from the apparatus11to the number of passes described in the list update process shown inFIG. 7and adds the total number of failures received from the apparatus11to the number of failures described in the list update process shown inFIG. 7.

The server12then performs the list update process (the process from Step S702to S718shown inFIG. 7) (t103). At that time, the apparatus11stands by for a predetermined time. The reason why the apparatus11stands by during the list update process performed by the server12is that there is a possibility that the list stored on the server12is updated in accordance with the notification of the total number of passes and the total number of failures.

If any of the lists have been updated by the server12in the list update process at t103, the synchronization process is performed to synchronize the lists stored in the apparatus11and the server12as shown inFIG. 4.

Conversely, if none of the lists have been updated by the server12in the list update process at t103, the synchronization process is performed to synchronize the lists stored in the apparatus11and the server12in the sequence after t104. Because the sequence after t104is the same as that from t31to t40shown inFIG. 3, detailed explanation will be omitted.

FIG. 11is a block diagram of an image forming apparatus1100that is used as the apparatus11.FIG. 12is a schematic diagram of the overall configuration of the embodiment.

As shown inFIG. 12, the image forming apparatus1100, the server12, and a USB memory1300as a general memory device are provided according to the embodiment.

The USB memory1300is connectable to the image forming apparatus1100. The image forming apparatus1100has functions of writing image data, and the like, to the USB memory1300connected to the image forming apparatus1100, and of performing the list synchronization process and the automatic test. These functions can be performed by using a memory-device management application1171, a USB memory driver1161, a USB I/F1115, a panel management application1172, a panel driver1162, an LCD panel1111, a network management application1173, a network driver1163, and a network I/F1114, as shown inFIG. 11.

The image forming apparatus1100includes software groups1101aand1101bthat function as a control unit, an image-forming apparatus start unit1150, and hardware resources1103.

The image-forming apparatus start unit1150is primarily operated upon the power-on of the image forming apparatus1100, and the image-forming apparatus start unit1150runs an application layer1104and a platform1106.

The hardware resources1103include a black-and-white laser printer (B&W LP)1112, a color laser printer (color LP)1113, the network I/F1114, the USB I/F1115, and the LCD panel1111that functions as a display unit and an operation unit.

The software group1101aincludes the application layer1104that is run on a universal operating system (OS)1141, such as UNIX (registered trademark), and the platform1106that includes the universal OS1141.

The application layer1104included in the software group1101ais an application program that performs specific processes for functions relating to image forming operations of a printer, copier, a facsimile machine, a scanner, and the like, and additional functions. The application layer1104includes a printer application1121for a printer, a copy application1122for a copier, a fax application1123for a facsimile machine, a scanner application1124for a scanner, a net-file application1125for a network file, a process inspection application1126for inspecting processes, a Remote ROM Update (RRU) application1127for performing an RRU, the memory-device management application1171, the panel management application1172, and the network management application1173. The memory-device management application1171manages a USB memory connected to the image forming apparatus1100. The panel management application1172controls the display of the LCD panel1111and the input from the LCD panel1111in cooperation with processes of the memory-device management application1171. The network management application1173controls communication with the server12connected to the network in cooperation with processes of the memory-device management application1171.

The platform1106of the software group1101aincludes a system control service (SCS)1128, a system resource manager (SRM)1129, and the universal OS1141. The SCS1128and the SRM1129have the same functions as an SCS1134and an SRM1137described below. The universal OS1141includes various drivers, such as the USB memory driver1161, the panel driver1162, and the network driver1163. Thus, the image forming apparatus1100can control communication I/Fs such as the network I/F1114and the USB I/F1115. The image forming apparatus1100is connected to an external device via such a communication I/F so that the image forming apparatus1100can input and output communication data to and from the external device.

The memory-device management application1171is used for the list synchronization process and the automatic test performed by the apparatus11. The panel management application1172controls the display of the LCD panel1111and operations input by the user via the LCD panel1111, as described later with reference toFIGS. 15,16,19,21, and23, in cooperation with an operation panel control service (OCS)1132. The network management application1173controls the communication with the server12in cooperation with a network control service (NCS)1131. The contents of the communication performed by the network management application1173are the same as those described with reference toFIGS. 3,4, and10.

The software group1101bincludes the platform1106that is run on a universal OS1140such as UNIX (registered trademark) and an RRU application1130that is run on the platform1106. The RRU application1130is an application for performing the RRU in the same manner as the RRU application1127. The platform1106of the software group1101bincludes a control service layer1105, the SRM1137, and the universal OS1140. The control service layer1105interprets a processing request received from the application layer1104and generates an acquisition request for the hardware resources1103. The SRM1137manages the one or more hardware resources1103and arbitrates the acquisition request received from the control service layer1105. The universal OS1140manages the hardware resources1103in accordance with the acquisition request received from the SRM1137.

The control service layer1105includes the NCS1131, the OCS1132, a memory control service (MCS)1133, and the SCS1134. The control service layer1105includes one or more service modules.

An application program interface (API) allows the platform1106to receive processing requests from the application layer1104by using previously defined functions. The universal OS1140and the universal OS1141execute each software program of the application layer1104and the platform1106as a process in parallel.

Processes of the NCS1131are to provide services that can be commonly used in applications for which the network I/F1114is required. The NCS1131intermediates to distribute data received from the network by using each protocol for each application or to transmit data from each application to the network.

For example, the NCS1131controls data communication with devices connected via a network via the hypertext transfer protocol (HTTP) by using the hypertext transfer protocol daemon (httpd). Processes of the OCS1132are to control an operation panel as a unit that transmits information between the user and the image forming apparatus1100.

Processes of an MCS1135are to control allocation and deallocation of areas of a system memory (not shown) or the use of a storage device (not shown). Processes of the SCS1134are to manage applications and control interrupt applications.

Processes of the SRM1137are to perform system control and to manage the hardware resources1103together with the SCS1134. For example, processes of the SRM1137are to arbitrate an acquisition request received from an upper layer to use the hardware resource1103such as the B&W LP1112or the color LP1113and execute the hardware resources1103. Specifically, the processes of the SRM1137are to determine whether the requested hardware resource1103is available (whether the hardware resource1103is not being used in accordance with a different acquisition request), and if it is determined that the hardware resource1103is available, notify the upper layer that the requested hardware resource1103is available. Processes of the SRM1137are to perform scheduling to use the hardware resource1103in accordance with an acquisition request received from the upper layer and directly perform the requested operation (for example, operations for conveying a sheet and forming images by using a printer engine (not shown), an operation for allocating an area of the system memory, or an operation for generating a file).

Because the functions of the image forming apparatus1100are basically the same as those of the apparatus11, only characteristic parts of the image forming apparatus1100will be explained in the following descriptions.

Each of the server12and the image forming apparatus1100stores therein the three lists, i.e., the white list, the gray list, and the black list, and the automatic-test item, as described with reference toFIG. 2.

The white list contains memory devices (recommended devices) that can be definitely operated with the image forming apparatus1100.

The gray list contains memory devices for which it is not certain whether the memory devices can be definitely operated with the image forming apparatus1100.

The black list contains memory devices that cannot be definitely operated with the image forming apparatus1100or that can adversely affect the apparatus11.

A memory device ID for uniquely identifying a corresponding memory device is stored in each of the lists.

The automatic-test item contains items of the automatic test that is conducted if necessary when a memory device is connected to the image forming apparatus1100and codes (scripts and operation codes) to conduct the automatic test using the items. The automatic-test item will be explained in detail later.

The three lists and the automatic-test item are always stored in both the server12and the image forming apparatus1100and default values are stored at the time of manufacture of the server12and the image forming apparatus1100. Communication is performed between the server12and the image forming apparatus1100to synchronize data when the image forming apparatus1100is started up or when the three lists and the automatic-test item are updated by the server12.

This communication is performed between the server12and the image forming apparatus1100by using a transmission control protocol (TCP).FIG. 13is a diagram that illustrates the format of communication data transmitted using the TCP. A TCP header, an IP header, and an Ethernet (registered trademark) header are not shown inFIG. 13. The communication data contains the “communication ID” for identifying the contents of the communication and data parts (data1, data2, . . . , data n). Different data parts are provided for each communication ID. In the embodiment, the format shown inFIG. 13is used as the format for the communication data.

Because the synchronization process of the list/automatic-test item at the time of startup of the image forming apparatus1100is the same as that described with reference toFIG. 3, the explanations will be omitted.

FIGS. 14A to 14Hare diagrams that illustrate the contents of the communication data transmitted between the image forming apparatus1100and the server12using the TCP in the synchronization process. The TCP header, the IP header, and the Ethernet (registered trademark) header are not shown inFIGS. 14A to 14H.

In the list-update date request shown inFIG. 14A, the ID for identifying the list-update date request is set in the communication ID, and the type (gray, white, or black) of the list is set in data part1.

In the list-update date reply shown inFIG. 14B, the ID for identifying the list-update date replay is set in the communication ID, the type (gray, white, or black) of the list is set in the data part1, and the update date (for example, Epoch Time of UNIX (registered mark)) is set in data part2.

In the list request shown inFIG. 14C, the ID for identifying the list request is set in the communication ID, and the type (gray, white, or black) of the list is set in the data part1.

In the list reply shown inFIG. 14D, the ID for identifying the list reply is set in the communication ID, the type (gray, white, or black) of the list is set in the data part1, and the contents of the list are set in the date part2.

In the automatic-test item date request shown inFIG. 14E, the ID for identifying the automatic-test item date request is set in the communication ID. The automatic-test item date request does not contain any data part.

In the automatic-test item date reply shown in FIG.14F, the ID for identifying the automatic-test item date reply is set in the communication ID, and the update date (for example, Epoch Time of UNIX (registered mark)) is set in the data part1.

In the automatic-test item request shown inFIG. 14G, the ID for identifying the automatic-test item request is set in the communication ID. The automatic-test item request does not contain any data part.

In the automatic-test item reply shown inFIG. 14H, the ID for identifying the automatic-test item reply is set in the communication ID, and the contents of the automatic-test item are set in the data part1.

As described above, if the USB memory1300is connected to the image forming apparatus1100, the image forming apparatus1100is operated in a different manner depending on the list in which the memory device ID of the USB memory1300is listed.

If the memory device ID of the USB memory1300is listed in the white list, the image forming apparatus1100determines that the USB memory1300can be used with the image forming apparatus1100without condition and then allows the user to use the USB memory1300in order to use the functions of the image forming apparatus1100.

FIG. 15is a schematic diagram that illustrates an example of the display of the LCD panel1111if the memory device ID of the USB memory1300connected to the image forming apparatus1100is listed in the black list. If the memory device ID of the USB memory1300is listed in the black list, the LCD panel1111displays the indication “this memory device cannot be used” (in the example shown inFIG. 15, “the connected USB memory cannot be operated by this apparatus”) as a warning, and the user is not allowed to use the USB memory1300in order to use the functions of the image forming apparatus1100.

FIG. 16is a schematic diagram that illustrates an example of the display of the LCD panel1111if the memory device ID of the USB memory1300connected to the image forming apparatus1100is listed in the gray list. If the memory device ID of the USB memory1300is listed in the gray list, the user is notified of the following two points: the USB memory1300connected to the image forming apparatus1100is not recommended for use with the image forming apparatus1100; and if the user desires to use the USB memory1300, it is necessary to conduct a test to see whether the USB memory1300can be used with the image forming apparatus1100. The LCD panel1111then displays the indications “conduct the test” to see whether the USB memory1300can be used and “do not use the USB memory” with the image forming apparatus1100so that the user can select any one of the options indicated. At this time, selection buttons for selecting the options are displayed on the LCD panel1111, as shown inFIG. 16.

If the user has selected the selection button for “conduct the test”, the image forming apparatus1100conducts the automatic test in accordance with a test procedure1701stored in the image forming apparatus1100.FIG. 17is a schematic diagram that illustrates the procedure of the automatic test. A dynamic link library (DLL) is used for the test procedure1701. When the automatic test is conducted, the DLL is loaded into a work area on a RAM1702included in the image forming apparatus1100. After the DLL is loaded, the memory-device management application1171calls a test function that is prepared by the DLL. Because the DLL is used, codes for the test procedure1701are loaded into the RAM1702only when the automatic test is conducted. Therefore, the usage of the RAM1702can be reduced.

As described above, the automatic test is conducted in accordance with a user's instruction if the memory device ID of the connected USB memory1300is listed in the gray list or if the memory device ID is not listed in any of the lists.FIG. 18is a sequence diagram that illustrates the process performed during the automatic test. The process performed when the memory device ID of the USB memory1300is listed in the white list and the black list is not shown inFIG. 18.

When the USB memory1300is connected to the image forming apparatus1100, the USB memory driver1161performs USB enumeration. At this time, the USB memory driver1161acquires the memory device ID of the USB memory1300(t1801).

The memory-device management application1171then acquires the memory device ID of the USB memory1300from the USB memory driver1161(t1802).

The memory-device management application1171retrieves the acquired memory device ID from the gray list (t1803).

If the memory-device management application1171finds the memory device ID of the USB memory1300in the gray list (t1804, “the device ID is present”), the memory-device management application1171loads a test item into the RAM1702(t1805).

The memory-device management application1171then calls the test function (t1806). As described above, the automatic-test item contains codes (scripts and operation codes) to conduct the automatic test using the item.

The USB memory driver1161, in accordance with the called test function (t1807), accesses the USB memory1300to conduct a predetermined test (t1808).

A test result is sent from the USB memory driver1161to the test function (t1809), and a determination result obtained by the test function is sent to the memory-device management application1171(t1810).

FIG. 19is a schematic diagram that illustrates an example of the display of the LCD panel1111when the automatic test has correctly terminated. If the automatic test has been passed, the LCD panel1111displays the indication that the automatic test has been passed (in the example shown inFIG. 19, “the USB memory connected to the apparatus can be used without any problem”) so that the user is notified of the indication.

The image forming apparatus1100then transmits an automatic-test passing notification to the server12in order to notify the memory device ID of the USB memory1300and the passing of the automatic test. This communication is performed using the TCP.FIG. 20is a diagram that illustrates the format of communication data (the automatic-test passing notification) when the automatic test is passed. The communication data contains the communication ID and data part1. The ID for identifying the automatic-test passing notification is set in the communication ID and the memory device ID is set in the data part1.

Thus, the user is allowed to use the USB memory1300to use the functions of the image forming apparatus1100.

FIG. 21is a schematic diagram that illustrates an example of the display of the LCD panel1111when the automatic test is failed. If an error is detected in the automatic test, the LCD panel1111displays the indications “the automatic test has been failed” (in the example shown inFIG. 21, “the USB memory connected to the apparatus cannot be used with the apparatus”) and “the connected memory device needs to be removed from the apparatus” (in the example shown inFIG. 21, “remove the connected USB memory from the apparatus”) so that the user is notified of the indications.

The image forming apparatus1100then transmits an automatic-test failure notification to the server12in order to notify the memory device ID and the failure of the automatic test. This communication is performed using the TCP.FIG. 22is a diagram that illustrates the format of communication data (the automatic-test failure notification) when the automatic test is failed. The communication data contains the communication ID and the data part1. The ID for identifying the automatic-test failure notification is set in the communication ID and the memory device ID is set in the data part1.

Thus, the user is not allowed to use the image forming apparatus1100until the user removes the USB memory1300from the image forming apparatus1100.

FIG. 23is a schematic diagram that illustrates an example of the display of the LCD panel1111when the user has selected the selection button for “do not use the memory device”. If the user has selected the selection button for “do not use the memory device”, the LCD panel1111displays the indication “the connected memory device cannot be used with the apparatus because it is not certain whether the memory device can be used” so that the user is notified of the indication. Furthermore, the LCD panel1111displays the indication “remove the connected memory device”, whereby the user is not allowed to use the image forming apparatus1100until the user removes the USB memory1300from the image forming apparatus1100.

To conduct the automatic test, the image forming apparatus1100stores therein the automatic-test item. Because the automatic-test item can be updated, a synchronization process is performed at the following times: when the image forming apparatus1100is connected to the server12via a network at the time of startup of the image forming apparatus1100; and when the image forming apparatus1100receives the notification that the automatic-test item has been updated from the server12.

As described above in the operation performed if the user has selected the selection button for “conduct the test”, the image forming apparatus1100transmits the test result to the server12. The memory-device management application1171transmits the test result to the server12via the network management application1173.

As described above with reference toFIG. 7, the server12counts the received test result and performs processing in accordance with the counted test results as described below.

If the USB memory1300has accumulated a certain number of test passes, the memory device ID of the USB memory1300is moved to the white list. However, if the USB memory1300also has accumulated a certain number of test failures, only the number of passes is cleared (set to zero), and the memory device ID is kept in the gray list. The reason why only the number of passes is cleared is to prevent the image forming apparatus1100from being operated incorrectly. It is considered that there is a high possibility that the image forming apparatus1100will be operated incorrectly if the USB memory1300has accumulated a certain number of failures even though the USB memory1300has accumulated a certain number of passes.

If the USB memory1300has accumulated a certain number of failures, the memory device ID of the USB memory1300is moved to the black list.

If the list has been updated in any of the above operations, the server12transmits the notification that the list has been updated to the image forming apparatus1100. The server12then transmits the updated list to the image forming apparatus1100.

In the above descriptions, it is assumed that the image forming apparatus1100is connectable to the server12. If the image forming apparatus1100cannot be connected to the server12via a network or if the image forming apparatus1100cannot be connected to the server12due to a network failure, or the like, processing is performed as described below.

A process performed when the USB memory1300is connected to the image forming apparatus1100while the image forming apparatus1100is not connected to the server12is substantially the same as that performed while the image forming apparatus1100is connected to the server12. However, a different process is performed if the memory device ID of the USB memory1300is listed in the gray list or not listed in any of the lists.

If the memory device ID of the connected USB memory1300is listed in the gray list or not listed in any of the lists, the image forming apparatus1100notifies the user of the following two points: the USB memory1300connected to the image forming apparatus1100is not recommended for use with the image forming apparatus1100; and if the user desires to use the USB memory1300, it is necessary to conduct a test to see whether the USB memory1300can be used with the image forming apparatus1100. Theses indications are displayed on the LCD panel1111so that the user is notified of the indications. As described above with reference toFIG. 16, the LCD panel1111displays the indications “conduct the test to see whether the memory device can be used” and “stop using the memory device with the apparatus” so that the user can select any one of the options indicated.

If the user has selected “conduct the test”, the memory-device management application1171conducts the automatic test in accordance with a predetermined test procedure stored in the image forming apparatus1100. Thus, the image forming apparatus1100checks whether the connected USB memory1300can be correctly operated. This process is performed in the same manner as described with reference toFIG. 9.

If the automatic test has been passed, the LCD panel1111displays the indication that the automatic test has been passed, as shown inFIG. 19, so that the user is notified of the indication.

Then, the image forming apparatus1100adds “1” to the total number of passes stored in the image forming apparatus1100so that the image forming apparatus1100allows the user to use the USB memory1300in order to use the functions of the image forming apparatus1100.

If an error is detected in the automatic test, the LCD panel1111displays the indications “the automatic test has been failed” (in the example shown inFIG. 21, “the USB memory connected to the apparatus cannot be used with the apparatus”) and “the connected memory device needs to be removed from the apparatus” (in the example shown inFIG. 21, “remove the connected USB memory from the apparatus”) so that the user is notified of the indications.

Then, the image forming apparatus1100adds “1” to the total number of failures stored in the image forming apparatus1100so that the image forming apparatus1100does not allow the use to use the USB memory1300in order to use the functions of the image forming apparatus1100.

The user is not allowed to use the image forming apparatus1100until the user removes the USB memory1300from the image forming apparatus1100.

As described above, even if the USB memory has accumulated a large number of passes or failures of the automatic test, the local list stored in the image forming apparatus1100is not updated. The reason for this has been described above.

If the image forming apparatus1100is connected to the server12via the network again, the image forming apparatus1100transmits the total number of passes and the total number of failures to the server12. As described above with reference toFIG. 10, after the server12performs the list update process, the synchronization process is performed in order to synchronize the lists, and the local list is deleted. This communication is performed using the TCP.

FIG. 24is a diagram that illustrates the format of a total test number notification to notify the total number of passes and the total number of failures using the TCP. Headers are not shown inFIG. 24.

There is a possibility that the image forming apparatus1100conducts the automatic test on a plurality of USB memories while the image forming apparatus1100is not connected to the server12. Therefore, the total test number notification contains three entries, i.e., the memory device ID, the total number of passes, and the total number of failures, for each device on which the automatic test has been conducted.

In the example shown inFIG. 24, the ID for identifying the total test number notification is set in the communication ID, the number of devices (USB memories) on which the automatic test has been conducted is set in the data part1, the memory device ID of a device1is set in the data part2, the total number of passes of the device1is set in data part3, and the total number of failures of the device1is set in data part4.

Furthermore, the memory device ID of a device2is set in data part5, the total number of passes of the device2is set in data part6, and the total number of failures of the device2is set in data part7. In this manner, the three entries, i.e., the memory device ID, the total number of passes, and the total number of failures, are generated for each device.

Although a multifunction product (MFP) having the functions of a copier, a printer, a scanner, a facsimile machine, and the like, is explained as the image forming apparatus1100, the image forming apparatus1100can be an image forming apparatus having any one of the functions.

According to an aspect of the present invention, it is possible to easily determine whether a memory device connected to an apparatus can be used with the apparatus.