U.S. patent application number 09/771866 was filed with the patent office on 2001-07-05 for operating system-independent computing system user feedback mechanism.
Invention is credited to Ali, Valiuddin Y., Chaturvedi, Ajay, Landry, John A., Massaro, Kevin L., Rorke, Brooks A., Wolff, Stacy L..
Application Number | 20010007140 09/771866 |
Document ID | / |
Family ID | 23898757 |
Filed Date | 2001-07-05 |
United States Patent
Application |
20010007140 |
Kind Code |
A1 |
Landry, John A. ; et
al. |
July 5, 2001 |
Operating system-independent computing system user feedback
mechanism
Abstract
A computing system employs a user feedback mechanism to monitor
operating conditions of the computing system and to alert a user to
the operating conditions independently of an operating system of
the computing system. The user feedback mechanism includes a
display panel to display operating condition messages to the user
and includes a controller to monitor operating condition signals.
Some examples of operating conditions include a connection state of
the computing system to the Internet, a connection state of a
peripheral device to the computing system, a new e-mail
notification message, a new Internet message and atomic time from a
network server coupled to the computing system. The user feedback
mechanism may include a safety button to signal a power supply to
power off the computing system independently of the operating
system.
Inventors: |
Landry, John A.; (Spring,
TX) ; Ali, Valiuddin Y.; (Houston, TX) ;
Chaturvedi, Ajay; (Baltimore, MD) ; Rorke, Brooks
A.; (Satellite Beach, FL) ; Wolff, Stacy L.;
(Cypress, TX) ; Massaro, Kevin L.; (Houston,
TX) |
Correspondence
Address: |
AKIN, GUMP, STRAUSS, HAUER & FELD
711 LOUISIANA STREET
SUITE 1900 SOUTH
HOUSTON
TX
77002
US
|
Family ID: |
23898757 |
Appl. No.: |
09/771866 |
Filed: |
January 29, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09771866 |
Jan 29, 2001 |
|
|
|
09478153 |
Jan 5, 2000 |
|
|
|
Current U.S.
Class: |
714/48 ;
714/E11.187 |
Current CPC
Class: |
G06F 11/328 20130101;
G06F 11/327 20130101 |
Class at
Publication: |
714/48 |
International
Class: |
G06F 011/00 |
Claims
We claim:
1. A computing system, comprising: an operating system; main
processor to run the operating system; and a user feedback
mechanism to monitor a plurality of operating conditions of the
computing system and to alert a user of the computing system to the
plurality of operating conditions independently of the operating
system.
2. The computing system of claim 1, the user feedback mechanism
comprising: a display panel to display a plurality of operating
condition messages to alert the user to the plurality of operating
conditions independently of the operating system.
3. The computing system of claim 2, the user feedback mechanism
further comprising: a controller coupled to the display panel to
monitor a plurality of operating condition signals corresponding to
the plurality of operating conditions and to communicate the
plurality of operating conditions to the display panel
independently of the operating system.
4. The computing system of claim 3, the user feedback mechanism
further comprising: a display panel interface driver to pass the
plurality of operating conditions to the controller.
5. The computing system of claim 2, the user feedback mechanism
further comprising: a display panel interface coupled to the
display panel for an application to communicate with the display
panel.
6. The computing system of claim 2, wherein the display panel
displays a plurality of instructions to the user for the user to
cure the plurality of operating conditions.
7. The computing system of claim 1, wherein the user feedback
mechanism monitors an operating condition of the plurality of
operating conditions after system initialization by processing data
from the operating system into a more meaningful form.
8. The computing system of claim 1, the user feedback mechanism
comprising: system BIOS to monitor the plurality of operating
conditions during system initialization of the computing system by
bypassing the operating system.
9. The computing system of claim 8, wherein the plurality of
operating conditions comprises a plurality of primary device states
for a plurality of primary devices of the computing system.
10. The computing system of claim 1, the user feedback mechanism
comprising: a safety button configured to signal a power supply to
power off the computing system if the computing system is not
powered off by the operating system.
11. The computing system of claim 1, the user feedback mechanism
comprising: a plurality of fault tolerant client software
components to monitor the plurality of operating conditions after
system initialization of the computing system.
12. A method of operating condition user feedback for a computing
system, comprising the steps of: monitoring an operating condition
of the computing system; and displaying an operating condition
message corresponding to the operating condition on a display panel
of a user feedback mechanism of the computing system to alert a
user to the operating condition independently of an operating
system of the computing system.
13. The method of claim 12, further comprising the step of:
clearing the operating condition message from the display panel if
the operating condition is cured.
14. The method of claim 12, further comprising the step of:
signaling a power supply of the computing system to power off the
computer system independently of the operating system.
15. The method of claim 12, the monitoring step comprising the step
of: monitoring a connection state of the computing system to the
Internet.
16. The method of claim 12, the monitoring step comprising the step
of: monitoring a state of a peripheral device of the computing
system.
17. The method of claim 12, the monitoring step comprising the step
of: monitoring an e-mail notification message to the computing
system.
18. The method of claim 12, the monitoring step comprising the step
of: monitoring atomic time from a network serer coupled to the
computing system.
19. The method of claim 12, wherein the monitoring step is
performed by an application after system initialization of the
computing system.
20. The method of claim 12, wherein the monitoring step is
performed by system BIOS during system initialization of the
computing system.
21. A computing system adapted for operating condition user
feedback, comprising: an operating system; a means for monitoring a
plurality of operating conditions of the computing system; and a
means for alerting a user of the computing system to the plurality
of operating conditions independently of the operating system.
22. The computing system of claim 21, the means for alerting
comprising: a means for displaying a plurality of operating
condition messages corresponding to the plurality of operating
conditions.
23. The computing system of claim 22, further comprising: a means
for clearing the plurality of displayed operating condition
messages if the plurality of operating conditions have been
cured.
24. The computing system of claim 21, further comprising: a power
supply; and a means for signaling the power supply to power off the
computing system independently of the operating system.
25. The computing system of claim 21, wherein the plurality of
operating conditions are readable by an application.
26. The computing system of claim 21, wherein the means for
monitoring comprises an application after system initialization of
the computing system.
27. The computing system of claim 21, wherein the means for
monitoring comprises system BIOS during system initialization of
the computer system.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent
application Ser. No. 09/478,153, entitled "DIGITAL FEEDBACK DISPLAY
PANEL AND SUPPORTING SOFTWARE FOR A COMPUTER USER," filed Jan. 5,
2000, which is incorporated herein by reference in its entirety for
all purposes.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention generally relates to operating
condition user feedback for computing systems, and more
particularly to an operating system-independent user feedback
mechanism of a computing system.
[0004] 2. Description of the Related Art
[0005] User feedback with respect to operating conditions or states
of a computer system has typically been provided by a monitor,
audio alerts, light emitting diodes (LEDs) or directly by an
operating system of the computer system. Each of these forms of
user feedback in effect depends upon operating system control.
Where an operating condition relates to an error with the operating
system itself, the operating system cannot detect such an error. A
lock-up of the operating system is therefore particularly difficult
for a user to detect. One drawback of relying upon the operating
system and the monitor to provide user feedback is that neither the
operating system nor the monitor are available at all times. A
computer system is typically configured to enter a low power or
sleep mode after a certain period of idle time where neither the
monitor nor the operating system are available. Because of the
unavailability of the monitor and the operating system in a low
power mode, certain operating conditions are not communicated to a
user. For example, a user cannot determine when a new e-mail is
available during a low power mode. Even a feature such as a digital
clock has depended upon the monitor being fully awake and upon the
operating system.
[0006] Many computer users tend to be frustrated with user feedback
in the form of audio alerts and LEDs. Audio alerts are perceived by
users as annoying. Many users therefore lower the volume of their
computer systems, defeating the purpose of the audio alerts. LEDs
(including the hard disk drive LED of a computer system) are
perceived by users as confusing, particularly where flashing
patterns of the LEDs signify different operating conditions of the
computer system. Even when users somewhat understand an operating
condition conveyed by the monitor, audio alerts or LEDs, most users
are fearful of touching and inadvertently "crashing" or depowering
their computer systems, thereby risking a loss of data.
[0007] The operating system, monitor, audio alerts and LEDs alike
have provided little, if any, feedback to users during critical
times for a computer system such as system initialization or
power-up, for example. Users tend to ignore or overlook any system
information which is quickly flashed on the monitor during
power-up. Users also have difficulty detecting when a computer
system is in fact connected to the Internet. In the case of a user
who frequently moves his or her desktop computer, such a user may
be forced to check one or more cable connections if the computer
does not power-up after the computer is relocated. Users thus are
typically not well informed of the operating conditions or events
of computer systems, if at all, and must resort to contacting the
computer manufacturer, contacting the Internet service provider,
examining the user's manual or examining the computer itself when a
perceived problem develops.
SUMMARY OF THE INVENTION
[0008] Briefly, a computing system employs a user feedback
mechanism to monitor a plurality of operating conditions of the
computing system and to alert a user to the plurality of operating
conditions independently of an operating system of the computing
system. The user feedback mechanism includes a display panel to
display a plurality of operating condition messages to the user and
includes a controller to monitor a plurality of operating condition
signals. Further, the user feedback mechanism is independently
powered and further includes a safety button to signal a power
supply to power off the computing system independently of the
operating system. Examples of operating conditions include a
connection state of the computing system to the Internet and a
connection state of a peripheral device to the computing system.
Other examples of operating conditions that the user feedback
mechanism displays to the user independently of the operating
system include a new e-mail notification message, a new Internet
message or atomic time from a network server coupled to the
computing system. An operating condition message is cleared from
the display panel when the operating condition is cured.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] A better understanding of the present invention can be
obtained when the following detailed description of the preferred
embodiment is considered in conjunction with the following
drawings, in which:
[0010] FIG. 1 is a block diagram of an exemplary software
architecture of a computing system with an operating
system-independent user feedback module;
[0011] FIG. 2 is a block diagram of an exemplary hardware
architecture of the computing system with an operating
system-independent user feedback mechanism;
[0012] FIGS. 3A and 3B show a flow chart illustrating exemplary
operation of the operating system-independent user feedback module
of FIG. 1 and the operating system-independent user feedback
mechanism of FIG. 2;
[0013] FIG. 4 is a flow chart illustrating exemplary processing of
the safety button of the operating system-independent user feedback
mechanism of FIG. 2;
[0014] FIG. 5 is a block diagram of an exemplary architecture of
the operating system-independent user feedback module of FIG. 1;
and
[0015] FIG. 6 is a block diagram illustrating exemplary
application-level interfacing and system-level interfacing for the
operating system-independent user feedback mechanism of FIG. 2.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
[0016] The following commonly-assigned patent application is
incorporated herein by reference in its entirety for all
purposes:
[0017] U.S. patent application, Ser. No. 09/557,700, entitled
"OPERATING SYSTEM HANG DETECTION AND CORRECTION," filed Apr. 25,
2000 by Craig L. Chaiken and Stan Stanart.
[0018] Turning now to the drawings, FIG. 1 shows exemplary
computing system software CS including an operating system 100,
system BIOS (Basic Input Output System) 102, an operating
system-independent user feedback or interface module 106 and an LCD
(liquid crystal display) interface driver 118. The operating system
100 is a typical operating system including a system registry 126,
a clock 120, an Internet manager 124 and a task scheduler 122. The
operating system 100 is coupled to both system BIOS 102 and the
user feedback module 106. The user feedback module 106 includes an
operating system interface 110 coupled to the operating system 100,
a BIOS interface 112 coupled to the system BIOS 102 and an ACPI
(Advanced Configuration and Power Interface) interface 114 to
interface with ACPI logic. The LCD interface driver 118 is also
coupled to the user feedback module 106. The user feedback module
106, the LCD interface driver 118 and the system BIOS 102 in
combination provide software control of an operating
system-independent user feedback or digital dashboard mechanism 200
such as shown in FIG. 2. The term "computing system" as used herein
refers to any system with a superset or subset of processing or
Internet functions of a computer system, including but not limited
to Internet appliances and information appliances.
[0019] Referring to FIG. 2, exemplary computing system hardware CH
including the user feedback mechanism 200 is shown. The user
feedback mechanism 200 is employed to monitor operating conditions
(including fault conditions) of a computing system and to alert a
user to the operating conditions independently of the operating
system 100. The concept of "monitoring" operating conditions should
be construed to encompass detecting data and processing the data to
a more meaningful form to determine an operating condition. An
operating condition generally refers to any event or condition
related to the operation of the computing system, including but not
limited to fault conditions of the computing system. The term
"fault condition" should be construed to encompass any system
condition that may negatively impact a user's experience with the
computing system. The operating system-independent user feedback
mechanism 200 includes a mini display or LCD 204, an interface
controller 202, a message indicator 208, and a safety button 206.
The interface controller 202 is shown coupled to the mini LCD 204,
the message indicator 208, and the safety button 206. A user is
alerted of operating conditions of the computing system by the mini
LCD 204 displaying operating condition messages. The mini LCD 204
receives an operating condition signal from the interface
controller 202 and then displays a corresponding operating
condition message. A variety of operating condition signals and
operating condition messages may be supported by the user feedback
mechanism 200. In addition to displaying operating condition
messages, the mini LCD 204 may also display instructions to a user
for the user to cure the particular operating condition. It should
be understood that the mini display 204 may be implemented with
display technologies other than LCD. The message indicator 208,
which for example may be implemented as one or more light-emitting
diodes (LEDs), is used to indicate messages to a user such as an
email message or an Internet message. The term "Internet message"
refers to any non-email message communicated over the Internet,
such as messages unique to a particular Internet service provider.
The safety button 206 is used to signal a power supply 214 to power
off the computing system if the computing system is not already
powered off by the operating system 100. Processing of the safety
button 206 is described in more detail below in connection with
FIG. 4.
[0020] The interface controller 202 is further coupled to ACPI
logic 210. The ACPI logic 210, which is shown including an ACPI
timer 212, is coupled to the power supply 214. The use of the ACPI
timer 212 is described below in connection with FIG. 4. The arrowed
line from the power supply 214 to the user feedback mechanism 200
represents that the user feedback mechanism 200 is powered
independently of the rest of the computing system. When the user
feedback mechanism 200 is powered (i.e., when the user feedback
mechanism power cable is plugged in), the mini LCD 204 is lit.
Unlike the computing system itself, the user feedback mechanism 200
is preferably left on or powered at all times. The user feedback
mechanism 200 thus operates even when the computing system is off
or asleep. Other illustrated hardware of the computing system
includes a main processor 216, a monitor 220, a keyboard 222, a
mouse 223 and a peripheral device 224. The main processor 216 is a
typical microprocessor for running an operating system and other
software. The monitor 220, the keyboard 222, the mouse 223 and the
peripheral device 224 represent peripheral devices which may
generate operating conditions to be detected and then displayed to
a user. For example, if the monitor 220 is disconnected, a message
(e.g., text and/or icon) indicating the monitor 220 is disconnected
may be displayed on the mini LCD 204. In a disclosed embodiment,
the user feedback mechanism 200 monitors each level of connection
and removal of peripheral devices of the computing system. The
monitor 220, the keyboard 222 and the mouse 223 are treated as
primary devices of the computing system. As such, the states of
these devices are checked during system initialization as described
in more detail below.
[0021] Referring to FIGS. 3A-3B, an exemplary operating
system-independent operating condition feedback process using the
user feedback mechanism 200 is shown. The process begins at any of
the steps 302-318 which represent detection of a variety of
operating conditions. In step 302, the operating condition is an
Internet connection state of the computing system. In step 304, the
operating condition is the keyboard connection state of the
computing system. In step 306, the operating condition is the
monitor connection state of the computing system. In step 308, the
operating condition is the connection state of a peripheral device
in the computing system. In step 310, the operating condition is a
lock-up of the operating system 100. In step 312, the operating
condition is an email notification. In step 314, the operating
condition is an Internet message. In step 316, the operating
condition is the atomic time. The computing system may detect
atomic time from a network server during an Internet connection. In
a disclosed embodiment, a default mode of the user feedback
mechanism 200 is a clock mode in which atomic time is displayed on
the mini LCD 204. Compared to a typical operating system-based
clock of a computer system, the clock mode of the user feedback
mechanism 200 runs independently of the operating system 100 and
provides a more accurate clock. Even if a user does not initiate
connection to the Internet every day, the user feedback mechanism
200 automatically connects to the Internet each day to ensure the
accuracy of its clock. This automatic Internet connection feature
may be configured by a user to force an Internet connection as many
times a day as desired and at whatever times are desired. Since an
OS-based clock is at times not visible on a monitor, users have
typically relied upon clocks external to their computer systems. A
user, however, can view the clock of the user feedback mechanism
200 at any time. In step 318, the operating condition is the power
state (i.e., sleep mode) of the computing system. It should be
understood that the operating conditions shown in steps 302-318 are
illustrative and not exhaustive. As one example, an operating
condition which may be detected using a watermark setting is
whether a hard disk drive of the computing system is almost full.
As another example, it may be detected whether the hard disk is
about to crash. An operating condition may be detected by a
notification or alert. Alternatively, at a desired time, the
process may poll or query for an operating condition. For each of
steps 302-318, control proceeds next to step 320. In step 320, the
operating condition is communicated to the mini LCD 204.
Communication of an operating condition to the mini LCD 204 is
described below in connection with FIG. 6. As represented by the
step 328, a detected operating condition may be read by an
application or the operating system 100.
[0022] Next, control proceeds to step 324 where an operating
condition message corresponding to the operating condition is
displayed by the mini LCD 204. From step 324, control proceeds to
step 325 where an operating condition display complete signal is
generated by the interface controller 202. Control next proceeds to
step 326 where an instruction to cure the operating condition is
displayed by the mini LCD 204. Next, in step 330, it is then
determined if the operating condition is cured. If the operating
condition is not cured, then control remains in step 330. In this
way, the instruction to cure the operating condition remains
displayed until the operating condition is cured by the user. If it
is determined in step 330 that the operating condition is cured,
then control proceeds to step 332 where the instruction is cleared
from the mini LCD 204. It should be understood that step 326 of
displaying an instruction to cure a operating condition is
optional. For example, if the operating condition message itself
implies what a user needs to do to cure an operating condition, it
may be desirable to not display an instruction to inform the user
how to cure the operating condition. In other words, there may be
some cases where once a user is informed of the operating
condition, it is self-explanatory how to cure the operating
condition.
[0023] Steps 334-340 are presented to illustrate situations where
steps in addition to message display are performed by the user
feedback mechanism 200 after detecting certain operating
conditions. If an Internet message or an email notification is
detected in step 334, control proceeds to step 336 where the
message indicator 208 is set. For example, if two email
notifications were detected, then the message indicator 208 is set
to periodically blink twice. If an Internet message or email
notification is not detected in step 334, then control proceeds
directly to step 338. In step 338, it is determined if atomic time
is detected. If not, control proceeds to step 342 indicating the
operating condition feedback process is complete. If atomic time is
detected in step 338, then control proceeds to step 340 where the
clock 120 of the operating system 100 and a clock of the user
feedback mechanism 200 are both updated with the atomic time. By
updating the clock of the user feedback mechanism 200, the mini LCD
204 displays atomic time. From step 340, the process is completed
in step 342.
[0024] Referring to FIG. 4, processing of the safety button 206
(FIG. 2) is shown. The process begins in step 400 where it is
determined if a press or actuation of the safety button 206 by a
user is detected. If a press or actuation is not detected, then
control remains in step 400. If a press or actuation is detected,
then control proceeds to step 402 where the ACPI timer 212 is
started. Next, in step 404 a shutdown of the operating system 100
is initiated. Control then proceeds to step 406 where it is
determined if the ACPI timer 212 has expired. If the ACPI timer 212
has not expired, then control remains in step 406. If the ACPI
timer 212 has expired, then control proceeds to step 408 where it
is determined if the operating system 100 is shutdown. Detection of
a hang up by the operating system 100 is described in a
commonly-assigned U.S. patent application, entitled "OPERATING
SYSTEM HANG DETECTION AND CORRECTION," previously incorporated
herein. If the operating system 100 is shutdown, then control
proceeds to step 412 where processing of the safety button 206 is
complete. If the operating system 100 is not shutdown, then control
proceeds to step 412 where the ACPI logic 210 is reset signaling
the power supply 214 to turn off. At this point, the computing
system can be considered as in a "safe mode." From step 410,
control proceeds to step 412 where the processing of the safety
button 206 is complete. This process provides a way to ensure that
the operating system 100 is shutdown. By using the safety button
206, a user can be ensured that the computing system is in a
depowered state. With this assurance, a user can then be more
comfortable opening or moving the computing system. The use of the
safe mode can prevent a user from accidentally powering off the
computing system with files open in the operating system 100.
[0025] Referring to FIG. 5, exemplary software components which may
be included in the user feedback module 106 of FIG. 1 is shown. As
previously shown in FIG. 1, the user feedback module 106 includes
an operating system interface 110, the BIOS interface 112 and the
ACPI interface 114. The user feedback module 106 may further
include client software components such as a device monitor 500, an
Internet monitor 502, an atomic time monitor 504, an email monitor
506 and an Internet message monitor 508. The device monitor 500 is
used to detect the connection or other state of peripheral devices.
For example, if the peripheral device is a CD-ROM drive, it can be
detected whether the drive contains an audio CD, a data CD, or a
DVD CD. In a disclosed embodiment, the device monitor 500 uses the
WM_DEVICECHANGE signal provided by the operating system 100 to
detect device states. If the device is a printer, then the device
monitor 500 uses the WM_SPOOLERSTATUS signal provided by the
operating system 100 to detect if a print job is started or
finished. Those skilled in the art are familiar with calling
application programming interfaces (APIs) into an operating system
to retrieve desired information known by the operating system. A
variety of standard APIs may be employed to retrieve potentially
useful information for a user from an operating system. In the
past, such information has not been retrieved, processed and
displayed to the user.
[0026] The Internet monitor 502 is used to detect if the computing
system is connected to the Internet. In a disclosed embodiment, the
Internet monitor 502 registers with the operating system 100 to
receive messages regarding Remote Access Services (RAS). The
Internet monitor 502 is informed by a notification or message when
an Internet connection is made or disconnected. The atomic time
monitor 504 is used to detect atomic time from a server or network
computer coupled to the computing system during an Internet
connection. The email monitor 506 is used to detect email
notifications for the computing system. The Internet message
monitor 508 is used to detect Internet messages for the computing
system. The monitors 500-508 correspond to steps 302-308 and
312-316 of FIG. 3A. The monitors 500-506 are described in more
detail in the commonly-assigned U.S. patent application, entitled
"DIGITAL FEEDBACK DISPLAY PANEL AND SUPPORTING SOFTWARE FOR A
COMPUTER USER," previously incorporated herein.
[0027] Referring to FIG. 6, exemplary application-level interfacing
and system-level interfacing for the user feedback mechanism 200 is
shown. Application-level interfacing relates to an application 602
or 604 communicating with the mini LCD 204. System-level
interfacing relates to a client 612 communicating with the mini LCD
204. An LCD interface 600 is shown coupled to the application 602,
the application 604 and an LCD interface driver 118. In a disclosed
embodiment, communication to the mini LCD 204 in the form of
system-level interfacing overrides communication to the mini LCD
204 in the form of application-level interfacing. The application
602 or 604 may for example be a debug application to track the
operating conditions detected by the user feedback mechanism 200.
In a disclosed embodiment, the LCD interface 600 is a component
object model (COM)-based interface called by the application 602 or
604 for communication with the mini LCD 204. The techniques for a
COM interface to communicate with an application are well known in
the art. COM is a well known paradigm for interaction among
software components. The LCD interface 600 is used to provide the
applications 602 and 604 an application-level logical interface to
the mini LCD 204 of the user feedback mechanism 200. For example,
the application 604 through the LCD interface 600 can provide
operating conditions to the user feedback mechanism 200 and can
also specially configure display by the mini LCD 204 for the
particular application 604. The LCD interface 600 is specially
configured to encapsulate functionality for the application 602 or
604 to communicate with the mini LCD 204 of the user feedback
mechanism 200. The LCD interface 600 is basically an open mechanism
for any application 602 or 604 known by or registered with the
operating system 100 to communicate with the mini LCD 204. The LCD
interface 600 may also be used by the application 602 or 604 to
read information from the mini LCD 204. The application 602 or 604
can be written in any computer language (e.g., Java, C++ or
HTML).
[0028] The table below shows a variety of interface methods for the
LCD interface 600. Beside the name of each interface method shown,
a general description of the interface method is provided.
1 Interface Method Name Interface Method Description SetClock This
method updates the time of the internal clock of the mini LCD and
the system clock of the operating system. SetClockEX This method
updates the date and time of the internal clock of the mini LCD and
the system clock of the operating system. SetLEDState This method
is used to set an LED for the feedback mechanism to an on, off or
blinking state. The supported LEDs are a sleep LED, an Internet
detect LED, a power LED, a message LED and a backlight LED.
DisplayText This method is used to control parameters for
displaying text on the mini LCD. SimplyDisplayText This method is
used to display text on the mini LCD with default text display
parameters. SimplyScrollText This method is used to scroll text on
the mini LCD with default scrolling parameters.
GetLCDLongProperties This method is used to fetch the properties of
the mini LCD. ClearText This method clears the text display area of
the mini LCD and displays the clock if no pending text is waiting
to be displayed. DisplayIcon This method is used to control
parameters for displaying icons on the mini LCD. SimplyDisplayIcon
This method is used to display icons on the mini LCD with default
icon display parameters. BlinkIcon This method is used to control
blinking of icons on the mini LCD. DisplayIconEX This method is
used to display icons on the mini LCD with blinking and timeout
control. ClearIcon This method is used to clear an icon from the
mini LCD. LoadIcon This method downloads an icon with its icon
handle to the mini LCD. LoadIconFromBitmap This method downloads an
icon from a bitmap to the mini LCD. LoadIconFromByteArray This
method downloads an icon from a one- dimensional array to the mini
LCD. LoadIconFromPicture This method extracts icon data from an OLE
picture object for the mini LCD. LoadFont This method extracts font
data from an OLE font object for the mini LCD. LoadFontFrom This
method downloads a font from a byte ByteArray array to the mini
LCD. PlaySound This method plays sound for the feedback mechanism
with default sound parameters. PlaySoundEX This method controls
parameters for playing sound for the feedback mechanism.
[0029] It should be understood that the COM interface methods
disclosed herein are illustrative and not exhaustive.
[0030] A variety of application-specific messages may be displayed
by the mini LCD 204. If the application for example is Microsoft
Word.RTM., then the mini LCD 204 may be used to indicate that
Microsoft Word.RTM. is launching or to indicate that Microsoft
Word.RTM. is terminating. The application 602 or 604 can be
scheduled for launching by the operating system 100 and can be
self-terminated when not needed. As another example, if the
application 604 is a paging application, then the application 604
can signal the mini LCD 204 to display "paging mom" when the
application 604 is being used to page the mother of the user. Five
other examples of applications that may communicate with the user
feedback mechanism 200 include a calculator application, a calendar
application, an alarm application, a voice mail application, and a
web-based diagnostic application for the computing system
manufacturer to remotely reply to service requests from the user or
remotely download code updates to the user. Unlike application 604,
application 602 is shown coupled to the operating system 100 to
represent that an application may leverage the resources of the
operating system 100. An application may also leverage the
resources of another application. It should be understood that a
variety of applications or clients may communicate with the user
feedback mechanism 200. As such, the applications and clients
disclosed herein are illustrative and not exhaustive. With the
exception of reference numerals in the description of FIG. 6,
applications and clients are used herein interchangeably. The
client 612, such as one represented by any of monitors 500-508 in
FIG. 6, communicates with the mini LCD 204 through the LCD
interface driver 118 or the system BIOS 102. The LCD interface
driver 118 is coupled to the LCD interface 600 and to input/output
(I/O) logic 608. In a disclosed embodiment, the LCD interface
driver 118 is configured as an RS-232 or other serial port driver.
In addition, in a disclosed embodiment, the driver 118 includes
entry points typical of a Windows driver model (WDM)/NT driver as
well as driver entry points specialized for the user feedback
mechanism 200. The table below shows a variety of driver entry
points used in connection with the user feedback mechanism 200.
Beside the name of each driver entry point shown, a description of
the driver entry point is provided.
2 Driver Entry Point Name Driver Entry Point Description
CPQLCD_DriverEntry This routine ensures that the driver is loaded
when the mini LCD is found. It also registers the rest of the entry
points of the driver with the operating system and makes them
visible to the operating system. CPQLCD_Dispatch This routine
services the calls from applications/clients and services IOCTLs
which are supported by the driver. CPQLCD_StartIo This routine is
used to interface with a physical device. CPQLCD_Unload This
routine disconnects and un-registers from all the interrupts that
it services once it has unloaded. CPQLCD_AddDevice This routine
adds a device object when a new device (such as the mini LCD) is
detected. CPQLCD_RemoveDevice This routine removes a device.
CPQLCD_Create This routine creates a handle to call into the
driver. CPQLCD_Close This routine closes a handle for a specific
client and deletes the resources allocated by that client.
CPQLCD_Write This routine handles write requests for the driver.
CPQLCD_Read This routine handles read requests for the driver.
CPQLCD_ConnectInterrupt This routine registers the driver with the
operating system for servicing specific interrupts from the mini
LCD. CPQLCD_InterruptServiceRoutine This routine saves data
necessary for servicing an interrupt after an interrupt arrives and
then dismisses the interrupt. CPQLCD_DpcRoutine This routine
generates deferred procedure calls queued by the interrupt service
routine from any interrupt-related processing.
CPQLCD_Is_LCD_Present This routine is used to determine if the mini
LCD exists. CPQLCD.sub.-Set_Baud_Rate This routine is used to set
the baud rate of the mini LCD. CPQLCD_SendCmdTo_LCD This routine is
used to send a command to the mini LCD. GetRegistryDword This
routine is used to read a DWORD. GetNextIconLocation This routine
routines the next available free icon location for the mini LCD.
CleanUpClientIcons This routine is used to clean up or clear icons
for a particular client or application. ClearIconLocation This
routine allows a client or application to selectively call and
remove icons. SendAByte This routine is used to send a byte to a
particular port. SetBaudRate This routine is used to set the baud
rate for a port. EnableIRQTriggering This routine is used to enable
interrupt request triggering. ResetIRQTriggering This routine is
used to reset interrupt request triggering. ReadStatusPort This
routine is used to read a status port. ReceiveByte This routine is
used to read a byte from a port. SendByteWhenReady This routine is
used to send a byte when a port is ready. CompleteIRP This routine
is used to complete an IRP. StartPacket This routine is used to
queue an IRP. For example, the IRP may be a time command, text
command or LED command. APP CommandComplete This routine is used to
track the last command that was set for the mini LCD.
APPTextCmdFinish This routine is used to ensure that a command for
the mini LCD is completed. SendTextCommands This routine is used to
send a text command to the mini LCD. ControlLED This routine is
used to turn on or turn off an LED of the user feedback mechanism.
ResetLCD This routine is used to reset the mini LCD. The IOCTLs
(name and description) supported by the driver 118 are shown in the
table below: IOCTL Name IOCTL Description CPQLCD_GET_CLIENT_ID This
IOCTL is used to fetch a unique identifier for a
client/application. The identifier may be used to keep track of any
icons downloaded by that client/application. CPQLCD_CLIENT_CLEAN_UP
This IOCTL is used when a client/application no longer needs the
services of the mini LCD and the driver. CPQLCD_GET_DRIVER_INFO
This IOCTL is used to obtain the name and version number for the
driver. CPQLCD_CLEAR_ICON_BMP This IOCTL is used for clearing
specific bitmaps no longer needed by the client.
CPQLCD_DEF_ICON_BMP This IOCTL defines and downloads a bitmap and
returns an identification number for the icon to uniquely identify
that icon. CPQLCD_DISPLAY_ICON This IOCTL displays an icon
identified by the icon identification number. CPQLCD_DEFINE_FONT
This IOCTL defines a bitmap for a specific character.
CPQLCD_DISPLAY_TEXT This IOCTL is used to display text for a
specified time on the mini LCD. CPQLCD_CONTROL_LED This IOCTL is
used to control the state of the LEDs of the user feedback
mechanism. CPQLCD_SET_CLOCK This IOCTL is used to set the clock of
the user feedback mechanism to a desired time.
CPQLCD_QUERY_REVISION This IOCTL is used to obtain a revision
number of the mini LCD for identification purposes.
[0031] As shown by some of the IOCTLs above, the driver 118 can be
used to dynamically download text or an icon for an application or
client. In a disclosed embodiment, the driver 118 is a Plug`n`Play
driver. One potential use of the CPQLCD_DEFINE_TEXT IOCTL is to
define a new font for text during the clock mode of the user
feedback mechanism 200. It should be understood that the driver
entry points and IOCTLs disclosed herein are illustrative and not
exhaustive. It is noted that the LCD interface 600 enables an
application or client component to drive the mini LCD 204 such that
an application or client component is not required to communicate
directly with the LCD interface driver 118. The LCD interface 600
uses the driver entry points to shield individual applications from
having to talk to the LCD interface driver 118 directly.
[0032] The input/output logic 608 includes ACPI logic 210 and a
universal asynchronous receiver/transmitter (UART) 606. The ACPI
logic 210 is coupled to the system BIOS 102 and to the power supply
214. Independent of both the operating system 100 and the LCD
interface driver 118, system level interfacing by the client 612
with the mini LCD 204 may be handled through the system BIOS 102.
Handshaking and other communication between the LCD interface
driver and system BIOS is described in a commonly-assigned U.S.
patent application, entitled "OPERATING SYSTEM HANG DETECTION AND
CORRECTION," previously incorporated herein. System BIOS 102 and
the LCD interface driver 118 are independent of the operating
system 100 in a different sense. System BIOS 102 is independent of
the operating system 100 in the sense that device states of the
primary devices are detected during system initialization (e.g.,
POST) of the computing system by bypassing the operating system
100. The LCD interface driver 118 and the application 602 or 604
are independent of the operating system 100 in the sense that the
manner for the application 602 or 604 and the LCD interface driver
118 to drive the mini LCD 204 is not limited to a particular
operating system. The resources or mechanisms of any given
operating system may be used in driving the mini LCD 204.
[0033] UART-to-UART communication is accomplished through the
interface controller 202 between the UART 606 of the I/O logic 608
and a UART 610 of the mini LCD 204. It should be understood that
functionality for communicating an operating condition to the mini
LCD 204 may be encapsulated in the client 612 or the application
602 or 604. In an alternative embodiment, such functionality may to
some extent be integrated into the operating system 100 itself,
although potentially sacrificing some independence from the
operating system 100. In a disclosed embodiment, the interface
controller 202 is a microcontroller in the 80C52 family. For sake
of clarity, certain well known components (e.g., memory, latch and
other logic) used by a display controller in communicating with a
display are not shown.
[0034] Thus, a computing system provides a user feedback or digital
dashboard mechanism to monitor and alert a user of operating
conditions independently of an operating system. An application or
client monitors operating conditions and talks to a display panel
through a display interface. In this way, the application or client
may talk to the display panel in connection with any operating
system. During system initialization of the computing system,
system BIOS is available for the client to use to talk to the
display panel independently of both the display interface and the
operating system.
[0035] One advantage of the user feedback mechanism is that
potentially useful information known by the operating system is
actually retrieved, processed and displayed to a user in a
comprehensible and user friendly fashion. A further advantage of
the user feedback mechanism is that information which is not
specifically known by the operating system can be monitored and
displayed to a user. The user feedback mechanism provides a
comprehensible way to alert a user to useful information which in
the past has not been generated or communicated to the user.
[0036] By displaying information on the mini display of the user
feedback mechanism, useful or valuable feedback as to the condition
of the computing system may be provided to a user even while a
monitor is off or a screen saver is on. In other words, information
which cannot be presented on the main display can be presented on
the mini display of the user feedback mechanism. Since the user
feedback mechanism operates independently of an operating system, a
user can be presented with useful feedback information during
system initialization when the operating system is unavailable.
Because of its independence from the operating system, the user
feedback mechanism is a guaranteed, failsafe interface to a
computing system that users can depend upon for valuable
operational and fault tolerant information.
[0037] The foregoing disclosure and description of various
embodiments are illustrative and explanatory thereof, and various
changes in the software components, operating system, applications,
clients, notification messages, fault conditions, operating events,
signals, icons, text messages, network protocols, order of steps
and the like, as well as in the details of the illustrated hardware
and software and construction and method of operation may be made
without departing from the spirit of the invention.
* * * * *