Communication system, computer program for server, and application program for terminal device
The communication system facilitates direct communication between devices to improve user convenience by transmitting and displaying notification information, addressing the lack of printer-to-terminal notifications in existing systems.
Patent Information
- Application Number
- JP2022007347
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-01-20
- Publication Date
- 2025-12-03
- Estimated Expiration
- 2042-01-20
AI Technical Summary
Existing systems do not enable notifications from label printers to client terminals, lacking convenience for users.
A communication system comprising a communication device, server, and terminal device, with units for transmitting and displaying history information and notification information, allowing direct communication between devices to improve user convenience.
Enables quick and efficient display of notification information on terminal devices, preventing redundant notifications and enhancing user convenience.
Smart Images

Figure 0007779154000001 
Figure 0007779154000002 
Figure 0007779154000003
Abstract
Description
[Technical Field]
[0001] The present specification relates to a technique for displaying notification information related to history information indicating the usage history of a communication device. [Background technology]
[0002] Patent Document 1 discloses a system comprising a management server, a label printer, and a client terminal. The label printer sends log data to the management server. The management server sends a notification to the client terminal in accordance with the log data. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2018-146996 Summary of the Invention [Problem to be solved by the invention]
[0004] Patent Document 1 does not disclose anything about notifications being sent from label printers to client terminals. This specification provides a technique that can improve convenience for users of terminal devices. [Means for solving the problem]
[0005] This specification discloses a communication system. The communication system may include a communication device, a server, and a terminal device. The communication device may include a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server, and a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device. The server may include a notification information transmission unit that, when the first history information is received from the communication device, transmits first notification information related to the first history information to the terminal device. The terminal device may include a display unit, a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information, and a second display control unit that, when the second history information is received from the communication device, causes the display unit to display second notification information related to the second history information.
[0006] According to the above configuration, when the terminal device receives first notification information from the server, the terminal device displays the first notification information. In addition, when the terminal device receives second history information from the communication device, the terminal device displays second notification information. In this way, the terminal device can display notification information regardless of whether the terminal device receives information from the server or the communication device. Therefore, the terminal device can quickly display notification information. This can improve convenience for the user of the terminal device.
[0007] This specification also discloses a computer program for a server. The computer program may cause the server computer to function as the following units: a notification information sending unit that, when first history information indicating a usage history of a communication device is received from the communication device, sends first notification information related to the first history information to a terminal device. The notification information sending unit may send the first notification information to the terminal device when the first history information satisfying a predetermined notification condition is received from the communication device without receiving notified information from the terminal device; and may not send the first notification information to the terminal device when the first history information satisfying the predetermined notification condition is received from the communication device after receiving the notified information from the terminal device. The notified information may be second history information indicating a usage history of the communication device, and may be information that is sent from the terminal device to the server when second notification information related to the second history information is displayed on the terminal device in response to the second history information satisfying the predetermined notification condition being sent from the communication device to the terminal device.
[0008] According to the above configuration, when the server receives first history information from the communication device without receiving notified information from the terminal device, the server transmits the first notification information to the terminal device. As a result, the first notification information is displayed on the terminal device. On the other hand, even if the server receives first history information from the communication device after receiving notified information from the terminal device, it does not transmit the first notification information to the terminal device. Therefore, it is possible to prevent first notification information indicating the same content as the already-displayed second notification information from being displayed on the terminal device. This improves convenience for the user of the terminal device.
[0009] This specification also discloses an application program for a terminal device. The terminal device may include a display unit and a computer. When first notification information is received from a server, the terminal device may display the first notification information on the display unit. The first notification information may be first history information indicating a usage history of a communication device, and may be information transmitted from the server to the terminal device in response to the first history information satisfying a predetermined notification condition being transmitted from the communication device to the server. The application program may cause the computer to function as the following units, namely, as a second display control unit that, when second history information indicating a usage history of the communication device is received from the communication device, displays second notification information related to the second history information on the display unit. The second display control unit may be configured to display the second notification information on the display unit when the second history information that satisfies the specified notification condition is received from the communication device without receiving the first notification information from the server, and may not be configured to display the second notification information on the display unit when the second history information that satisfies the specified notification condition is received from the communication device after the first notification information is displayed on the display unit.
[0010] According to the above configuration, when the terminal device receives second history information from the communication device without receiving first history information from the server, the terminal device displays the second history information. On the other hand, when the terminal device receives second history information from the communication device after displaying first history information, the terminal device does not display the second history information. Therefore, it is possible to prevent second history information that indicates the same content as the already-displayed first history information from being displayed on the terminal device. This improves convenience for the user of the terminal device.
[0011] A computer-readable recording medium storing a computer program for the server, the server itself implemented by the computer program, and a method executed by the server are also novel and useful. Also novel and useful are a computer-readable recording medium storing an application program for the terminal device, the terminal device itself implemented by the application program, and a method executed by the terminal device. [Brief explanation of the drawings]
[0012] [Figure 1] 1 shows the configuration of a communication system. [Figure 2] The contents of each table are shown below. [Figure 3] 1 shows a flowchart of a process executed by an application program of a terminal. [Figure 4] 4 shows a flowchart of the event occurrence determination process in S20 of FIG. [Figure 5] 1 shows a flowchart of a process performed by a server. [Figure 6] 6 shows a flowchart of the event occurrence determination process in S130 of FIG. 5. [Figure 7] A sequence diagram of a specific case is shown below. [Figure 8] The sequence diagram continues from Figure 7. [Figure 9] The sequence diagram continues from Figure 8. DETAILED DESCRIPTION OF THE INVENTION
[0013] (Communication system configuration; Figure 1) 1, the communication system 2 includes a terminal 10, a printer 100, and a server 200. The terminal 10 and the printer 100 are connected to a LAN (abbreviation of Local Area Network) 4, and can communicate with each other via the LAN 4. The LAN 4 and the server 200 are connected to the Internet 6. Therefore, the devices 10, 100 and the server 200 can communicate with each other via the LAN 4 and the Internet 6.
[0014] (Configuration of Terminal 10) The terminal 10 is a portable terminal device such as a smartphone, tablet PC, or PDA. In a modified example, the terminal 10 may be a stationary terminal device. A user ID "U1" is assigned to the terminal 10. The user ID is information for identifying an application program 38, which will be described later. The terminal 10 includes an operation unit 12, a display unit 14, a communication interface 16, and a control unit 30. Each unit 12 to 30 is connected to a bus line (reference numerals omitted). Hereinafter, the interface will be referred to as "I / F."
[0015] The operation unit 12 is an I / F for inputting various instructions to the terminal 10. The display unit 14 is a display for displaying various information. The display unit 14 is a so-called touch panel, and also functions as an operation unit. The communication I / F 16 is connected to the LAN 4.
[0016] The control unit 30 includes a CPU 32 and a memory 34. The CPU 32 executes various processes in accordance with programs 36 and 38 stored in the memory 34. The memory 34 is configured from a volatile memory, a non-volatile memory, etc.
[0017] The memory 34 stores an OS (short for Operating System) program 36 and an application program 38. Hereinafter, the OS program 36 and the application program 38 will be referred to as "OS 36" and "app 38," respectively. The OS 36 is a program for controlling the basic operations of the terminal 10.
[0018] The application 38 is installed on the terminal 10 from a server (not shown) installed on the Internet 6 by, for example, the vendor of the OS 36. The application 38 is a program for managing various status information (e.g., the amount of ink remaining in an ink cartridge attached to the printer 100) relating to the usage history of a printer (e.g., the printer 100). While the application 38 is running, the application 38 determines, based on the status information, whether an event (e.g., an ink low message indicating that the ink level is low) has occurred in the printer 100. If the application 38 determines that an event has occurred, it causes the display unit 14 to display a notification indicating that the event has occurred. Hereinafter, this notification will be referred to as an "in-app notification."
[0019] The memory 34 further stores an event table 40, a status history table 42, and a notification history table 44. Each of the tables 40 to 44 is stored in the memory 34 by the application 38. Details of the contents of each of the tables 40 to 44 will be described later with reference to FIG.
[0020] (Configuration of printer 100) The printer 100 is a peripheral device (for example, a peripheral device of the terminal 10) that can execute a printing function. In a modified example, the printer 100 may be a multi-function device that can execute a scanning function, a facsimile function, etc. in addition to the printing function. The printer 100 is assigned a printer ID "P1" that identifies the printer 100. The printer 100 includes an operation unit 112, a display unit 114, a communication I / F 116, a print execution unit 18, and a control unit 130. The units 112 to 130 are connected to a bus line (reference numerals omitted).
[0021] The operation unit 112 is an I / F for inputting various instructions to the printer 100. The display unit 114 is a display for displaying various information. The display unit 114 is a so-called touch panel, and also functions as an operation unit. The communication I / F 116 is connected to the LAN 4. The print execution unit 118 has an inkjet printing mechanism. In a modified example, the print execution unit 118 may have a printing mechanism other than the inkjet type, such as a laser type.
[0022] The control unit 130 includes a CPU 132 and a memory 134. The CPU 132 executes various processes in accordance with a program 136 stored in the memory 134. The memory 134 is configured by a volatile memory, a non-volatile memory, or the like.
[0023] (Configuration of Server 200) Server 200 is a server for managing various status information relating to the usage history of a printer (e.g., printer 100). Server 200 is installed on the Internet 6 by the vendor of printer 100. In a modified example, server 200 may be installed on the Internet 6 by a vendor different from the vendor of printer 100. In another modified example, the vendor of printer 100 may not prepare the hardware for server 200 on its own, but may use an environment provided by an external cloud computing service. In this case, the vendor of printer 100 may prepare a program (i.e., software) for server 200 and implement the program in the above-described environment to realize server 200.
[0024] The server 200 determines whether an event has occurred in the printer 100 based on the status information received from the printer 100. If the server 200 determines that an event has occurred, it can send a notification indicating that the event has occurred to the terminal 10. As a result, a notification indicating that the event has occurred is displayed on the terminal 10. Hereinafter, this notification will be referred to as a "push notification."
[0025] The server 200 includes a communication I / F 216 and a control unit 230. The units 216 and 230 are connected to a bus (reference numerals omitted). The communication I / F 216 is connected to the Internet 6.
[0026] The control unit 230 includes a CPU 232 and a memory 234. The CPU 232 executes various processes in accordance with a program 236 stored in the memory 234. The memory 234 is configured from a volatile memory, a non-volatile memory, and the like.
[0027] The memory 234 further stores a user table 240, a printer table 242, an event table 244, a status history table 246, and a notification history table 248. Details of the contents of each of the tables 240 to 248 will be described later with reference to FIG.
[0028] As described above, in this embodiment, both the app 38 and the server 200 manage various status information related to the usage history of the printer 100, and based on the status information, an in-app notification or a push notification is displayed on the terminal 10. In this embodiment, a technology is provided that can appropriately display notifications on the terminal 10 in such an environment.
[0029] (Table contents; Figure 2) Next, the contents of the tables 40 to 44 stored in the memory 34 of the terminal 10 and the contents of the tables 240 to 248 stored in the memory 234 of the server 200 will be described with reference to FIG.
[0030] The event table 40 lists events that the app 38 can notify. The event table 40 stores a notification ID, a message, and an event ID in association with each other. The notification ID is information for identifying the notification. The message is a character string indicating the content of the event. The event ID is information for identifying the event. Each piece of information in the event table 40 is fixed information that is installed in the terminal 10 together with the app 38, and is not information that is updated while the app 38 is being used. In a modified example, the terminal 10 may receive at least a portion of the information included in the event table 244 described below from the server 200 and update the event table 40.
[0031] The event ID "Low" is information that identifies an event in which the amount of ink remaining in an ink cartridge installed in the printer 100 has become low (for example, an event in which the amount of ink remaining has fallen below 20%). The event ID "Empty" is information that identifies an event in which the amount of ink remaining in an ink cartridge installed in the printer 100 has run out. In this embodiment, an example is described in which only one ink cartridge (for example, an ink cartridge containing black ink) is installed in the printer 100. The event ID "NotGenuine" is information that identifies an event in which the ink cartridge installed in the printer 100 is not a genuine ink cartridge provided by the printer 100 vendor. The event ID "Service_In" is information that identifies an event in which the printer 100 is set as a printer to receive specified services.
[0032] The status history table 42 shows the history of status information for the printer 100. The status information includes multiple pieces of information corresponding to multiple status items (e.g., remaining amount, service, type). The status history table 42 stores the previous status information in association with the current status information. This status information is stored in the status history table 42 in the processing of Figure 3, which will be described later. The remaining amount indicates the amount of ink remaining in the ink cartridge installed in the printer 100. The service indicates the service to which the printer 100 subscribes. The type indicates the type of ink cartridge installed in the printer 100 (i.e., genuine or non-genuine).
[0033] The notification history table 44 shows the history of notifications that have been executed on the terminal 10. The notification history table 44 stores the time when the notification was executed, the notification ID, and the notification means in association with each other. This information is stored in the notification history table 44 in the processing of FIG. 3, which will be described later. The notification ID is information for identifying the notification. The notification means indicates either "app," which indicates that an in-app notification has been executed, or "push," which indicates that a push notification has been executed.
[0034] Next, the contents of each table 240 to 248 of the server 200 will be explained. The user table 240 shows a list of information about each user of each terminal including the terminal 10 (i.e., the user of each printer including the printer 100). The user table 240 stores user IDs and printer IDs in association with each other. In response to receiving a registration instruction from a user of the terminal 10 or the like, the server 200 stores the user ID and printer ID in the user table 240.
[0035] The printer table 242 lists information about each printer, including the printer 100. The printer table 242 stores printer IDs and registered services in association with each other. In response to receiving a registration instruction from a user of the terminal 10 or the like, the server 200 stores the printer ID and registered service in the printer table 242. A registered service indicates a service to which the user has subscribed, out of multiple services that can be provided by the vendor of the printer 100. Examples of services include a flat-rate (e.g., monthly) printing service and an automatic ink cartridge shipping service.
[0036] Event table 244 lists events that server 200 can notify. Event table 244 is similar to event table 40, except that it also includes information related to notification ID "N5." Each piece of information in event table 244 is static information and is not updated while server 200 is executing processing. However, event table 244 may be updated according to instructions from an administrator of server 200.
[0037] The status history table 246 shows the history of status information for each of a plurality of printers (e.g., printer 100) identified by a plurality of printer IDs stored in the printer table 242. FIG. 2 shows only the status history table 246 corresponding to one printer 100. The status history table 246 stores status information at a plurality of times (e.g., T0, T2, T3). The server 200 periodically receives status information from each printer (e.g., every five minutes) and updates the status history table 246. An example in which the server 200 receives status information from each printer every five minutes will be described below.
[0038] The notification history table 248 lists notifications that have been executed for each of the multiple printers identified by the multiple printer IDs stored in the printer table 242. In Fig. 2, only the notification history table 248 corresponding to one printer 100 is shown, and its contents are the same as the notification history table 44 of the terminal 10.
[0039] (App processing; Figure 3) Next, referring to FIG. 3, a process realized by the CPU 32 of the terminal 10 executing the app 38 will be described. In the following, when describing the process of FIGS. 3 and 4, the process will be described mainly with reference to the app 38 rather than the CPU 32. The process of FIG. 3 is started when the app 38 is started. Although not shown in the figure, when the app 38 is started, a predetermined screen (e.g., a home screen) is displayed on the display unit 14 by the app 38. Furthermore, various communications performed between each device (e.g., the terminal 10, the printer 100, the server 200) are performed via a communication I / F (e.g., 16, 116, 216). For this reason, in the following, when describing various communications, the phrase "via a communication I / F" will be omitted.
[0040] In S10, the application 38 acquires a notification history from the server 200. Specifically, the application 38 transmits a notification request to the server 200 requesting the server 200 to transmit a notification history, and receives the notification history stored in the notification history table 248 from the server 200. The application 38 stores the notification history received from the server 200 in the notification history table 44. As a result, the contents of the notification history table 248 of the server 200 and the contents of the notification history table 44 of the terminal 10 are synchronized.
[0041] In S12, the application 38 receives status information from the printer 100. Specifically, the application 38 transmits a status request to the printer 100 requesting that the printer 100 transmit the status information, and receives the status information (i.e., remaining amount, service, and type) from the printer 100. The application 38 stores the status information received from the printer 100 in the status history table 42 as current status information.
[0042] In S14, the application 38 determines whether or not the previous status information has been stored in the status history table 42. Specifically, if the previous status information has been stored, the application 38 determines YES in S14 and proceeds to S20, and if the previous status information has not been stored, the application 38 determines NO in S14 and proceeds to S16.
[0043] In S16, the application 38 stores the current status information (i.e., the status information received in S12) as the previous status information in the status history table 42. That is, in this case, the previous status information and the current status information match.
[0044] In S20, the application 38 executes an event occurrence determination process, which is a process for determining whether an event has occurred in the printer 100 based on the status history table 42.
[0045] In S22, the application 38 updates the status history table 42. Specifically, the application 38 stores the current status information as the previous status information.
[0046] In S24, the application 38 determines whether or not an event is stored in the occurring event list. The occurring event list is a list of event IDs (e.g., "Low") that may be written in the event occurrence determination process of S20. If one or more event IDs are written in the occurring event list, the application 38 determines YES in S24 and proceeds to S30. On the other hand, if not a single event ID is written in the occurring event list, the application 38 determines NO in S24 and proceeds to S36. Hereinafter, the event IDs written in the occurring event list will be referred to as "occurring event IDs."
[0047] In S30, the app 38 displays an in-app notification on the display unit 14. Specifically, the app 38 first identifies, from the event table 40, a message associated with the occurred event ID described in the occurred event list. The app 38 then creates an in-app notification including the identified message and displays the created in-app notification on the display unit 14. As described above, the process in FIG. 3 is executed while the app 38 is running. Therefore, while the app 38 is running in the foreground, the in-app notification displayed in S30 is displayed on the above-mentioned predetermined screen displayed by the app 38. Note that, when two or more occurred event IDs are described in the occurred event list, the app 38 sequentially displays two or more in-app notifications corresponding to the two or more occurred event IDs on the display unit 14.
[0048] In S32, the application 38 transmits the notification completion information to the server 200. Specifically, the application 38 first identifies the current time (i.e., the time when the in-app notification is displayed). Furthermore, the application 38 identifies the notification ID associated with the occurred event ID from the event table 40. Then, the application 38 transmits the notification completion information including the user ID "U1", the identified time, and the identified notification ID to the server 200.
[0049] In S34, the application 38 updates the notification history table 44. Specifically, the application 38 associates the above-mentioned specified time, the above-mentioned specified notification ID, and the notification means “application” and stores them in the notification history table 44. After updating the notification history table 44, the application 38 deletes the occurred event ID from the occurred event list.
[0050] In S36, the application 38 determines whether or not an operation to terminate the application 38 has been received. If the operation has been received, the application 38 determines YES in S36 and ends the processing in FIG. 3. On the other hand, if the operation has not been received, the application 38 determines NO in S36 and executes the processing from S12 onwards again. That is, the application 38 executes the processing of S10 when the application 38 is launched, and then repeatedly executes the processing from S12 onwards while the application 38 is launched.
[0051] (Event occurrence determination process; Figure 4) Next, the event occurrence determination process of S20 in Fig. 3 will be described with reference to Fig. 4. In S40 in Fig. 4, the application 38 identifies one event ID from the event table 40. Hereinafter, the event ID identified here will be referred to as a "target event ID."
[0052] In S42, the application 38 uses the status history table 42 to compare the previous status information corresponding to the target event ID with the current status information. Although not shown in FIG. 2, status information items are preset for each event ID. For example, the event ID "Low" and the event ID "Empty" are preset with the item "Remaining Amount." Furthermore, the event ID "NotGenuine" and the event ID "Service_In" are preset with the items "Type" and "Service," respectively. The application 38 first identifies an item (e.g., "Remaining Amount," hereinafter referred to as the "target item") corresponding to the target event ID (e.g., event ID "Low"). Then, the application 38 identifies the previous status information (e.g., "50" in FIG. 2) and the current status information (e.g., "20" in FIG. 2) associated with the target item from the status history table 42.
[0053] In S44, the application 38 determines whether an event has occurred. Specifically, the application 38 determines that the target event has occurred if the previous status information identified in S42 does not satisfy the occurrence condition of the event identified by the target event ID (hereinafter referred to as the "target event") and the current status information identified in S42 satisfies the occurrence condition of the target event. For example, if the target event ID is "Low" (i.e., if the target event is "ink low"), the occurrence condition is that the remaining amount is "20" or less. Therefore, the application 38 determines that the target event has occurred if the remaining amount in the previous status information is greater than "20" and the remaining amount in the current status information is "20" or less. On the other hand, for example, if both the remaining amount in the previous status information and the remaining amount in the current status information are "20" or less, the application 38 determines that the target event has not occurred. This is because in this situation, it has already been determined that the target event has occurred in the event occurrence determination process before the previous one. If the application 38 determines that the target event has occurred, it determines YES in S44 and proceeds to S46, and if it determines that the target event has not occurred, it determines NO in S44 and proceeds to S50.
[0054] Here, the occurrence conditions corresponding to other event IDs are listed. If the target event ID is "Empty" (i.e., the target event is "Ink Empty"), the occurrence condition is that the remaining amount is "0". If the target event ID is "Not Genuine" (i.e., the target event is "Non-genuine cartridge"), the occurrence condition is that the type is "Non-genuine". If the target event ID is "Service_in" (i.e., the target event is "Service subscription"), the occurrence condition is that the user changes the service to which they have subscribed.
[0055] In S46, the application 38 determines whether a push notification for the target event has already been executed. Specifically, the application 38 first identifies a notification ID associated with the target event ID from the event table 40. Next, the application 38 determines whether a time from the current time up to 15 minutes ago, the identified notification ID, and the notification method "push" are associated in the notification history table 44. Here, "15 minutes" is set as follows: As will be described in detail later, the server 200 executes an event occurrence determination process at regular intervals (see YES in S120 and S130 in FIG. 5, which will be described later), and if it determines that an event has occurred, sends a push notification to the terminal 10. In this embodiment, the regular interval is set to 15 minutes. Therefore, in S46, it is determined whether a push notification for the target event has already been executed within 15 minutes from the current time. If a time from the current time up to 15 minutes ago is not associated with the identified notification ID and the notification method "push," the application 38 determines "NO" in S46 and writes the target event ID in the list of occurring events in S48. As a result, an in-app notification for the target event is executed (YES in S24 of FIG. 3, S30). On the other hand, if a time from the current time up to 15 minutes ago is associated with the identified notification ID and the notification method "push," the application 38 determines "YES" in S46, skips S48, and proceeds to S50. As a result, it is possible to prevent an in-app notification from being executed for an event for which a push notification has already been executed.
[0056] In S50, the application 38 determines whether the processes of S40 to S48 have been executed for all event IDs in the event table 40. If the processes have been executed for all event IDs, the application 38 determines YES in S50 and ends the process of Fig. 4. On the other hand, if the processes have not been executed for all event IDs, the application 38 identifies another event ID in S40 and executes the processes of S42 to S48.
[0057] (Server 200 processing; Figure 5) Next, the processing performed by the CPU 232 of the server 200 will be described with reference to Fig. 5. The processing in Fig. 5 is executed while the power of the server 200 is on. The server 200 executes the various communications in Fig. 5 and Fig. 6 with each of one or more terminals corresponding to one or more user IDs stored in the user table 240, and with each of one or more printers corresponding to one or more printer IDs stored in the printer table 242.
[0058] In S100, the CPU 232 monitors whether status information is received from a printer (e.g., printer 100). As described above, the server 200 receives status information from, for example, the printer 100 periodically (e.g., every five minutes). If the CPU 232 receives status information from any printer (e.g., printer 100) identified by a printer ID stored in the printer table 242, the CPU 232 determines YES in S100 and proceeds to S102. If the CPU 232 does not receive status information from any printer identified by a printer ID stored in the printer table 242, the CPU 232 determines NO in S100 and proceeds to S110. Hereinafter, the printer that sent the status information will be referred to as the "target printer." Although not shown in the figure, the CPU 232 receives the time when the status information was sent from the target printer along with the status information. The status information includes the printer ID of the target printer (e.g., printer ID "P1," hereinafter referred to as the "target printer ID").
[0059] In S102, the CPU 232 updates the status history table 246. Specifically, the CPU 232 first identifies the target printer ID included in the received status information. Then, the CPU 232 stores the status information in association with the time when the status information was received in the status history table 246 corresponding to the target printer identified by the identified target printer ID.
[0060] In S110, CPU 232 monitors whether notified information has been received from a terminal (e.g., terminal 10). If notified information has been received from any terminal (e.g., terminal 10) identified by a user ID stored in user table 240, CPU 232 determines YES in S110 and proceeds to S112, and if notified information has not been received from any terminal identified by a user ID stored in user table 240, CPU 232 determines NO in S110 and proceeds to S120. Hereinafter, the terminal that has transmitted the notified information will be referred to as the "target terminal." The notified information includes the user ID of the target terminal (e.g., user ID "U1," hereinafter referred to as the "target user ID"), the time, and a notification ID (see S32 in FIG. 3).
[0061] In S112, the CPU 232 updates the notification history table 248. Specifically, first, the CPU 232 identifies the target user ID included in the received notified information. Next, the CPU 232 identifies the printer ID associated with the identified target user ID from the user table 240. Then, the CPU 232 associates and stores the time included in the received notified information, the notification ID included in the received notified information, and the notification means "app" in the notification history table 248 corresponding to the printer identified by the identified printer ID.
[0062] In S120, the CPU 232 determines whether a certain time (for example, 15 minutes) has passed since the processing from S130 onward was last executed. If the CPU 232 determines that the certain time has passed, it determines YES in S120 and proceeds to S130, but if it determines that the certain time has not passed, it determines NO in S120 and returns to the monitoring processing of S100, S110, etc.
[0063] In S130, CPU 232 executes an event occurrence determination process. The event occurrence determination process is a process for determining whether an event has occurred in each printer based on status history table 246 corresponding to each printer identified by each printer ID stored in printer table 242. An example of determining whether an event has occurred in printer 100 will be described below.
[0064] In S132, the CPU 232 determines whether an event is stored in the occurring event list for the printer 100. The occurring event list indicates a list of occurring events for each of multiple printers identified by multiple printer IDs stored in the printer table 242. The occurring event list is a list of event IDs (e.g., "Low") that can be written in the event occurrence determination process of S130. If one or more event IDs are written in the occurring event list for the printer 100, the CPU 232 determines YES in S132 and proceeds to S134. On the other hand, if not a single event ID is written in the occurring event list for the printer 100, the CPU 232 determines NO in S132 and returns to the monitoring process of S100, S110, etc. Hereinafter, the event IDs written in the occurring event list will be referred to as "occurring event IDs."
[0065] In S134, the CPU 232 sends a push notification to the terminal 10. Specifically, the CPU 232 first identifies, from the event table 244, a message associated with the occurred event ID described in the occurred event list for the printer 100. Next, the CPU 232 identifies, from the user table 240, the user ID "U1" associated with the printer ID "P1" of the printer 100. The CPU 232 then creates a push notification including the identified message and transmits the created push notification to the terminal 10 identified by the identified user ID "U1" via a server installed on the Internet 6 by the vendor of the OS 36. Specifically, the CPU 232 first transmits the push notification and the identified user ID "U1" to a server installed on the Internet 6 by the vendor of the OS 36. The server identifies the terminal 10 using the identified user ID "U1" and transmits the received push notification to the identified terminal 10. In a modified example, the server 200 may send the push notification directly to the terminal 10 without going through the above-mentioned server. As a result, the push notification is displayed on the display unit 14 of the terminal 10. Note that if two or more occurring event IDs are described in the occurring event list for the printer 100, the CPU 232 sequentially sends two or more push notifications corresponding to the two or more occurring event IDs to the terminal 10.
[0066] As described above, when the app 38 is running on the terminal 10, the app 38 repeatedly executes the event occurrence determination process (see FIGS. 3 and 4). Meanwhile, the CPU 232 executes the event occurrence determination process every fixed time (15 minutes in this embodiment) (YES in S120, S130). For this reason, when the app 38 is running on the terminal 10, it is highly likely that an in-app notification will be executed first for an occurred event. As will be described in detail later, if an in-app notification for the same occurred event has already been executed on the terminal 10, a push notification will not be sent to the terminal 10. In other words, the push notification is executed when the app 38 is not running. For this reason, the push notification is displayed on a screen other than the screen displayed by the app 38 (for example, the home screen displayed by the OS 36).
[0067] In S136, the CPU 232 updates the notification history table 248 for the printer 100. Specifically, the CPU 232 first identifies the current time (i.e., the time when the push notification was sent to the terminal 10). Furthermore, the CPU 232 identifies the notification ID associated with the occurred event ID from the event table 244. The CPU 232 then associates the identified time, the identified notification ID, and the notification method "push" and stores them in the notification history table 248. After updating the notification history table 248 for the printer 100, the CPU 232 deletes the occurred event ID from the list of occurred events for the printer 100. When the processing of S136 ends, the CPU 232 returns to the monitoring processing of S100, S110, etc.
[0068] (Event occurrence determination process; Figure 6) Next, the event occurrence determination process of S130 in FIG. 5 will be described with reference to FIG. 6. In S140, the CPU 232 determines whether the printer 100 is registered as a printer that receives services. Specifically, the CPU 232 first identifies the printer ID "P1" of the printer 100 from the printer table 242. Next, the CPU 232 determines whether one or more services are associated with the printer ID "P1" in the printer table 242. If one or more services are associated with the printer ID "P1" in the printer table 242, that is, if the user of the printer 100 (i.e., the user of the terminal 10) has subscribed to one or more services, the CPU 232 determines YES in S140 and proceeds to S142. On the other hand, if no services are associated with the printer ID "P1" in the printer table 242, the CPU 232 determines NO in S140 and ends the process of FIG. 6.
[0069] In S142, the CPU 232 identifies one event ID from the event table 244. Hereinafter, the event ID identified here will also be referred to as the "target event ID."
[0070] In S144, the CPU 232 refers to the status history table 246 and compares the status history corresponding to the target event ID. Specifically, the CPU 232 first identifies the target item from the status history table 246. The method for identifying the target item is the same as the method for identifying the target item in S42 of FIG. 4. The CPU 232 then identifies the status information associated with the target item from the status history table 246. Specifically, the CPU 232 first identifies the most recent status information among the status information received 15 minutes or more before the current time (hereinafter referred to as "previous status information") and the most recent status information stored in the status history table 246 (hereinafter referred to as "current status information"). The reason why the previous status information is identified here, rather than the status information received one cycle before (i.e., five minutes before) the current status information, is as follows.
[0071] As described above, the event occurrence determination process is executed every 15 minutes, and status information is received every 5 minutes. Therefore, the status information from one cycle ago is the status information received from the printer 100 after the event occurrence determination process was last executed. Therefore, it may be possible to accurately determine whether an event has occurred. For example, assume a situation in which the current status information associated with the remaining amount is "15," the status information received one cycle ago (i.e., five minutes ago) is "20," and the previous status information is "30." In this situation, an "ink low" event has occurred since the event occurrence determination process was last executed (because the previous status information was "30" and the status information from one cycle ago was "20"). However, if an event occurrence determination is executed based on the current status information and the status information from one cycle ago, it will be determined that the "ink low" event has not occurred. To prevent this from occurring, the CPU 232 identifies the previous status information, i.e., the most recent status information from the last time the event occurrence determination process was executed.
[0072] In S150, the CPU 232 determines whether an event has occurred. Specifically, the CPU 232 determines that the target event has occurred if the previous status information does not satisfy the occurrence condition of the target event identified by the target event ID, and if the previous status information satisfies the occurrence condition of the target event. If the CPU 232 determines that the target event has occurred, it determines YES in S150 and proceeds to S152. If the CPU 232 determines that the target event has not occurred, it determines NO in S150 and proceeds to S160. Note that, although not shown in FIG. 2, the server 200 stores the number of ink cartridge purchases in the printer table 242 in association with the printer ID and the registered service. If the target event ID is "Purchase10" (i.e., if the target event is "purchase cartridge 10 times"), the occurrence condition is that the number of cartridge purchases is "10."
[0073] In S152, the CPU 232 determines whether an in-app notification for the target event has already been executed. Specifically, the CPU 232 first identifies a notification ID associated with the target event ID from the event table 244. Next, the CPU 232 determines whether a time from the current time up to 15 minutes ago, a previously identified notification ID, and the notification method "app" are associated in the notification history table 248. The reason for setting "15" here is as explained in S46 of FIG. 3. If a time from the current time up to 15 minutes ago, a previously identified notification ID, and the notification method "app" are not associated, the CPU 232 determines "NO" in S152 and writes the target event ID in the list of occurring events for the printer 100 in S154. On the other hand, if a time from the current time up to 15 minutes ago, a previously identified notification ID, and the notification method "app" are associated, the CPU 232 determines "YES" in S152, skips S154, and proceeds to S160. This makes it possible to prevent push notifications from being executed for events for which in-app notifications have already been executed.
[0074] In S160, CPU 232 determines whether the processes of S142 to S154 have been executed for all event IDs in event table 244. If the processes have been executed for all event IDs, CPU 232 determines YES in S160 and ends the process of Fig. 6. On the other hand, if the processes have not been executed for all event IDs, CPU 232 identifies another event ID in S142 and executes the processes of S144 to S154.
[0075] (Specific cases: Figures 7 to 9) Next, with reference to FIGS. 7 to 9, a specific case realized by the processing of FIGS. 3 to 6 will be described. In the initial state of FIG. 7, the terminal 10 stores the remaining amount "50", the service "Service A", and the type "genuine" as the previous status information in the status history table 42, but does not store the current status information. In addition, the server 200 stores the user ID "U1" and the printer ID "P1" in association with each other in the user table 240, and stores the printer ID "P1" and the registered service "Service A" in association with each other in the printer table 242. In addition, the server 200 stores the status information at time T0 (i.e., the remaining amount "50", the service "Service A", and the type "genuine") in the status history table 246. That is, in the initial state of FIG. 7, the terminal 10 and the printer 100 have already been registered in the server 200. In particular, the printer 100 has already been registered as a printer that receives the service "Service A".
[0076] For ease of understanding, the processes executed by a CPU (e.g., 32, 232) will be described below as being mainly performed by a device (e.g., terminal 10, server 200) rather than by the CPU. Also, the processes realized by CPU 32 executing application 38 may be described as being mainly performed by application 38 instead of by the terminal 10.
[0077] When the terminal 10 receives an application startup operation (for example, an operation of tapping the icon of the application 38) from the user at T10, the terminal 10 starts the application 38 at T12. As a result, the application 38 displays a home screen D1 of the application 38 on the display unit 14. The home screen D1 includes the printer ID "P1" of the printer 100 and the previous status information in the status history table 42 (for example, the remaining amount "50").
[0078] When the application 38 is started at T12, the application 38 transmits a notification request to the server 200 at T20, requesting the server 200 to transmit a notification history.
[0079] When the server 200 receives a notification request from the terminal 10 at T20, it transmits the notification history stored in the notification history table 248 to the terminal 10 at T22. At this stage, no information is stored in the notification history table 248, so the notification history transmitted at T22 is blank.
[0080] At T22, the application 38 receives a notification history from the server 200 (S10 in FIG. 3). In this case, the application 38 stores the received notification history in the notification history table 44. Note that the history information received at T22 is blank, and therefore no information is currently stored in the notification history table 44.
[0081] Furthermore, when the application 38 is started (T12), in T24 the application 38 transmits a status request to the printer 100 requesting transmission of status information.
[0082] When the printer 100 receives a status request from the terminal 10 at T24, it transmits status information to the terminal 10 at T26. The status information includes the remaining amount "20", the service "Service A", and the type "genuine".
[0083] In T26, the application 38 receives status information from the printer 100 (S12 in FIG. 3), and in T30, updates the status history table 42. Specifically, the application 38 stores the status information already received from the printer 100 (i.e., remaining amount "20", service "Service A", and type "genuine") as the current status information in the status history table 42. In this case, since the previous status information has already been stored (YES in S14), the application 38 executes the event occurrence determination process (S20 in FIG. 3) as follows.
[0084] First, the application 38 identifies one event ID, "Low," from the event table 40 (S40 in FIG. 4), and identifies the item, "Remaining Amount," from the status history table 42. Next, the application 38 identifies the previous status information, "50," and the current status information, "20," for the item, "Remaining Amount" (S42). In this case, the application 38 determines that the event, "Ink Low," has occurred in T32 (YES in S44) because the previous status information does not satisfy the occurrence condition for the event, "Ink Low," and the current status information satisfies the occurrence condition for the event, "Ink Low." Furthermore, the application 38 determines that a push notification for the event, "Ink Low," has not been executed (NO in S46) because no information is stored in the notification history table 44 (see T22). In this case, the application 38 writes the event ID, "Low," corresponding to the event, "Ink Low" in the list of occurred events in T34 (S48).
[0085] Next, the application 38 identifies another event ID "Empty" from the event table 40 (NO in S50, S40). In this case, the application 38 determines that the event "Ink Empty" has not occurred (NO in S44). Similarly, the application 38 determines that the events identified by the event IDs "NotGenuine" and "Service_In" have not occurred.
[0086] When the application 38 executes the above event occurrence determination for all event IDs in the event table 40 (i.e., the four event IDs "Low," "Empty," "NotGenuine," and "Service_In") (YES in S50), it updates the status history table 42 at T36 (S22 in FIG. 3). Specifically, the application 38 stores the current status information as the previous status information and deletes the current status information.
[0087] Because the event ID "Low" is described in the list of occurred events (YES in S24), the app 38 displays the in-app notification AN on the display unit 14 in T40 (S30 in FIG. 3). Specifically, the app 38 displays the in-app notification AN on the home screen D1 that was already displayed in T12. The in-app notification AN includes a message M1 (i.e., the message "Ink is running low. Please purchase a new cartridge.") that is associated with the event ID "Low" described in the list of occurred events in the event table 40. By viewing the in-app notification AN, the user can know that they should purchase a new cartridge. Furthermore, although not shown in the figure, the app 38 can execute processing for purchasing a new cartridge (for example, processing for transitioning to a web page for purchasing a new cartridge) by receiving selection of the in-app notification AN from the user.
[0088] (Continuation of Figure 7; Figure 8) 8, the application 38 transmits the notified information to the server 200 (S32 in FIG. 3). The notified information includes the user ID "U1" of the terminal 10, the current time (i.e., the time when the in-application notification AN is displayed) T1, and the notification ID "N1" associated with the event ID "Low" in the event table 40.
[0089] When the server 200 receives notified information from the terminal 10 in T42 (YES in S110 of FIG. 5), it updates the notification history table 248 in T44 (S112). Specifically, the server 200 first identifies the printer ID "P1" associated with the user ID "U1" from the user table 240. Then, the server 200 associates and stores the time T1, the notification ID "N1," and the notification means "app" included in the received notified information in the notification history table 248 corresponding to the printer 100 identified by the printer ID "P1."
[0090] Furthermore, the application 38 updates the notification history table 44 in T46 (S34 in FIG. 3). The various information stored here is the same as the various information stored in the notification history table 248 by the server 200 in T44.
[0091] At T50, when the five-minute cycle arrives, printer 100 transmits status information including printer ID "P1" and the current time T2 to server 200. The status information includes the remaining amount "20", the service "Service A", and the type "genuine". The difference between time T2 and time T1 is less than 15 minutes.
[0092] When the server 200 receives status information from the printer 100 at T50 (YES in S100 of FIG. 5), it updates the status history table 246 at T52 (S102). Specifically, the server 200 first identifies the printer ID "P1" included in the received status information. Then, in the status history table 246 corresponding to the printer 100 identified by the identified printer ID "P1," the server 200 associates time T2 with multiple pieces of information corresponding to the status of multiple items included in the status information (i.e., remaining amount "20," service "Service A," type "genuine") and stores them in association with each other. As a result, a column for time T2 is added to the status history table 246, as shown in FIG. 8.
[0093] Thereafter, when a certain time (15 minutes in this case) has elapsed since the last time the event occurrence determination process was executed in the server 200 (YES in S120), the server 200 executes the event occurrence determination process (S130).
[0094] First, since the printer 100 is registered as a printer that receives services (YES in S140 of FIG. 6), the server 200 executes a process to determine whether an event has occurred. If the printer 100 is not registered as a printer that receives services, the process to determine whether an event has occurred is not executed (NO in S140, End). For this reason, the server 200 can send a push notification to the terminal 10 only when the printer 100 is registered as a printer that receives services.
[0095] First, the server 200 identifies one event ID, "Low," from the event table 244 (S142 in FIG. 6), and identifies the item, "Remaining Amount," from the status history table 246. Next, for the item, "Remaining Amount," the server 200 identifies the status information at time T0 (i.e., the previous status information), "50," and the status information at time T2 (i.e., the current status information), "20" (S144). In this case, the server 200 determines that the event, "Ink Low," occurred at T54 because the previous status information does not satisfy the occurrence condition for the event, "Ink Low," and the current status information satisfies the occurrence condition for the event, "Ink Low" (YES in S144 and S150). Next, the server 200 identifies the notification ID, "N1," associated with the event ID, "Low," from the event table 244. The server 200 determines that the in-app notification for the event "Ink Low" has already been executed (YES in S152) because the notification history table 248 associates a time T1 up to 15 minutes before the current time with the identified notification ID "N1" and the notification means "APPLICATION." In this case, the server 200 does not write the event ID "Low" in the list of occurring events. As a result, a push notification is not executed for the event "Ink Low" for which the in-app notification AN has already been executed.
[0096] Furthermore, the server 200 determines that no events identified by other event IDs "Empty," "NotGenuine," "Service_In," or "Purchase10" in the event table 244 have occurred (NO in S150).
[0097] In this way, even if the server 200 determines that the event "Ink Low" has occurred after the app 38 displays an in-app notification AN for the event "Ink Low," the server 200 does not add the event ID "Low" to the list of occurred events. That is, a push notification is not sent to the terminal 10 for the event "Ink Low" for which the in-app notification AN has already been executed. This prevents a push notification indicating the same content as the in-app notification AN that has already been displayed from being displayed on the terminal 10. This improves convenience for the user of the terminal 10.
[0098] Thereafter, when the application 38 receives an application termination operation from the user in T60 to terminate the application 38 (YES in S36 of FIG. 3), the application 38 terminates the application 38 in T62.
[0099] Also, at T64, the printer 100 executes printing. As a result, the remaining amount of ink in the ink cartridge installed in the printer 100 becomes "0" from "20".
[0100] Thereafter, in response to the arrival of the five-minute period, at T70, the printer 100 transmits status information and time T3 to the server 200. The status information transmitted at T70 is the same as the status information at T50, except that the remaining amount is "0".
[0101] When the server 200 receives status information from the printer 100 in T70 (YES in S100 in FIG. 5), in T72 it updates the status history table 246. The specific processing is the same as the processing in T52, except that the time and remaining amount are T3 and "0", respectively.
[0102] (Continuation of Figure 8; Figure 9) Thereafter, when a certain time (15 minutes in this case) has elapsed since the last time the event occurrence determination process was executed in the server 200 (i.e., 15 minutes have elapsed since time T2) (YES in S120), the event determination generation process is executed (S130). Here, an example will be described in which 15 minutes have elapsed since time T2 at the above-mentioned time T3. The specific processing of the event determination generation process has already been described. As a result, the server 200 determines that the event "Ink Empty" identified by the event ID "Empty" has occurred at T74 in FIG. 9 (YES in S144, S150). Furthermore, it determines that no events identified by other event IDs "Ink Low," "Not Genuine," "Service_In," or "Purchase10" have occurred (NO in S150). Next, the server 200 identifies the notification ID "N2" associated with the event ID "Empty" from the event table 244. The server 200 determines that the in-app notification for the event "Ink Empty" has not been executed (NO in S152) because the notification history table 248 does not associate the time up to 15 minutes before the current time with the identified notification ID "N2" and the notification method "app." In this case, the server 200 writes the event ID "Empty" in the list of occurring events for the printer 100 in T76 (S154).
[0103] Because the event ID "Empty" is entered in the list of occurring events for the printer 100 (YES in S132 of FIG. 5), the server 200 sends a push notification to the terminal 10 in T80 (S134). Then, the server 200 updates the notification history table 248 in T82 (S136). Specifically, the server 200 associates the current time (i.e., the time the push notification was sent) T3 with the notification ID "N2" and the notification method "push" and stores them in the notification history table 248.
[0104] When the app 38 receives a push notification from the server 200 in T80, the app 38 displays the push notification PN on the display unit 14 in T84. In a modified example, the OS 36 may display the push notification PN on the display unit 14 when a push notification is received from the server 200. At the time of T80, the app 38 is not running. Therefore, the push notification PN is displayed not on the screen displayed by the app 38 but on the home screen D2 (e.g., a screen displaying the time as shown in FIG. 9 ) displayed by the OS 36. The push notification PN includes a message M2 (i.e., the message “Ink is out. Please purchase a new cartridge.”) associated with the event ID “Empty” described in the list of occurring events for the printer 100 in the event table 244. By viewing the push notification PN, the user can know that they should purchase a new cartridge even when the app 38 is not running. Although not shown, the terminal 10 can start the app 38 by accepting a selection of the push notification PN from the user. The launched application 38 can then execute a process for purchasing a new cartridge (for example, a process for transitioning to a web page for purchasing a new cartridge).
[0105] Thereafter, within 15 minutes from time T3, the same processes as T10 to T26 in Fig. 7 are executed. As a result, the application 38 stores a notification history table 44 in which the time T1, the notification ID "N1", and the notification means "application" are associated with each other, and the time T3, the notification ID "N2", and the notification means "push" are associated with each other.
[0106] Furthermore, the application 38 updates the status history table 42 at T90. The process at T90 is the same as the process at T30 in Fig. 7, except that the remaining capacity stored as the current status information is "0". After that, the event occurrence determination process (S20 in Fig. 3) is executed. The specific process has already been described.
[0107] At T92, the application 38 determines that the event "ink empty" has occurred (YES in S44 of FIG. 4). Next, the application 38 identifies the notification ID "N2" associated with the event ID "Empty" from the event table 40. The application 38 determines that a push notification for the event "ink empty" has already been executed (YES in S46) because the notification history table 44 stores a time T3 that is 15 minutes before the current time, the identified notification ID "N2," and the notification method "push" in association with each other. In this case, the application 38 does not write the event ID "Empty" corresponding to the event "ink empty" in the list of occurred events. That is, an in-app notification is not displayed for the event "ink empty" for which a push notification has already been executed. This prevents an in-app notification that indicates content similar to the push notification PN already received from the server 200 from being displayed on the terminal 10. This improves convenience for the user of the terminal 10.
[0108] (Effects of the Example) According to the above configuration, when the terminal 10 receives a push notification from the server 200 (T80 in FIG. 9), the terminal 10 displays the push notification PN (T82). In addition, when the terminal 10 receives status information from the printer 100, the terminal 10 displays the in-app notification AN (T26 to T40 in FIG. 7). In this way, the terminal 10 can display the push notification PN or the in-app notification AN regardless of whether the terminal 10 receives information from the server 200 or the printer 100.
[0109] Here, consider a first comparative example in which only a push notification is executed. In the first comparative example, even if the app 38 is not running in the foreground, the server 200 executes an event occurrence determination process (see S130 in FIG. 5 and FIG. 6). As a result, the server 200 transmits a push notification to the terminal 10, and the push notification is displayed on the terminal 10. However, because the event occurrence determination process on the server 200 is executed at regular intervals (every 15 minutes in this embodiment), there is a possibility of a time lag occurring between when an event actually occurs on the printer 100 and when the push notification is displayed on the terminal 10.
[0110] Also, a second comparative example will be considered in which only the in-app notification is executed. In the second comparative example, the processes of S12 to S34 in FIG. 3 are repeatedly executed while the app 38 is running in the foreground. That is, the app 38 can display the in-app notification in real time. However, the app 38 can only receive status information from the printer 100 while the app 38 is running in the foreground. That is, the app 38 can only display the in-app notification while the app 38 is running in the foreground. As a result, the in-app notification is displayed when the app 38 is started in the foreground after an event occurs in the printer 100. For this reason, there is a possibility of a time lag between when an event actually occurs in the printer 100 and when the in-app notification is displayed on the terminal 10.
[0111] On the other hand, in this embodiment, both push notification and in-app notification are executed. Therefore, the app 38 can display the in-app notification in real time when the app 38 is running in the foreground. Furthermore, even when the app 38 is not running, the terminal 10 can display the push notification by receiving the push notification from the server 200. Therefore, the terminal 10 can quickly display the notification (i.e., the push notification PN or the in-app notification AN). This improves convenience for the user of the terminal 10.
[0112] Furthermore, with the above configuration, when the server 200 receives status information from the printer 100 without receiving notified information from the terminal 10, the server 200 transmits a push notification to the terminal 10 (T70 and T72 in FIG. 8, and T74 to T80 in FIG. 9). As a result, the push notification PN is displayed on the terminal 10 (T84). On the other hand, even if the server 200 receives status information from the printer 100 after receiving notified information from the terminal 10, the server 200 does not transmit the push notification PN to the terminal 10 (T42 to T54 in FIG. 8). Therefore, it is possible to prevent a push notification that indicates content similar to a displayed in-app notification AN from being displayed on the terminal device. This improves convenience for the user of the terminal 10.
[0113] Furthermore, with the above configuration, when the terminal 10 receives status information from the printer 100 without receiving a push notification from the server 200, the terminal 10 displays an in-app notification AN (T26 to T40 in FIG. 7). On the other hand, when the terminal 10 receives status information from the printer 100 after displaying a push notification PN, the terminal 10 does not display an in-app notification (T26, T90, T92 in FIG. 7, which are referenced in FIG. 9). Therefore, it is possible to prevent an in-app notification that shows the same content as a push notification PN that has already been displayed from being displayed on the terminal 10. This improves convenience for the user of the terminal 10.
[0114] Furthermore, the terminal 10 receives status information from the printer 100 only when the application 38 is running. This reduces the communication load on the terminal 10 and the printer 100 compared to a configuration in which status information can be received from the printer 100 even when the application 38 is not running. In a modified example, a configuration in which status information can be received from the printer 100 even when the application 38 is not running may be employed.
[0115] Furthermore, the app 38 displays in-app notifications regardless of whether the printer 100 is registered as a printer that receives services. This allows the user to display in-app notifications related to the printer 100 even if the user does not register the printer 100 as a printer that receives services. This improves user convenience.
[0116] (Correspondence) The terminal 10, the printer 100, and the server 200 are examples of a "terminal device," a "communication device," and a "server," respectively. The app 38 is an example of a "predetermined application program." The status information transmitted from the printer 100 to the server 200 (e.g., T50 in FIG. 8 ) and the status information transmitted from the printer 100 to the terminal 10 (e.g., T26 in FIG. 7 ) are examples of "first history information" and "second history information," respectively. The push notification PN and the in-app notification AN are examples of "first notification information" and "second notification information," respectively. The remaining amount included in the status information being "20" or less (or "0") is an example of "satisfying a predetermined notification condition." The remaining amount "20" (and "0") are examples of a "threshold." The notified information transmitted at T42 is an example of "notified information." The service "Service A" is an example of a "predetermined service." The ink and the ink cartridge are examples of "colorant" and "consumable (and cartridge)," respectively. Screens D1 and D2 are examples of "a screen displayed by a predetermined application program" and "a screen displayed by a program other than the predetermined application program", respectively. Message M1 (and M2) is an example of "a message encouraging the ordering of consumables".
[0117] The process of T50 in FIG. 8 and the process of T26 in FIG. 7 are examples of processes executed by the "first history information transmission unit" and the "second history information transmission unit" of the "communication device", respectively. The process of S134 in FIG. 5 and the process of T80 in FIG. 8 are examples of processes executed by the "notification information transmission unit" of the "server."
[0118] The processing of T84 in Fig. 9 is an example of processing executed by a "first display control unit" of the "terminal device." The processing of S30 in Fig. 3 and the processing of T40 in Fig. 7 are examples of processing executed by a "second display control unit" of the "terminal device" and the "application program." The processing of S32 in Fig. 3 and the processing of T42 in Fig. 8 are examples of processing executed by a "notified information sending unit" of the "terminal device." The processing of S12 in Fig. 3 and the processing of T26 in Fig. 7 are examples of processing executed by a "history information receiving unit" of the "terminal device."
[0119] Although specific examples of the technology disclosed in this specification have been described in detail above, these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and variations of the specific examples exemplified above. Modifications of the above examples are listed below.
[0120] (Variation 1) The status information may include other information (e.g., the cumulative number of printed pages in the printer, the number of days the printer has been used, etc.) in addition to or instead of the remaining amount, service, and type. Generally speaking, the "first (and second) history information" may be any information that indicates the usage history of the "communication device."
[0121] (Variation 2) The app 38 can omit the process of S46 in Fig. 4. That is, the app 38 can display an in-app notification of the occurring event regardless of whether a push notification of the occurring event has already been executed. In another variation, the server 200 can omit the process of S152 in Fig. 6. That is, the CPU 232 of the server 200 can display a push notification of the occurring event on the terminal 10 regardless of whether an app notification of the occurring event has already been executed.
[0122] (Variation 3) The server 200 may omit the process of S140 in Fig. 6. That is, the server 200 may execute the processes from S142 onwards regardless of whether the printer 100 is registered as a printer that receives the provision of services. In another variation, the app 38 may display an in-app notification only if the printer 100 is registered as a printer that receives the provision of services.
[0123] (Variation 4) Assume that the printer 100 is registered as a printer that receives a service in which a fee is charged according to the number of sheets of print media printed by the printer 100 within a certain period of time. In this situation, ink cartridges are provided free of charge by the printer 100 vendor in response to a user request. In this variation, the message M1 may be, for example, a message stating, "Ink is running low. Please order a new ink cartridge." In other words, in this variation, the above message is an example of a "message encouraging the ordering of consumables." In another variation, for example, a notification displayed when an event occurs in which the number of days of use of the printer reaches a predetermined number (e.g., 1,000 days) may include a message stating, "The number of days of use of the printer has exceeded 1,000. We suggest replacing the printer with a new one." Generally speaking, the "first (and second) history information" does not need to include information regarding the "consumables installed in the communication device." Furthermore, the "first (and second) notification information" may include a message other than the "message encouraging the ordering of consumables."
[0124] (Variation 5) The push notification may be displayed on screen D1 displayed by app 38, or may be displayed on a screen displayed by a program different from either OS 36 or app 38. Generally speaking, the "first display control unit" of the "terminal device" may display the "first notification information" on "a screen displayed by a program different from a predetermined application program," or may display it on "a screen displayed by a predetermined application program."
[0125] (Variation 6) The event table 40 stored in the memory 34 by the app 38 need not be static information, but may be information that is updated as the app 38 is used. Specifically, in S10 of FIG. 3, the app 38 may obtain an event list in addition to the notification history from the server 200. The server 200 identifies events for which the app 38 can execute an event occurrence determination process from the event table 244. For example, in the example of FIG. 2, the server 200 identifies four event IDs, "Low," "Empty," "Not Genuine," and "Service_In," from the event table 244. Here, the event ID "Purchase10" (i.e., the event "purchase 10 cartridges") is not identified. This is because the app 38 does not manage the number of ink cartridge purchases and therefore cannot determine the occurrence of this event. The server 200 may then identify notification IDs and messages associated with each identified event ID and transmit this information to the terminal 10 as an event list. As a result, the event table 40 may be updated in the app 38.
[0126] (Variation 7) The server 200 may store an email address in association with a user ID in the user table 240. In this case, the server 200 may send an email to the terminal 10 instead of a push notification in S134 of FIG. 5. Specifically, the server 200 may identify a message associated with the occurring event ID, a user ID "U1" associated with the printer ID "P1," and an email address associated with the user ID "U1." The server 200 may then include the identified email address as a destination address and send an email including the identified message to the terminal 10. In this variation, the email is an example of "first notification information."
[0127] (Variation 8) In the above embodiment, an example was described in which the user of the terminal 10 owns one printer 100. That is, in the above embodiment, the app 38 executes the processes of FIGS. 3 and 4 for one printer 100. In a variation, when the user of the terminal 10 owns two or more printers, the app 38 may execute the processes of FIGS. 3 and 4 for each of the two or more printers. In particular, the terminal 10 may store each of the tables 40 to 44 in association with each of the two or more printers. In this case, in S30, the app 38 may display on the display unit 14 an in-app notification including a printer ID that identifies the printer in which the event occurred. Furthermore, in S32, the app 38 may transmit to the server 200 notification completion information further including the printer ID. In this case, in S112 of FIG. 5, the server 200 may update the notification history table 248 corresponding to the printer ID included in the notification completion information. In another modified example, in a situation where the user of terminal 10 owns two or more printers, application 38 may transmit notified information that does not include a printer ID to server 200. Instead of storing notification history tables 248 corresponding to each of a plurality of printers identified by a plurality of printer IDs stored in printer table 242, server 200 may store notification history tables 248 corresponding to each of a plurality of user IDs stored in user table 240. When server 200 receives notified information from terminal 10, it may update notification history tables 248 corresponding to the user ID included in the notified information.
[0128] (Variant 9) The notification history table 44 (and 248) may further store additional information associated with each piece of information. For example, consider a variant in which the printer 100 is equipped with multiple ink cartridges (e.g., ink cartridges corresponding to multiple colors, such as cyan, magenta, yellow, and black). In this variant, the app 38 and the server 200 may determine whether the "ink low" event has occurred for each of the multiple ink cartridges, or may determine that the "ink low" event has occurred in the printer 100 when the remaining ink level in any ink cartridge is 20% or less. In particular, when the occurrence of the "ink low" event is determined for each of the multiple ink cartridges, the additional information may be information (e.g., color) for identifying one of the multiple ink cartridges. In such a case, the app 38 may transmit notification completion information further including the above-described additional information to the server 200 in S32 of FIG. 3.
[0129] (Variant 10) In the above embodiment, each process in Figures 3 to 9 is realized by software such as app 38, program 236, etc., but in a variant, at least one of these processes may be realized by hardware such as a logic circuit.
[0130] The technical elements described in this specification or drawings may exhibit technical utility either alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. Furthermore, the technologies illustrated in this specification or drawings may achieve multiple objectives simultaneously, and achieving one of those objectives alone is technically useful. The following items are elements of the claims as filed: (Item 1) 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server; a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device; The server a notification information sending unit that sends first notification information related to the first history information to the terminal device when the first history information is received from the communication device; The terminal device A display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display second notification information related to the second history information. (Item 2) The notification information transmission unit of the server When the first history information satisfying a predetermined notification condition is received from the communication device without receiving notified information from the terminal device, the first notification information is transmitted to the terminal device; when the first history information satisfying the predetermined notification condition is received from the communication device after the notified information is received from the terminal device, the first notification information is not transmitted to the terminal device; The second display control unit of the terminal device When the second history information satisfying the predetermined notification condition is received from the communication device without receiving the first notification information from the server, displaying the second notification information on the display unit; when the second history information that satisfies the predetermined notification condition is received from the communication device after the first notification information is displayed on the display unit, the second notification information is not displayed on the display unit; The terminal device further 2. The communication system according to item 1, further comprising a notified information transmitting unit that transmits the notified information to the server when the second notification information is displayed on the display unit. (Item 3) the terminal device includes a predetermined application program for displaying the second notification information on the display unit; The terminal device further 3. The communication system according to claim 1, further comprising: a history information receiving unit that receives the second history information from the communication device when the predetermined application program is running, and that does not receive the second history information when the predetermined application program is not running. (Item 4) The notification information transmission unit of the server transmitting the first notification information to the terminal device when the first history information is received from the communication device in a situation where a predetermined service for the communication device is being provided; 4. The communication system according to any one of claims 1 to 3, wherein even if the first history information is received from the communication device when the specified service for the communication device is not being provided, the first notification information is not sent to the terminal device. (Item 5) The communication system described in item 4, wherein the second display control unit of the terminal device displays the second notification information on the display unit when the second history information is received from the communication device, regardless of whether the specified service for the communication device is being provided. (Item 6) 6. The communication system according to any one of items 1 to 5, wherein each of the first history information and the second history information includes information about a consumable item attached to the communication device. (Item 7) 7. The communication system according to item 6, wherein each of the first notification information and the second notification information includes a message encouraging an order for the consumable item. (Item 8) the communication device is a printer that performs printing using color materials, the consumable item is a cartridge that contains the color material, the notification information transmission unit of the server transmits the first notification information to the terminal device when the first history information that satisfies a predetermined notification condition is received from the communication device; the second display control unit of the terminal device, when the second history information that satisfies the predetermined notification condition is received from the communication device, causes the second notification information to be displayed on the display unit; 8. The communication system according to item 6 or 7, wherein the predetermined notification condition is met when the remaining amount of the color material in the consumable is equal to or less than a threshold value. (Item 9) the terminal device includes a predetermined application program for displaying the second notification information on the display unit; the first display control unit of the terminal device, when receiving the first notification information from the server, causes the first notification information to be displayed on a screen displayed by a program different from the predetermined application program; 9. The communication system according to any one of items 1 to 8, wherein the second display control unit of the terminal device displays the second notification information on a screen displayed by the specified application program when the second history information is received from the communication device. (Item 10) Item 10. The communication system according to item 9, wherein the predetermined application program is further a program for displaying the first notification information on the display unit. (Item 11) A computer program for a server, comprising: The server computer, when first history information indicating a usage history of the communication device is received from the communication device, the notification information transmitting unit functions as a notification information transmitting unit that transmits first notification information related to the first history information to the terminal device; The notification information transmission unit When the first history information satisfying a predetermined notification condition is received from the communication device without receiving notified information from the terminal device, the first notification information is transmitted to the terminal device; when the first history information satisfying the predetermined notification condition is received from the communication device after the notified information is received from the terminal device, the first notification information is not transmitted to the terminal device; the notified information is second history information indicating a usage history of the communication device, and is information that is transmitted from the terminal device to the server when second notification information related to the second history information is displayed on the terminal device in response to the second history information satisfying the predetermined notification condition being transmitted from the communication device to the terminal device. (Item 12) An application program for a terminal device, the terminal device includes a display unit and a computer; When first notification information is received from the server, the terminal device causes the display unit to display the first notification information; the first notification information is first history information indicating a usage history of a communication device, and is information transmitted from the server to the terminal device in response to the first history information satisfying a predetermined notification condition being transmitted from the communication device to the server; The application program controls the computer to operate in the following manner: when second history information indicating a usage history of the communication device is received from the communication device, functioning as a second display control unit that causes second notification information related to the second history information to be displayed on the display unit; The second display control unit is When the second history information satisfying the predetermined notification condition is received from the communication device without receiving the first notification information from the server, displaying the second notification information on the display unit; a computer program product that, when the second history information that satisfies the predetermined notification condition is received from the communication device after the first notification information is displayed on the display unit, does not cause the second notification information to be displayed on the display unit. [Explanation of symbols]
[0131] 2: Communication system, 4: LAN, 6: Internet, 10: Terminal, 12: Operation unit, 14: Display unit, 16: Communication I / F, 30: Control unit, 32: CPU, 34: Memory, 36: OS program, 38: Application program, 40: Event table, 42: Status history table, 44: Notification history table, 100: Printer, 200: Server, 216: Communication I / F, 230: Control unit, 232: CPU, 234: Memory, 236: Program, 240: User table, 242: Printer table, 244: Event table, 246: Status history table, 248: Notification history table
Claims
1. 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server; a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device; The server a notification information sending unit that sends first notification information related to the first history information to the terminal device when the first history information is received from the communication device; The notification information transmission unit When the first history information satisfying a predetermined notification condition is received from the communication device without receiving notified information from the terminal device, the first notification information is transmitted to the terminal device; when the first history information satisfying the predetermined notification condition is received from the communication device after the notified information is received from the terminal device, the first notification information is not transmitted to the terminal device; The terminal device A display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display second notification information related to the second history information; Equipped with The second display control unit When the second history information satisfying the predetermined notification condition is received from the communication device without receiving the first notification information from the server, displaying the second notification information on the display unit; when the second history information that satisfies the predetermined notification condition is received from the communication device after the first notification information is displayed on the display unit, the second notification information is not displayed on the display unit; The terminal device further includes a notified information sending unit that sends the notified information to the server when the second notification information is displayed on the display unit.
2. 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server; a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device; The server a notification information sending unit that sends first notification information related to the first history information to the terminal device when the first history information is received from the communication device; The terminal device A display unit; a predetermined application program for displaying second notification information related to the second history information on the display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information; a history information receiving unit that receives the second history information from the communication device when the predetermined application program is running, and that does not receive the second history information when the predetermined application program is not running; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display the second notification information.
3. 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server; a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device; The server a notification information sending unit that, when the first history information is received from the communication device in a situation where a predetermined service for the communication device is being provided, sends first notification information related to the first history information to the terminal device, and does not send the first notification information to the terminal device even when the first history information is received from the communication device in a situation where the predetermined service for the communication device is not being provided; The terminal device A display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display second notification information related to the second history information.
4. 4. The communication system according to claim 3, wherein the second display control unit of the terminal device causes the second notification information to be displayed on the display unit when the second history information is received from the communication device, regardless of whether the specified service for the communication device is being provided.
5. 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmitting unit configured to transmit to the server first history information indicating a usage history of the communication device, the first history information including information on consumables attached to the communication device; a second history information sending unit configured to send second history information indicating a usage history of the communication device, the second history information including information on the consumables attached to the communication device, to the terminal device; The server a notification information sending unit that sends first notification information related to the first history information to the terminal device when the first history information is received from the communication device; The terminal device A display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display second notification information related to the second history information.
6. The communication system according to claim 5 , wherein each of the first notification information and the second notification information includes a message prompting the user to place an order for the consumable product.
7. the communication device is a printer that performs printing using color materials, the consumable item is a cartridge that contains the color material, the notification information transmission unit of the server transmits the first notification information to the terminal device when the first history information that satisfies a predetermined notification condition is received from the communication device; the second display control unit of the terminal device causes the second notification information to be displayed on the display unit when the second history information that satisfies the predetermined notification condition is received from the communication device; The communication system according to claim 5 , wherein the predetermined notification condition is satisfied when the remaining amount of the color material in the consumable is equal to or less than a threshold value.
8. 1. A communication system comprising: a communication device; A server; a terminal device, The communication device a first history information transmission unit that transmits first history information indicating a usage history of the communication device to the server; a second history information transmission unit that transmits second history information indicating a usage history of the communication device to the terminal device; The server a notification information sending unit that sends first notification information related to the first history information to the terminal device when the first history information is received from the communication device; The terminal device A display unit; a predetermined application program for displaying second notification information related to the second history information on the display unit; a first display control unit that, when the first notification information is received from the server, causes the display unit to display the first notification information on a screen that is displayed by a program different from the predetermined application program; a second display control unit that, when the second history information is received from the communication device, causes the display unit to display the second notification information on a screen displayed by the specified application program.
9. 9. The communication system according to claim 8, wherein the predetermined application program is further a program for displaying the first notification information on the display unit.
10. A computer program for a server, comprising: The server computer, when first history information indicating a usage history of the communication device is received from the communication device, the notification information transmitting unit functions as a notification information transmitting unit that transmits first notification information related to the first history information to the terminal device; The notification information transmission unit When the first history information satisfying a predetermined notification condition is received from the communication device without receiving notified information from the terminal device, the first notification information is transmitted to the terminal device; when the first history information satisfying the predetermined notification condition is received from the communication device after the notified information is received from the terminal device, the first notification information is not transmitted to the terminal device; the notified information is second history information indicating a usage history of the communication device, and is information that is transmitted from the terminal device to the server when second notification information related to the second history information is displayed on the terminal device in response to the second history information satisfying the specified notification condition being transmitted from the communication device to the terminal device.
11. An application program for a terminal device, the terminal device includes a display unit and a computer; When first notification information is received from the server, the terminal device displays the first notification information on the display unit; the first notification information is first history information indicating a usage history of a communication device, and is information transmitted from the server to the terminal device in response to the first history information satisfying a predetermined notification condition being transmitted from the communication device to the server; The application program controls the computer to operate as follows: when second history information indicating a usage history of the communication device is received from the communication device, functioning as a second display control unit that causes second notification information related to the second history information to be displayed on the display unit; The second display control unit When the second history information satisfying the predetermined notification condition is received from the communication device without receiving the first notification information from the server, displaying the second notification information on the display unit; a computer program product that, when the second history information that satisfies the predetermined notification condition is received from the communication device after the first notification information is displayed on the display unit, does not cause the second notification information to be displayed on the display unit.
Citation Information
Patent Citations
Method for outputting error message and server and client and recording medium
JP2001202223A
Control program and portable terminal
JP2017143367A
Information processing apparatus, program, printer, information processing system
JP2018146996A
Program
JP2021018621A