The present disclosure relates generally to the field of information handling systems, and, more specifically, to reducing the receipt of multiple signals in portable information handling systems.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is an information handling system (IHS). An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for such systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems (IHSs), herein referred to as portable IHSs, may be provided in a portable housing which allows the IHS to be easily transported. For instance, portable IHSs may include laptops, portable disk players, handheld devices, or the like. A portable IHS may include a sensor that detects when the lid or cover is in an open or closed position. The lid of a portable IHS may sometimes be left slightly open, which may cause a lid sensor to bounce or generate false reports about the open/close position of the lid. Each time the lid position changes, a message may be sent to the operating system (OS) to perform a series of operations in response to the message. These series of operations may include communication among various components such as a video driver, the basic input/output system (BIOS), the OS or the like. For instance, in the event that lid position changes, the BIOS may signal the OS to place the portable IHS into a hibernation mode. When the lid sensor bounces causing multiple signals to be sent to the OS, the signals may adversely affect system operations, such as causing the system to hang (i.e., freeze or lock up).
Thus, a need exists for methods to improve system operations during fluctuations in lid position. By utilizing dual timing methods, frequent changes in the open/close position may be managed properly without causing system inoperability while still maintaining a fast response to a change in the lid position.
The following presents a general summary of several aspects of the disclosure in order to provide a basic understanding of the disclosure. This summary is not an extensive overview of the disclosure nor is it intended to identify key or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts of the disclosure in a general form as a prelude to the more detailed description that follows.
One aspect of the disclosure provides a method for reducing the receipt of multiple signals in a portable information handling system (IHS). The method includes receiving a first signal corresponding to a detected lid position of the portable HIS and determining if a first predetermined amount of time has elapsed. If the first predetermined amount of time has not elapsed, the method includes preventing the receipt of an additional signal corresponding to a change in the detected lid position.
Another aspect of the disclosure provides a computer-readable medium having computer-executable instructions for performing a method for reducing the receipt of multiple signals in a portable information handling system (IHS). The method includes receiving a first signal corresponding to a detected lid position of the portable HIS and determining if a first predetermined amount of time has elapsed. If the first predetermined amount of time has not elapsed, the method includes preventing the receipt of an additional signal corresponding to a change in the detected lid position.
Yet another aspect of the disclosure provides a portable information handling system which may include a lid, a base coupled to the lid and a sensor disposed on the lid or base wherein the sensor detects a lid position. The system further includes a processor coupled to the sensor, wherein the processor generates a first signal corresponding to the lid position. Moreover, the processor is operable to generate an additional signal corresponding to a change in the lid position.
For detailed understanding of the present disclosure, references should be made to the following detailed description of the several aspects, taken in conjunction with the accompanying drawings, in which like elements have been given like numerals and wherein:
Before the present methods are described, it is to be understood that this disclosure is not limited to the particular methods described, as such may vary. One of ordinary skill in the art should understand that the terminology used herein is for the purpose of describing possible aspects, embodiments and/or implementations only, and is not intended to limit the scope of the present disclosure which will be limited only by the appended claims.
It must also be noted that as used herein and in the appended claims, the singular forms “a,” “and,” and “the” may include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a signal” may refer to one or several signals, and reference to “a method of processing” includes reference to equivalent steps and methods known to those skilled in the art, and so forth.
For purposes of this disclosure, an embodiment of an Information Handling System (IHS) may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an IHS may be a personal computer, a storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The IHS may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the IHS may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The IHS may also include one or more buses operable to transmit data communications between the various hardware components.
The IHS 5 may be implemented with a network port 45 to permit communication over a network 70 such as a local area network (LAN) or a wide area network (WAN), such as the Internet. As understood by those skilled in the art, IHS 5 implementations may also include an assortment of ports and interfaces for different peripherals and components, such as video display adapters 35, disk drives port 50, and input/output interfaces 40 (e.g., keyboard 60, mouse 65).
The lid 220 may be coupled to a base 210 by a hinge or any suitable mechanism that allows the lid 220 to be moved from an open position to a closed position and vice versa. In an open position, as shown, a display 250 disposed on the lid 220 may be visible and the keyboard 205 or the like on the base 210 may allow a user to operate the portable IHS 200. In a closed position, the lid 220 may be pivoted to lie atop the base 210 with the display 250 in a downward facing position on the base 210. In another example of a closed position, the lid 220 may be secured atop the base 210 by a securing member (i.e., latch or a mechanical spring loaded button) so as to prevent the lid from being moved into an open position without the release of the securing member.
The base 210 or lid 220 of the portable IHS 200 may provide a mechanical or magnetic sensor 230 that detects lid position, i.e., whether the lid 220 is in an open or closed position. In one implementation, the sensor may comprise a spring loaded element (e.g., button) to detect the lid 220 in a closed position upon compression of the element and alternatively, an open position upon release of the element. In another implementation, a sensor 230 in the base 210 may detect the proximity of a magnet embedded within the lid 220 to detect the closed position. Alternatively, the failure of the sensor 230 to detect the magnet signifies the lid being in an open position. A processor, such as an embedded controller (EC) within the base 210 and communicatively coupled to the sensor, may generate a software message (i.e., signal) in response to a detected lid position, either in an open or closed position. The detected lid position may correspond to an actual lid position, i.e., open or closed position as detected by the sensor. In other implementations, a user may place the lid 220 in a slightly open position that may cause the sensor 230 to detect fluctuations between an open and closed position. The processor may further sense a change in the detected lid position (e.g., from open to closed position) and generate an additional or multiple signals (i.e., software messages) to report the latest status or position of the lid to the OS. By way of illustration, if an initial signal is generated when the sensor detects the lid in the closed position, a subsequent signal may be generated when the sensor detects that the lid position has changed, i.e., is now in the open position.
The IHS OS may perform a single or multiple operations in response to a single or multiple signals reporting the lid status. In some cases, these operations may be set or defined within an OS by a user. For instance, a menu provided by the OS may allow the user to select from shutting down, going to standby mode, or staying in a normal mode when the lid 220 is in a closed position. Rapid or repeated changes in the open/closed position detected by the sensor 230 in the lid 220 may cause the portable IHS 200 to attempt to switch or toggle between different modes of operation. As a result, the OS of the portable IHS may enter an undesired mode (e.g., hang or freeze up) thereby causing user dissatisfaction.
In order to prevent problems caused by a sensor detecting fluctuations between an open and closed position, a dual timing method may be utilized to debounce or mitigate the effects of the repeated changes or fluctuation(s) in lid position reported by the lid sensor.
As used herein, the“current time” may be an indicator of real time whereas “debounce start time” may indicate the time in which the measure of duration of debounce begins. Thus, in the case mentioned above, if the lid debounce start time is set to the current time, the duration of debounce is initially set to zero, with the eventual duration of debounce being measured by the difference between the debounce start time and the current time.
If the lid debounce flag indicates that there is a potential change (i.e., lid debounce flag=true), then a check is performed to determine if two seconds have elapsed since the lid position was last reported to the OS in step 325. For instance, an OS lid report time indicating when the lid position was most recently reported to the OS may be compared to the current time to determine if two seconds have elapsed. The predetermined amount of time (e.g., 2 seconds) specified in step 325 may represent the minimum amount of time needed in between reporting changes in the lid position to the OS to prevent the OS from crashing or hanging. If two seconds has not elapsed since the lid position was last reported to the OS, then the method may return to step 305. If two seconds has elapsed, then a check is performed to determine if the reported lid status indicates that the lid is closed in step 330.
If the reported lid status indicates that the id is initially in a closed position, then a check may be made to determine if 200 milliseconds has elapsed since the actual lid position changed in step 335. For instance, a lid debounce start time indicating when the actual lid position changed may be compared to a current time to determine the amount of time that has elapsed. The check in step 335 may prevent a change in the actual lid position detected by the lid sensor from being reported to the OS if the lid is in the open position for less than a first predetermined period of time specified. If 200 milliseconds does not elapse, the method may return to step 305. If 200 milliseconds elapses, the reported lid status may be set to open in step 340.
If the reported lid status indicates that the lid is initially in an open position, it is then determined if a second predetermined period of time (e.g., 2.5 seconds) has elapsed since the actual lid position changes to a closed position in step 345. The check in step 345 may prevent a change in actual lid position detected by the lid sensor from being reported to the OS if the lid is closed for less than a second predetermined period of time specified. In the present case, if 2.5 seconds does not elapse, the method may return to step 305. However, if 2.5 seconds elapses, then the reported lid status may be set to a closed position in step 350. Once the reported lid status is established in step 340 or step 350, the lid debounce flag may be set to false, the OS lid report time may be set to the current time, and the lid position detected by the sensor is reported to the OS in step 355. To report lid status to the OS, a routine (e.g., code) in the OS is invoked or executed to instruct the OS to query the lid status. The response to the OS lid status query, i.e., open or closed position, is remembered as the last lid status reported to the OS. Once step 355 is complete, the dual timing method 300 may return to step 305.
While several periods of time may have been provided for the dual timing method 300, such as in steps 325, 335, and 345, any suitable time period may be substituted. For instance, the two seconds in step 325 may represent the minimum amount of time that should pass before reporting the lid position to the OS again to prevent fluctuating changes to the lid position causing the OS to hang. The amount of time required may depend on the OS, the settings for the OS, and/or various other factors in the IHS. For Microsoft Windows XP, for example, the amount of time that should elapse in step 325 may be greater than or equal to 1.5 second. However, for an IHS with a different OS, settings, and/or components, the amount of time may vary. The 200 milliseconds in step 335 and the 2.5 seconds in step 345 may prevent bounce in the lid sensor while still quickly reporting the lid position to the OS. This may prevent the lid sensor from reporting fluctuations in the lid position and sending multiple signals to the OS while maintaining an unnoticeable lag in the amount of time that passes from the lid being opened to illuminating the display. In other implementations, the period of time indicated in step 335 may be modified to at least 10 milliseconds and less than or equal to 500 milliseconds. Further, the period of time indicated in step 335 may be modified to a value greater than or equal to 1.5 seconds in other implementations. As discussed previously, these times are based on a portable IHS utilizing Microsoft Windows XP and may vary for IHSs utilizing different operating systems, settings, and the like.
The dual timing method 300 may essentially provide several debounce occurrences. First, the methods presented herein may debounce changes in the lid position detected by the lid sensor in the IHS. Second, the methods may also prevent software debounce by preventing fluctuations in the lid position from being reported to an OS. A change in the lid position may possibly be reported to the OS when the lid sensor remains stable for a predetermined period of time. The features described herein may allow the dual timing method to prevent fluctuations in the lid position from causing multiple signals to be received within an IHS. Reducing the receipt of multiple signals by the system or OS may reduce the occurrence of hanging by the IHS or OS.
Various methods are contemplated including all or less than all of the steps described herein and/or mentioned above, any number of repeats or any of the steps shown and/or mentioned above, and performance of the steps in any order.
Methods of the present disclosure may be presented in terms of logic, software or software implemented aspects typically encoded on a variety of media or medium including, but not limited to, computer-readable medium/media, machine-readable medium/media, program storage medium/media or computer program product. Such media may be handled, read, sensed and/or interpreted by an IHS. Those skilled in the art will appreciate that such media may take various forms such as cards, tapes, magnetic disks (e.g., floppy disk or hard drive) and optical disks (e.g., compact disk read only memory (“CD-ROM”) or digital versatile disc (“DVD”)). The disclosure may further be described in the general context of a computer-executable instruction, such as a program module, being executable by an IHS. Generally, a computer-executable instruction or program module may include a routine, program, code, script, object, data structures and the like. It should be understood that the given implementations are illustrative only and shall not limit the present disclosure.
Particular embodiments and/or implementations of the present disclosure have been described in detail. However, the present disclosure is not limited to these embodiments and/or implementations, and it is understood by one skilled in the art that various other embodiments and/or implementations are possible within the scope of the present disclosure. Thus, modifications and variations may be made without departing from the spirit and scope of the claimed subject matter in the present disclosure. Such changes in form and detail, including use of equivalent functional and/or structural substitutes for elements described herein, fall within the scope of the appended claims and are intended to be covered by this disclosure.