US 20080201448 A1
A monitoring system, method, and computer-program product tracks events and device states in a device and sends those events and states to a remote central service center using an Internet access module. The remote central service center monitors the received events and states for errors or warnings. The monitoring software (e.g., a dynamic link library) supports multiple data formats and multiple protocols to more effectively communicate the event and state information.
1. A method, comprising:
obtaining and storing information of an event in the motor vehicle, wherein the obtaining includes
monitoring the event as it occurs using sensors internal to the motor vehicle,
recording an identifier for the event,
determining a sequence of use for a plurality of subcomponents of the motor vehicle that triggered the event; and
transmitting the information of the event from the motor vehicle to a remote site, wherein the information of the event includes the sequence of use and the identifier.
2. A method according to
transmitting the information which includes event information relating to use of at least one of:
actuating an accelerator input device; and
shifting of a transmission.
3. A method according to
transmitting position information.
4. A method according to
transmitting the information of the event from the motor vehicle over the Internet.
5. A method according to
the transmitting is performed periodically.
6. A method according to
the transmitting is performed when an abnormal state is detected.
7. A method according to
the obtaining and transmitting operate using information from a motor vehicle from the group consisting of a train, an airplane, a motorcycle, and a boat.
8. A method according to
transmitting a start time corresponding to the event.
9. A method according to
10. A method according to
11. A method according to
transmitting using a wired connection.
12. A method according to
transmitting using a wireless connection.
13. A method according to
receiving the transmitted event information; and
storing the transmitted event information in a database.
14. A method according to
storing the transmitted event information in a relational database.
15. A method according to
16. A method according to
17. A motor vehicle, comprising:
a device configured to obtain and store information of an event in the motor vehicle which is an interaction between a user and the motor vehicle,
wherein the device is further configured to
monitor the event as it occurs with sensors internal to the motor vehicle,
record an identifier for the event,
determine a sequence of use for a plurality of subcomponents of the motor vehicle that triggered the event, and
a transmitter configured to transmit the information of the event from the motor vehicle to a remote site, wherein the information of the event includes the sequence of use and the identifier.
18. A motor vehicle according to
the device configured to obtain and store comprises obtaining and storing the information which includes the event information relating to the use of at least one of:
actuating an accelerator input device; and
shifting of the automobile.
19. A motor vehicle according to
20. A motor vehicle according to
21. A motor vehicle according to
the transmitter is configured to transmit the event information periodically.
22. A motor vehicle according to
the transmitter is configured to transmit the event information when an abnormal state is detected.
23. A motor vehicle according to
the motor vehicle is an automobile.
24. A motor vehicle according to
the motor vehicle is from the group consisting of a train, an airplane, a motorcycle, and a boat.
25. A motor vehicle according to
26. A motor vehicle according to
27. A motor vehicle according to
28. A motor vehicle according to
29. A motor vehicle according to
30. A system for use with the motor vehicle according to
a device configured to receive the transmitted event information; and
a device configured to store the transmitted event information in a database.
31. A system according to
a device configured to store the transmitted event information in a relational database.
32. A motor vehicle according to
33. A motor vehicle according to
The present continuation application claims the benefit of priority under 35 U.S.C. §120 to application Ser. No. 11/544,564, filed on Oct. 10, 2006, which is a continuation of U.S. patent application Ser. No. 09/575,710, filed Jul. 25, 2000, which are both incorporated herein by reference.
Moreover, the present application is related to the following U.S. applications and patents: Ser. No. 09/453,934, filed May 17, 2000; Ser. No. 09/453,935, filed May 17, 2000; Ser. No. 09/453,937, filed May 17, 2000; Ser. No. 09/440,692, filed Nov. 16, 1999; Ser. No. 09/440,646, filed Nov. 16, 1999; Ser. No. 09/440,645, filed Nov. 16, 1999; Ser. No. 09/393,677, filed Sep. 10, 1999; Ser. No. 09/311,148, filed May 13, 1999; Ser. No. 09/192,583, filed Nov. 17, 1998; Ser. No. 08/883,492, filed Jun. 26, 1997; Ser. No. 09/108,705, filed Jul. 1, 1998; Ser. No. 09/457,669, filed Dec. 9, 1999; Ser. No. 07/549,278, filed Jul. 6, 1990; Ser. No. 08/916,009, now abandoned; Ser. No. 07/902,462, now abandoned; U.S. Pat. Nos. 6,421,608; 6,988,141; 6,915,337; 6,785,711; 6,662,225; 6,631,247; 6,948,175; 6,581,092; 6,208,956; 6,801,331; 6,085,196; 6,279,015; 6,889,263; 6,970,952; 5,909,493; 5,887,216; 5,819,110; 5,818,603; 5,774,678; 5,649,120; 5,568,618; 5,544,289; 5,537,554; and 5,412,779. The contents of these applications and patents are incorporated herein by reference.
The present invention generally relates to a method and system that can monitor state and event information of a remote device and communicate the information over the Internet to a central information system. The central information system can analyze the state and event information to determine the condition of the remote device and/or whether the remote device needs preventative or reparative maintenance.
Maintenance and repairs for devices are expensive. Often the cost of preventative maintenance is less than that required for repairs or replacement of parts of a device. By identifying potential problems, repairs and their associated costs can be avoided. Some devices have sensors to determine their own states, some of which are locally communicated to the device user through a display (e.g., a low toner display of a copier). Such displays will indicate to the owner when action should be taken locally to correct any potential problems with the device.
Motor vehicle owners spend time and money to keep their motor vehicle in good condition. Worn out parts or low fluid levels if not repaired or replace quickly can damage other parts of the motor vehicle. Accidents or expensive repairs may result if repairs or replacement are not performed immediately (e.g., rotors need replacement if brake shoes are not replaced for a car). Motor vehicles have sensors to determine the state of the motor vehicle, some of which locally communicate their state to the owner through the gauges (e.g., temperature of radiator, voltage of the battery, oil pressure, and gas level in a car). Those gauges will locally indicate to the owner when action should be taken to correct any potential problems with the motor vehicle.
Internet communication is becoming increasingly popular. Examples of Internet communication include RFC 2298—An Extensible Message Format for Message Disposition Notifications and “Web on Wheels: Toward Internet Enabled Cars” by A. Jameel, M. Stuempfle, D. Jiang, and A. Fuchs, 1998 IEEE Vol. 31, No. 1: January 1998, pp. 69-76. The contents of both of those articles are incorporated herein by reference.
Not all conditions of a device (e.g., digital imaging device) can be displayed or corrected locally by the owner of the device. By monitoring the state of various parts of the device and communicating this information to a remotely located central information system, the condition of the device may be reported to the device dealer or service center who can take action to correct the problems that may exist. Thus, it is an object of the present invention to use a Wide Area Network (e.g., the Internet) to remotely monitor the states of remotely located devices. Examples of states are the measures of the amount of resources available or the environmental conditions. It may be helpful to know the states of a device so as to recognize possible conditions that can impair the performance of the device.
It is an independent object of the invention to monitor the events and states of a unit such as a car, motorcycle, recreation vehicle (RV), motorized boat, train, or airplane. The events are the interaction between the user and the unit. As an example, it may be desirable to monitor the user's use of the various electronic components of the unit (e.g., the power windows, cruise control, air conditioning, or power seats). Event information is helpful to the motor vehicle manufacturer to determine which features of a motor vehicle are desirable among its users.
The states are measures of the conditions (e.g., the fuel level, the oil pressure, or the temperature level of the radiator) of the unit. State information is helpful to the unit manufacturer to perform diagnostics to determine if service or maintenance is needed for the unit (e.g., motor vehicle). Further it may be desirable to monitor the state changes within the unit. Some state changes in a motor vehicle or other unit may be signs of potential problems. For example, the rapid rise in temperature of the radiator of a car possibly indicates that the radiator is overheating. By monitoring the state of various parts of the motor vehicle and communicating this information to a central information system, the condition of the motor vehicle may be reported to the motor vehicle dealer or service center who can take action to correct the problems that may exist.
A further object of the present invention is to provide a system for communicating data obtained by monitoring the device to a central information system allowing various data formats that ease the analysis of received data at the receiving side.
A further object of the present invention is to communicate the monitored event and state information periodically or when potential breakdown conditions occur in the device.
A further object of the present invention is to efficiently communicate the monitored information to a transmission unit.
A further object of the present invention is for the central information system to maintain a history of the data and to analyze the data and, if necessary, communicate the information to a device dealer or service center that can contact the device having the potential problem. The device dealer or service center can provide the services to repair the devices.
The present invention achieves these and other objects by monitoring the states and events of the device. The data obtained by monitoring the states and events of a device, as a further feature in the present invention, is collected, logged, and communicated to a central information system (e.g., using Internet e-mail or the File Transfer Protocol (FTP)). The use of e-mail communication reduces the costs associated with communicating such data. The data can be communicated to the central information system at several instances. Such instances include each time a user turns off the device, or after a predetermined number of times that a user has utilized and turned off the device, or after a predetermined time period, or when potential breakdown conditions exist in the device. If the configuration allows and if necessary, the direct connection such as FTP between the monitored application and the monitoring system can be established in addition to the e-mail communication.
A more complete appreciation of the present invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views.
In a similar manner in
In a first embodiment of a device connected to a network of computers and databases through the WAN 10, the WAN 10 includes a plurality of interconnected computers and routers designated by 12A-12I. The manner of communicating over a WAN is known through RFC documents available at HTTP://www.ietf.org/rfc.html. Transmission Control Protocol/Internet Protocol (TCP/IP) related communication is described in several references, including (1) TCP/IP Illustrated, Vol. 1, The Protocols, by Stevens, from Addison-Wesley Publishing Company, 1994, ISBN: 0201633469, (2) Internetworking with TCP/IP by Corner and Stevens, 4th edition, Vol. 1 (Apr. 15, 2000), Prentice Hall; ISBN: 0130183806, (3) Internetworking with TCP/IP, Vol. II, ANSI C Version: Design, Implementation, and Internals, by Corner and Stevens, 3 edition (Jun. 10, 1998) Prentice Hall; ISBN: 0139738436, and (4) Internetworking with TCP/IP, Vol. III, Client-Server Programming and Applications-Windows Sockets Version, by Corner and Stevens, 1 edition (Apr. 28, 1997) Prentice Hall; ISBN: 0138487146. The contents of all four books are incorporated herein by reference in their entirety.
The network 52 is a conventional network and includes a plurality of workstations 56A-56D. Such workstations may either be in a single department or multiple departments. In addition to the workstations connected via the network 52, there is a workstation 42 that is not directly connected to the network 52. Information in a database stored in a disk 46 may be shared using proper encryption and protocols over the WAN 10 to the workstations connected directly to the network 52. Also, the workstation 42 includes a direct connection to a telephone line and/or Integrated Services Digital Network (ISDN) and/or cable and/or wireless network 44, and the database in disk 46 may be accessed through the telephone line, ISDN, cable or wirelessly. The cable used by this invention may be implemented using a cable which typically is used to carry television programming, a cable which provides for high speed communication of digital data typically used with computers or the like, or any other desired type of cable. The workstations 42 and 56A-56D that are connected to the WAN provide a secure connection to the device 20. This allows the device 20 to properly communicate state and event information to any of the workstations 42 and 56A-56D. Devices 58A-58D are data storage devices.
The network 52 can be part of the Central Service Center 26 of
Event and state information of Device 20C may be stored in one or more of the databases stored in the disks 46, 54, and 58A-58D. Known databases include (1) SQL databases by Microsoft, Oracle and Sybase, (2) other relational databases, and (3) non-relational databases (including object oriented databases). Each of the different departments (e.g. marketing, manufacturing, design engineering and customer service departments) within a single company may have their own database or may share one or more databases. As an example, disk 58A contains the marketing database, disk 58B contains the manufacturing database, disk 58C contains the design engineering database, and disk 58D contains the customer service database. Alternatively, the disks 54 and 46 store one or more of the databases. Each of the disks used to store databases is a non-volatile memory such as a hard disk or optical disk. Alternatively, the databases may be stored in any storage device including solid state and/or semiconductor memory devices.
A feature of the present invention is the use of a “store-and-forward” mode of communication (e.g., Internet e-mail) or transmission between the device 20 and a workstation for monitoring the state and event information. The “store-and-forward” process avoids the device 20 from having to wait until a direct connection is established with the recipient. Because of network delays, the communication could take a substantial amount of time during which the application would be unresponsive. Such unresponsiveness can be unacceptable to the recipient. By using e-mail as the store-and-forward process, retransmission attempts after failures occur automatically for a fixed period of time. Alternatively, the message that is transmitted may be implemented using a mode of communication that makes direct, end-to-end connections.
An alternate type of sub-system includes the use of an Internet Service Provider (ISP) 118 that may be any type of ISP, including known commercial companies such as for example America Online, Mindspring, and Niftyserve. In this sub-system, a computer 120A is connected to the ISP 118 through a modem (e.g., an analog telephone line modem, a cable modem, an ISDN-based modem, an Asymmetric Digital Subscriber Line (ASDL)-based modem, a frame relay adapter, a wireless (e.g., radio frequency) modem, an optical modem, or a device that uses infrared light waves). The computer 120A may receive state and event information communicated to it by a device 20D.
Also illustrated in
Another sub-system illustrated in
The third exemplary embodiment illustrated in
Further, as shown in
At power-on time, System Control Process 212 not only brings up the Device 20, but also establishes communication with attached devices by first checking the physical connections and then establishing communication with the attached devices. Then Device 20 remains idle until a user interacts with Device 20. When the user interacts with Device 20, the System Control Process 212 interprets the function in which the user wants to perform. The System Control Process 212 informs the Tasks/Events Processes 210 to perform the various tasks to complete the function. The Monitoring Process 216 logs the interaction of a user along with the state of Device 20.
The Central Service Center 26 in
The Analysis Process 226 informs the System Control Process 232 if the analysis of the Database 228 for Device 20 identifies a potential problem or an abnormal condition. Then the Historical Process 230 provides service information to the System Control Process 232 about which Service Depot/Dealer has provided service and maintenance to Device 20. System Control Process 232 sends data to Communication Process 224 to communicate the maintenance or repair request of Device 20 to the Service Depot/Dealer 30 through the Internet 10.
Device 20 has a Sensor Unit 258 that senses the mechanical states of Device 20 that must be stored as dynamic data, such as paper tray, voltage and paper path of a copier. Device 20 has Permanent Memory 264 that stores static state data as permanent memory, such as ROM. Device 20 has Semi-Permanent Memory 266 that stores semi-static state data as changeable memory which does not require power such as EEPROM, or which uses low power and can be supported by a battery. Finally, Device 20 has Dynamic Memory 268 that stores dynamic state data as changeable memory, which does not require power or which uses low power and can be supported by a battery such as CMOS RAM.
The Central Service Center 26 has a Disk Unit 274 that holds the database. The database will contain state and event information of Device 20 and other devices monitored by the Central Service Center 26.
The Monitoring System 152 contains information about the desired party to which the information is communicated. In one embodiment, this information is set up in the device 20 prior to beginning monitoring. This setup allows the device 20 to communicate the information to any desired party or recipient. Alternatively, the desired party can be identified after monitoring has begun.
The initialize function receives a string parameter for the Application ID. The System manager 602 calls this function when startMonitoring is called by the control application 450. The function sets the Application ID, takes care of the Cumulative number of uses, reads the clock to store the start time in order to compute the elapse time and duration, and sets up the user information by examining the registry.
After initialization, the storeEvent( ) function can be called with a string parameter for the Event passed by recordEvent. The EventLogger 604 stores the event string and the elapsed time from the start time (recorded during the initialize( ) function call).
After the application 450 has completed its usage monitoring, it calls the stopMonitoring function so that the duration can be computed. If multiple sessions are stored, this function stops the recording of a corresponding session.
The EventLogger 604 also provides access to a getEventData function. If the stopMonitoring was not previously called (i.e., the current session's duration field is undefined), the monitoring is stopped by calling the stopMonitoring function. The stopMonitoring function computes the duration of the current session. The getEventData function returns an abstract class with the access functions shown in
The Format And Protocol Information Base System 606 (implemented as any one or a combination of package, DLL, static library, etc.) stores the format and protocol information and checks the combination of formats and protocols to determine the valid combinations. To facilitate the storage process, the storeFormatAndProtocol function accepts two parameters (i.e., one for format and one for protocol). The function checks to ensure that the parameters are a valid combination.
The component 606 also includes a getFormatAndProtocolVector function returns a format and associated vector of protocols. In one embodiment, the function performs error checking. For example, if a protocol allows only one format to be sent, then the format should be the last format in the function call of selectFormatProtocol. The return value is a boolean value where true indicates that valid parameters were returned and false indicates that no more data is available. The return parameters are int and vector of int. The first int refers to the format while the vector of int refers to the vector of protocols for the format. When there is no selectFormatProtocol function call, the getFormatAndProtocolVector returns the default setting. Also would be evident, other collections (e.g., a list template) may be used in place of a vector.
The Data Format Processor 608 is responsible for formatting event data into a specified format. One exemplary function is the formatEventData function that receives a pointer to the abstract class EventData. The return value is a pointer to the abstract class FormattedEventData. Generally, interface to the FormattedEventData abstract class is defined as in
The Protocol Processor 610 is responsible for communicating the formatted event data through the specified protocol. In one embodiment, the processor 610 also encrypts the data before it is sent. To output the data, the processFormattedData function is called with an input pointer to the abstract class FormattedEventData. The function returns a boolean value where “true” represents no errors, and “false” represents the existence of an error while sending the formatted data.
The System 612 supplies important information and persistent information across the execution of the DLL. Some of the important information is timer information through the library call. The registry to keep the necessary information is another important component of the System 612. Many registry entries are set up at installation time. An exemplary structure for the registry is:
Where XXX represents the Application ID, the following variables are placed in the registry under XXX tree: CumulativeUsage, UserID, SMTP Server, Recipients, From, FTP Server, FTP User, FTP Password, FTP Target Path etc. In one embodiment, CummulativeUsage is an integer, and the rest of the variables are strings.
When the car turns off or periodically, the Monitoring System will communicate the event and state information to the manufacturer of the car. The manufacture of the car can be considered the Central Service Center of this system. The Monitoring System will obtain wireless access to the Internet to communicate the information. The information is communicated to the manufacturer of the car through the Internet. The state and event information will be delivered to the workstation of the manufacturer. The information will be placed in the disk where historical information about the states and events of the car is stored.
The manufacturer will analyze the data it receives about the car. If the manufacturer discovers potential problems with the car, then the manufacturer will communicate the problem to the dealer who sold the car through the Internet. The car dealer is considered the Service Depot/Dealer of the system. The information about the problem with the car is delivered to the workstation of the dealer. The dealer can query information about the car from the workstation of the manufacturer through the Internet to obtain its service history. The dealer will then contact the owner of the car to correct the problem with the car.
The aforesaid methods and steps for remote monitoring are contained according to this invention on a computer program product. The computer program product is a storage medium including instructions which can be used to program or control a computer or a plurality of networked computers to perform a process of the invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
The various computers utilized by the present invention, including the computers 42 and 56A-56D of
There is a ROM 1012 and a flash memory 1014, although any other type of non-volatile memory (e.g., EPROM, or an EEPROM) may be utilized in addition to or in place of the flash memory 1014. An input controller 1016 has connected thereto a keyboard 1018 and a mouse 1020. There are serial and parallel interfaces (not shown) connected to serial and parallel devices (not shown). There is an IEEE 1394 device, commonly referred to as a fire wall device 1032, connected to an IEEE 1394 interface (not shown). The various elements of the computer 1002 are connected by a system bus 1038. A disk controller 1040 is connected to a floppy disk drive 1042 and a hard disk drive 1044. A communication controller 1046 allows the computer 1002 to communicate with other computers (e.g., by sending e-mail messages) over a telephone line 1048 or a network 1049. An I/O (Input/Output) controller 1050 is connected to a printer 1052 and a hard disk 1054, for example using a SCSI (Small Computer System Interface) bus. There is also a display controller 1056 connected to a CRT (Cathode Ray Tube) 1058, although any other type of display may be used including a liquid crystal display 1068, a light emitting diode display, a plasma display, etc.
Numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.