Abstract:
An apparatus for troubleshooting a computer system of a vehicle is disclosed. In one embodiment, an apparatus for accumulating information pertaining to a computer for use in diagnostic evaluation comprises: a computer having an operating system controlling at least one process; a memory coupled to the computer, the memory containing stored program instructions executable by the computer, the instructions comprising: monitoring the at least one process; and obtaining software diagnostic data regarding the at least one process; and a wireless device coupled to the memory and configured to connect to an network, and configured to transmit the software diagnostic data over the network.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims benefit and is a divisional of pending U.S. application Ser. No. 11/772,573 entitled “APPARATUS AND METHOD FOR TROUBLESHOOTING A COMPUTER SYSTEM,” filed Jul. 2, 2007, which is incorporated herein by reference. 
    
    
     BACKGROUND 
     Hardware and software diagnostic data is extremely valuable information when troubleshooting a computer system. Often times, however, a technician is not present while the problem is occurring and thus, does not have the diagnostic data. In this situation, troubleshooting is accomplished through logical guesswork by relying on question and answer sessions with system users. If possible, a technician will often try to recreate the problem in order to observe the system and obtain diagnostic data. In some situations, however, these methods make troubleshooting difficult, if not impossible. 
     As an improved way to troubleshoot computers, systems and methods for using removable storage for computer troubleshooting were developed and are disclosed in U.S. Pat. No. 7,010,651 (referred to herein as the &#39;651 patent), assigned to Honeywell, which is hereby incorporated herein by reference. Systems such as those disclosed in the &#39;651 patent, allow for access to, and remote troubleshooting of computer hardware and software. These systems store data for diagnostic purposes as the system is operating. Additionally, the stored data is on a removable device and thus can be analyzed at a location remote to the computer. These systems, however, require physically accessing the computer and removing the memory. 
     For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for easier access to diagnostic data relating to computer hardware and software. 
     SUMMARY 
     The above-mentioned problems of current systems are addressed by embodiments of the present invention and will be understood by reading and studying the following specification. The following summary is made by way of example and not by way of limitation. It is merely provided to aid the reader in understanding some of the aspects of the invention. In one embodiment, an apparatus for accumulating information pertaining to a computer for use in diagnostic evaluation comprises: a computer having an operating system controlling at least one process; a memory coupled to the computer, the memory containing stored program instructions executable by the computer, the instructions comprising: monitoring the at least one process; and obtaining software diagnostic data regarding the at least one process; and a wireless device coupled to the memory and configured to connect to an network, and configured to transmit the software diagnostic data over the network. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention can be more easily understood, and further advantages and uses thereof are more readily apparent, when considered in view of the detailed description and the following figures in which: 
         FIG. 1  is a block diagram of one embodiment of system having an apparatus for troubleshooting a computer system; 
         FIG. 2  is a block diagram of one embodiment of the apparatus for troubleshooting a computer system of  FIG. 1 ; and 
         FIG. 3  is a flow chart of one embodiment of a method of troubleshooting a computer system. 
     
    
    
     In accordance with common practice, the various described features are not drawn to scale but are drawn to emphasize specific features relevant to the present invention. Like reference characters denote like elements throughout the Figures and text. 
     DETAILED DESCRIPTION 
     In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific illustrative embodiments in which the method and system may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical and electrical changes may be made without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense. 
     Embodiments of the present invention provide for an apparatus for troubleshooting a computer system. The apparatus monitors the computer system to obtain diagnostic data. The apparatus includes a wireless device for wireless transmission of the diagnostic data from the apparatus to a remote computer for analyzing. 
     Referring to  FIG. 1 , one embodiment of a vehicle  100  having a diagnostic system  102  that accumulates information for diagnostic evaluation of computers within vehicle  100  is illustrated. Diagnostic system  102  accumulates diagnostic data pertaining to the operating parameters, operating history, and status of computers that are used to operate vehicle  100 . In one embodiment, diagnostic data is software code obtained when a source code trace is used to debug software for a controller. Software, as used herein, refers to computer software, firmware, or any other code for operating on a processor, microprocessor, or the like. For example, while vehicle  100  is in operation, system  102  is monitoring a controller for controlling the automatic pilot for vehicle  100 . Data obtained while monitoring the controller is stored by system  102  for use in troubleshooting any errors that may have occurred while the automatic pilot was in operation. When vehicle  100  is within wireless transmission range of a terminal gate  104 , the data obtained is transmitted to an access point  106  on gate  104 . The access point  106  is connected to a network such that the data can be transported over the network. Although in  FIG. 1  vehicle  100  is illustrated as an aircraft, the present invention is not intended to be so limited and can include other vehicles, such as automobiles, buses, semis, water vessels, trains, and the like. 
     Referring now to  FIG. 2 , one embodiment of an apparatus  200  including diagnostic system  102  is illustrated.  FIG. 2  illustrates a block diagram of functional components that operate within Apparatus  200 . Apparatus  200  includes an operating system  202  which includes a controller  203  to control multiple software process (tasks)  204 ,  205 ,  206 . Processes  204 - 206  control aspects of the operation of vehicle  100 . Apparatus  200  also includes diagnostic system  102 . Diagnostic system  102  includes a memory device  208 , a wireless communication device  210 , and diagnostic software  212 . Both controller  203  and diagnostic software  212  are run by operating system  202 . Thus, in this embodiment, operating system  202  controls both the processes  204 - 206  which operate vehicle  100  as well as diagnostic system  102  which monitors processes  204 - 206 . As an example, system  102  may include a memory having stored program instructions which are executable by operating system  202 . In an alternative embodiment, diagnostic system  102  is a stand-alone unit and is separate from operating system  202 . 
     As vehicle  100  is operated, processes  204 - 206  operate controlling their respective aspects of vehicle  100 . While processes  204 - 206  are operating, diagnostic system  102  monitors processes  204 - 206  and obtains data regarding the operation of those process  204 - 206 . As the data is obtained, diagnostic system  102  stores the data onto memory device  208 . The data is stored so that it is available for use later to troubleshoot problems with processes  204 - 206 . For example, in one embodiment, process  204  operates the automatic pilot for vehicle  100 . When an operator of vehicle  100  initiates the automatic pilot, operating system  202  starts process  204  and also begins recording data regarding process  204 . If the automatic pilot fails during operation, a technician can obtain the data stored regarding process  204  and review the data to diagnose any problems with process  204 . In one embodiment, memory device  208  is a removable memory device, which allows a technician to remove the memory and analyze the data. In an alternative embodiment, memory device  208  is an internal permanently mounted memory device. 
     Since many vehicles are operated without a technician nearby, storing data for the technician to review is important in order to reduce the time and difficulty in troubleshooting the system. In currently available systems, therefore, when a vehicle is brought to an area in which the technician can diagnose the problem, the technician physically access the system in order to diagnose the problem. Further, in many situations the technician must analyze the data in a location that is remote to the location of the vehicle. Thus, the data must be accessed at the vehicle and physically transported to the location where the analyzing will take place. This increases the time required to diagnose the problem. Any time spent diagnosing the problem is downtime in which the vehicle cannot be used. Reducing down time for a vehicle improves productivity and is important, especially if the vehicle is a commercial vehicle. 
     To reduce the time and difficulty in diagnosing these systems, in diagnostic system  102 , the data is wirelessly accessible from diagnostic system  102 . Wireless accessibility is provided by wireless communication device  210 . In one embodiment, wireless communication device  210  is a PCMCIA wireless LAN card. Here, wireless communication device  210  is an inexpensive off-the-shelf component, which enables easy installation, replacement, and configuration. In an alternative embodiment, wireless communication device  210  is a permanently mounted wireless device. In a preferred embodiment, wireless device  210  is an IP based device which connects and transmits data over a LAN connection. Advantageously, an IP based device allows diagnostic system  102  to easily connect to existing networks and to easily transmit data to a networked computer for analyzing by the technician. Due to the common occurrence and easy set up of IP based networks, an IP based wireless device reduces the difficulty in implementing wireless access to diagnostic system  102 . In one embodiment, wireless device  210  communicates using the 802.11 protocol. In particular, one embodiment of wireless device  210  communicates using the 802.11g protocol. In an alternative embodiment, wireless device  210  connects to a proprietary network using a proprietary protocol. In another alternative embodiment, wireless device  210  is on the same module as memory  208 . 
     Once the data has been obtained, wireless device  210  transmits the data to another wireless device. In one embodiment, the other wireless device is a wireless access point which is connected to a network. In this embodiment, the data is transported through the network to a computer where a technician can analyze the data. In another embodiment, wireless device  210  transmits the data directly to a laptop where a technician can analyze the data. 
     In one embodiment, the data is transmitted automatically once wireless device  210  comes within range of wireless device for reception of the data. In another embodiment, the data is transmitted only if a significant event has occurred which requires review by the technician. In yet another embodiment, the data is transmitted on command after wireless device  210  is instructed to transmit the data. 
     In one embodiment, wireless communication occurs in both directions for diagnostic system  102 . Here, wireless device  210  transmits to and receives signals from another computer. The signal transmissions from diagnostic system  102  are primarily for data uploading as described above. The signal reception in to diagnostic system  102 , however, allows a technician to control diagnostic system  102  remotely. Often to obtain the data regarding the operation of processes  204 - 206 , a technician runs a test procedure on diagnostic system  102  that obtains the data and records the data onto memory device  208 . There are multiple options of tests to run based on the process to be analyzed and/or the type of data desired. Thus, having bidirectional communication with diagnostic system  102  enables the technician to run tests and obtain the data at a remote computer without having to be physically present at vehicle  100 . 
     In one embodiment, a technician remotely configures a test to run on apparatus  200  by sending signals from a computer over a network which are received at wireless device  210 . For example, when wireless device  210  is within range of access point  106 , a technician sends a command from a computer connected via a network to access point  106 . The command is destined for wireless device  210  and access point  106  forwards the command to wireless device  210 . Wireless device  210  receives the command and sends the command to operating system  212 . The command instructs operating system  202  to adjust a setting for controller  203 . The technician then remotely initiates a test by sending a command to initiate a certain test from the technician computer over the network to diagnostic software  212 . Diagnostic system  102 , the initiates that test when the command is received. Data obtained from the test is transmitted by wireless device  210  over the network and to the technician computer. 
     In conventional systems, when a technician runs a test while at the apparatus being tested, the data retrieved by the test is displayed on screen. Generally, the apparatus being tested is not designed with a screen. Any screen and display protocol attached to the apparatus, therefore, has limited functionality. For example, in many diagnostic systems, the output data is simply displayed on the screen in real-time and once the screen is filled with data, the oldest data is scrolled off the screen to make room for new data. Once the information is scrolled off of the screen, the information is gone. 
     In one embodiment, therefore, diagnostic data is streamed from diagnostic system  102  to a technician computer. Here, when a technician runs a test, the diagnostic data is obtained and is output to wireless device  208  in real-time, or near real-time. In one embodiment, a block of data (e.g. 100 Kb) is used to buffer intense bursts of data for streaming. Wireless device  210 , then streams the diagnostic data over a network and to a technician PC, wherein the data can be stored and analyzed. Then, the technician PC can be configured to display the data or a subset of the data as desired for the particular application. In one embodiment, the technician PC is configured to analyze the data for specific data and take action if the specific data is found. For example, the PC could display the data and surrounding details, or set off a system alarm. In one embodiment, when bidirectional communication is used, while the data is being obtained at the technician PC, the technician can pause the test and scroll through the data forward and backward. After scanning the data, the technician can resume the test. 
       FIG. 3  illustrates a flowchart of one embodiment of a method  300  for troubleshooting a computer system of a computer. Method  300  begins by monitoring a process that is operating on a computer ( 302 ). Diagnostic data is then obtained regarding the process being monitored ( 304 ). Once obtained, the diagnostic data is transmitted to a remote computer over an IP network ( 306 ). 
     To further understand the context of method  300  and diagnostic system  102 , here is one example in which vehicle  100  is an aircraft. As the aircraft is flying, operating system  202  monitors and records data from process  204  which is operating on aircraft. The data is stored in memory device  208 . When the aircraft lands at an airport, the aircraft taxis to a gate for offloading of passengers and fuel/maintenance check. The gate is equipped with a wireless access point. In one embodiment, when wireless device  210  comes within range of the wireless access point at the gate, diagnostic system  102  automatically uploads the data stored on memory device  208  to a technician computer. In this example, the technician computer is located in a maintenance bay at the airport and is networked to a LAN which the wireless access point is also networked. Thus, when wireless device  210  comes within range of the wireless access point, diagnostic system  102  connects with the technician computer over the LAN and the data is uploaded. In an alternative embodiment, the data is retrieved manually by the technician computer initiating connection with diagnostic system  102  at some point in time when wireless device  210  is within range of the wireless access point. 
     Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement, which is calculated to achieve the same purpose, may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.