POSITION SENSITIVE DISPLAY CONTROLLER

Abstract: A controller prevents implementation of certain computer functions based on the orientation of the display. For example, in in-car personal computer applications, when the display is visible by the operator of the motor vehicle, based on information from a display position sensor, the computer system is prevented from implementing certain functions, such as television functions. However, if a vehicle motion sensor indicates that the vehicle is, in fact, not moving, the operator may be allowed to view prohibited applications such as television.

Description: POSITION SENSITIVE DISPLAY CONTROLLER Background This invention relates generally to computer displays and in some particular embodiments to computer displays utilized in in-car personal computer systems. A safety issue may arise with respect to the displays used in connection with in-car personal computer systems. These computer systems may be responsible for providing conventional computer applications as well as vehicle specific applications. For example, in- car personal computer systems may provide navigation assistance and may control vehicle entertainment systems. It may be inappropriate for drivers to use certain computer capabilities while they are also attempting to drive the car. For example, safety issues arise with respect to drivers of automobiles that are watching television. Thus, some in-car personal computer systems include a "lock out" capability which prevents the computer from operating in certain modes when the vehicle is being driven. These systems may sense parking brake state, vehicle movement or vehicle speed. Generally these lock out systems block the use of a computer system when the vehicle is actually moving. This lock out operation could be a considerable disadvantage to in-car personal computer users because some functions, such as navigation functions, would be very useful to the driver while the driver continues to operate the vehicle. And while it may be inappropriate for the driver to watch television, the passengers should be free to do so. Otherwise, the television capability would be of relatively limited value. One approach in circumventing this difficulty is to provide two separate displays. One display, visible by the driver, is disabled from displaying television information or other prohibited information when the vehicle is being operated. The other display, visible only to the passengers, may display any of the conventional in-car personal computer information such as navigation information, traffic information, internet access and multimedia functions, including digital video disk entertainment. Providing two separate displays adversely affects the cost of an in-car personal computer system. In addition, because of the limited space available, the provision of two separate displays may be impractical in some cases. 2 Thus, there is a continuing need for a system which allows multiple viewers to be selectively provided with access to appropriate information. Particularly in connection with an in-car computer system, it would be desirable to have a system which utilizes a single display but controls the information which the driver is exposed to in the course of operating the motor vehicle. Summary In accordance with one aspect, a computer system may include a display and a display position sensor. A controller is coupled to the display and the position sensor to control the display. Brief Description of the Drawing Fig. 1 is a schematic depiction of a display of an in-car personal computer system in front of the vehicle front seats; Fig. 2 is corresponds to Fig. 1 with the exception that the display has been turned so that it is only visible by a passenger; Fig. 3 is a block diagram depiction of a hardware system for implementing an embodiment of the present invention; Fig. 4 is a flow diagram showing a monitoring function for determining what computer functions should be permitted under given circumstances; and Fig. 5 is a flow diagram showing a program for hooking open file routines and passing control to a monitoring function. Detailed Description Referring to Fig. 1 , a display 10 of a computer system is illustrated in front of a driver's seat 12 and a passenger's seat 14 of a motor vehicle. The display 10 may be a monitor or a liquid crystal display (LCD). Such systems may provide conventional computer functionalities together with navigation, safety and car entertainment functionalities. Such computer systems may provide navigation assistance using global positioning system information, for example. In the position shown in Fig. 1, the display 10 is visible both to the driver and the passenger. In this orientation, it may be undesirable to allow the user to implement various 3 functions possible with the computer system. For example, it may be undesirable to allow the driver of the vehicle to attempt to drive the vehicle and simultaneously watch television or play computer games. However, with the display 10 turned, as indicated in Fig. 2, it may be appropriate to allow any given function to be implemented by the computer system. This is because the display 10 is turned sufficiently so that only the passenger can view the display and not the driver. Referring now to Fig. 3, a typical computer system 11, such as one which may implement an in-car personal computer system, is shown. A controller 20 which may be a computer implemented by a microprocessor, is coupled to the display 10. The display 10 is mounted on an arm 15 which is coupled to a position sensor 16. The position sensor detects the orientation of the display. Namely, it determines whether the display 10 is positioned, as shown in Fig. 1 or as shown in Fig. 2. It may do this using a variety of conventional position sensors including angular position sensors, magnetic position sensors, appropriately positioned contacts and the like. The position sensor 16 indicates whether the display 10 is adequately turned away from the driver to allow full functions to be implemented by the controller 20. The position sensor 16 provides this position information to the controller 20. The controller 20 may also receive vehicle sensor information from the vehicle sensor 18. This information may include whether or not the vehicle is being operated, whether the parking brake is in operation or other information indicative of whether or not the vehicle is actually being driven. The controller 20 may also implement a variety of functions conventionally provided by in-car personal computer systems. For example, the controller 20 may implement a navigator 19 which may be coupled to a global positioning system to provide navigation mapping information as well as vehicle position information on the display 10. The controller 20 may also control various audio information indicated at 21 such as the vehicular stereo system and the like. Similarly, the controller 20 may control a DVD player 23 or a TV tuner 27. Also the controller 20 may be coupled to an RJF link 25 which may in turn be coupled to a modem to allow internet access. The controller 20 is also coupled to the memory 22 which may be in the form of an applications cache providing information about what applications are suitable for various orientations of the display 10. 4 Turning now to Fig. 4, the implementation of a monitoring function includes a first check (at diamond 24) to determine the orientation of the display 10. If the display 10 is oriented only towards the passenger, as indicated in Fig. 2, a "pass" indication is provided (as indicated at 26) which allows the application to be run and displayed. However, if the display is viewable by the driver, a check (diamond 28) of the applications cache 22 is implemented. Namely, the requested computer application is compared to an approved list of applications which should be available to the user under given circumstances. If the requested application is an allowed application, as indicated in diamond 30, a "pass" indication is provided, as indicated at 26 and otherwise a fail indication is indicated at 32. Additional processing is also possible to analyze the vehicle sensor information 18. Namely, a "pass" indication may be provided even though the display 10 is viewable by the driver, positioned in the seat 12, as long as the vehicle sensor 18 indicates that the vehicle is not being driven. Fig. 5 shows the flow for an interceptor function which intercepts open file calls and allows the controller 20 to make a determination as to whether or not it would be appropriate to allow a given application program to be run, given the orientation of the display 10. One suitable technique for intercepting open file functions is disclosed in U.S. Patent No. 5,257,381 assigned to Intel Corporation. As indicated at block 34, the first few instructions of the open file function are copied. The instructions may be copied at the assembly language level, rather than a higher language level, to optimize performance. In one implementation, the addresses of the open file function may be found using the dynamic linker of the operating system. After locating the open file function, the first few assembly language instructions may be examined using a debugger. Also a break point may be set at the location of the open file function. The operating system may then be allowed to execute until the open file function is called. At that point, a first parameter on the stack contains the return address of the calling function. The examination of the return code reveals a stack clean up instruction. Examination of the clean up instruction yields a number of parameters placed in the stack by the calling function. Some operating systems may deviate; however, a number of parameters are known by the interceptor function to guarantee that the open file function executes properly when it is recalled by the interceptor function. At block 36, the first bytes of assembly level instructions of the open file function may be overwritten with an instruction to jump to the interceptor function. The number of 5 instructions that must be overwritten determines the number of instructions that are copied in step 34. Steps 34 and 36 may be accomplished using a single assembly level program, which is called a remapping function. Whenever a calling function calls the open file function, a jump to the interceptor function occurs. This is shown in block 38. At block 40, the interceptor function determines the location of the file within the operating system and uses that information to create a pathname. The location of the file can be determined from information pushed onto the stack by the calling function. That information may be translated into a form useful to the monitoring function. At block 42, the monitoring function is called so it may perform its analysis. The monitoring function, shown in Fig. 4, determines whether or not a given application program is appropriate given the orientation of the display 10. The interceptor function expects an indication of the results of the monitoring function. Thus, in one embodiment, the monitoring function may store a flag in a general register of the controller 20, and the interceptor function examines the contents of that general register, as indicated in diamond 44. If the monitoring function fails, the interceptor function branches to block 46. There the interceptor function indicates to the calling function that the open file function should be rejected. Note that the open file function is never called and is never allowed to execute. Having completed its task, the interceptor function is complete. On the other hand, if the monitoring function was successful, the interceptor function branches to step 48. There the interceptor function prepares to return to the open file function by executing those instructions copied at step 34. After completing the execution at block 48, the interceptor function jumps to the open file function at a point after the instruction to jump to the interceptor file. This is shown at block 50. Thus, the interceptor function is complete. Those skilled in the art will appreciate a number of variations on this technique involving hooking an open file function and inserting the desired monitoring function. The programs may be stored on any conventional computer readable medium such as a hard disk, floppy disk, compact disk (CD), or a semiconductor memory. With the embodiments illustrated herein, it is possible to control which application programs are executed based on the display position sensor information. This may be 6 advantageous since it allows access to different programs depending on display orientation. For example, in in-car personal computer systems, some applications may be prevented when the display is visible by the driver. In other applications, such as situations where a single computer display is shared by different users, different users can be provided access to different functionalities based on whether the display is directed towards one user or another. While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of the present invention. What is claimed is:

Claims: 7 1. A computer system comprising: a display; a display position sensor; and a controller coupled to the display and the position sensor to selectively authorize an application program. 2. The system of claim 1 wherein the display is adapted to be mountable within a motor vehicle. 3. The system of claim 2 wherein said controller includes a database which contains information about different application programs executable by said computer system, and information about whether a given application is suitable for viewing by the operator of a motor vehicle. 4. The system of claim 3 wherein the controller is adapted to allow certain computer functions to be implemented when the display is visible by the operator of a motor vehicle and not to allow other computer functions. 5. The system of claim 2 including a vehicle sensor that provides information about whether or not the vehicle is moving. 6. The system of claim 1 wherein said position sensor is an angular position sensor. 7. The system of claim 4 including a television capability. 8. The system of claim 7 including a vehicle navigator. 9. The system of claim 1 wherein said controller prevents the execution of application programs which would be inappropriate for viewing with a given display orientation. 8 10. A method for operating a computer having a display comprising: determining the orientation of a computer display; and controlling access to an application based on the orientation of the display. 11. The method of claim 10 including sensing the angular orientation of the display. 12. The method of claim 10 including preventing the driver of a motor vehicle from viewing television programs. 13. The method of claim 12 including sensing whether or not the vehicle is moving. 14. The method of claim 13 including allowing the display to display information when the display is not visible to the operator of a motor vehicle. 15. The method of claim 14 including hooking an open file function when the display is oriented to allow the operator to view the display. 16. The method of claim 15 including allowing the user to view the display when the vehicle is not moving. 17. The method of claim 15 including comparing a requested application to information about permitted applications for the vehicle operator.

Inventors: ALTNETHER JOSEPH, ALTNETHER, JOSEPH
Applicants: INTEL CORP, INTEL CORPORATION
Application year: 1999
Main classification: G01C21
IPC codes: B60R11, G01C21, G09G5, H04N5