GB2460450A - Power control device having communication with primary device - Google Patents
Power control device having communication with primary device Download PDFInfo
- Publication number
- GB2460450A GB2460450A GB0809853A GB0809853A GB2460450A GB 2460450 A GB2460450 A GB 2460450A GB 0809853 A GB0809853 A GB 0809853A GB 0809853 A GB0809853 A GB 0809853A GB 2460450 A GB2460450 A GB 2460450A
- Authority
- GB
- United Kingdom
- Prior art keywords
- connection
- power control
- control device
- controller
- power
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R25/00—Coupling parts adapted for simultaneous co-operation with two or more identical counterparts, e.g. for distributing energy to two or more circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/266—Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R13/00—Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
- H01R13/66—Structural association with built-in electrical component
- H01R13/70—Structural association with built-in electrical component with built-in switch
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R13/00—Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
- H01R13/66—Structural association with built-in electrical component
- H01R13/70—Structural association with built-in electrical component with built-in switch
- H01R13/703—Structural association with built-in electrical component with built-in switch operated by engagement or disengagement of coupling parts, e.g. dual-continuity coupling part
- H01R13/7036—Structural association with built-in electrical component with built-in switch operated by engagement or disengagement of coupling parts, e.g. dual-continuity coupling part the switch being in series with coupling part, e.g. dead coupling, explosion proof coupling
- H01R13/7038—Structural association with built-in electrical component with built-in switch operated by engagement or disengagement of coupling parts, e.g. dual-continuity coupling part the switch being in series with coupling part, e.g. dead coupling, explosion proof coupling making use of a remote controlled switch, e.g. relais, solid state switch activated by the engagement of the coupling parts
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01R—ELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
- H01R27/00—Coupling parts adapted for co-operation with two or more dissimilar counterparts
- H01R27/02—Coupling parts adapted for co-operation with two or more dissimilar counterparts for simultaneous co-operation with two or more dissimilar counterparts
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
Abstract
A power control device for supplying power to a primary device and to one or more secondary devices, particularly for a computer 23 and its peripherals 28a, 28b, 28c e.g. monitor, printer, scanner. The power control device comprises an input connection 2 for connection to a source of power 22, at least one output connection 6 and a controller (11, fig. 3)for enabling or disabling connection of the at least one output connection to the input connection. The controller is adapted for communication with a primary device 23 and is adapted to send a request to the primary device, the request requiring a response. The controller is further adapted to disable the connection of the at least one output connection to the input connection if a response to the request is not received from the primary device. The controller may also be adapted to enable connection of the output to the power supply in response to receipt of an enumeration request from the primary device while it is booting. The communication may be via a USB socket 9.
Description
POWER CONTROL DEVICE
The present invention relates to a power control device for supplying power to a primary device and to one or more secondary devices.
A computer is generally connected to a number of peripheral devices, such as a monitor, printer and scanner. In general, computers are powered by a connection to a mains power supply, usually via a plug and socket arrangement. While some peripherals such as keyboards and mice can be powered using the computer's power supply, many peripherals such as monitors, printers and scanners need to be powered independently of the host computer. It is usual for such peripherals to have a dedicated connection to a mains power supply with the result that such peripherals continue to draw power irrespective of the host computer's activities.
A number of factors including increasing energy costs and environmental concerns are making it increasingly desirable to reduce wasted energy. To this end, many computers have various power-saving modes. Power-saving modes are generally entered into when a user has not used the computer for a predetermined period of time. When in a reduced-power mode, it is common for a computer to cease communicating with its peripheral devices. Any power drawn by peripheral devices during the time when the host computer is in a reduced-power mode is wasted.
Further, when a computer is turned off, it is necessary to turn off each of the independently powered peripheral devices to stop such peripheral devices from needlessly drawing power from the mains supply. This can be inconvenient and is often forgotten, with the result that peripheral devices are often left on, wasting energy for long periods of time.
It is an object of an embodiment of the present invention to obviate or mitigate one or more of the problems outlined above.
According to a first aspect of the present invention, there is provided a power control device, comprising: an input connection for connection to a source of power; at least one first output connection; a controller for enabling or disabling connection of the at least one first output connection to the input connection, the controller being adapted for communication with a primary device; wherein the controller is adapted to: send a first request to the primary device, the first request requiring a response; and disable the connection of the at least one first output connection to the input connection if a response to the first request is not received from the primary device.
The first aspect of the present invention provides the advantage that the power control device can determine if the primary device is active, and therefore whether power should be supplied to the at least one output connection even in the absence of operational state data or specific command data sent from the primary device to the power control device The output connection can take any convenient form such as, for example, the form of a standard electrical power socket.
The controller may be adapted to send a plurality of requests to the primary device and to disable the connection of the at least one output connection to the input connection unless a response to at least one of the plurality of requests is received from the primary device.
The plurality of requests may comprise an ordered plurality of requests, where a request is sent to the primary device if but only if a response to a preceding request is not received. The plurality of requests may comprise an ordered plurality of requests made at predetermined time intervals. The plurality of requests may comprise a predetermined number of requests. * S *
::..: According to a second aspect of the present invention there is provided a power control device, comprising: a first input connection for connection to a source of power; at least one output connection; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with a primary device; wherein the controller is adapted to enable connection of the at least one output connection to the input connection in response to receipt of a first enumeration request from the primary device while the primary device is booting.
The second aspect of the present invention allows the power control device to determine when the primary device has been switched on even in the absence of power information from the primary device. For example, if the primary device is a computer to which the power control device is connected via a USB connection, the power control device can determine if the primary device is switched on, even in the absence of a USB supply voltage being provided by the computer.
The enumeration request may be a request for data relating to devices connected to the primary device. The enumeration request may be a request for descriptor data relating to devices connected to the primary device.
The controller may be further adapted to receive data from the primary device indicating an operating state of the primary device, and to enable or disable the connection of the at least one output connection to the input connection based upon the received data.
The primary device may be arranged to provide a signal to the controller to disable the connection of the at least one output connection to the input connection when a predetermined time period has elapsed since a last predetermined event occurred at the primary device. The predetermined event may be a user input. The received data may be a command to either enable or disable power to the at least one output connection.
The controller may be adapted to communicate with the primary device via a USB link connecting the controller to the primary device. In such embodiments, the power control device may further comprise a USB socket adapted to receive a USB cable arranged to provide the USB link to the primary device.
The controller may be further adapted to enable the connection of the at least one output connection to the input connection in response to detection of a USB supply voltage on the USB link.
The power control device may further comprise connections between the input connection and the controller for supplying power to the controller.
The controller may be a programmable integrated controller.
The power control device may further comprise at least one further output connection connected to the first input connection and adapted for electrical connection with the primary device. The further output connection may be fixedly connected to said input connection.
The primary device may take any suitable form, and may be, for example a personal computer such as a desktop computer or a laptop computer.
According to a third aspect of the present invention there is provided a method of controlling power supply to at least one secondary device associated with a primary device, the method comprising: running software on the primary device, the software comprising: a service component adapted to load automatically as part of a boot-up process of the primary device, and to generate first data indicating an operating state of the primary device; and a user loadable user interface component adapted to communicate with the service component to allow a user to affect generation of the first data; and supplying power to the at least one secondary device in dependence upon the first data; The third aspect of the present invention allows secondary devices to be controlled by software without the need for specific user input. By splitting the software into two components, a service component and a user interface component, the service component can load automatically, and run in the background, even when the computer is in a low-power state.
** The method may further comprise monitoring a time since a last predetermined event at the primary device; comparing the time since the last predetermined event with at least one predetermined time limit. The first data may be based upon the comparison. The predetermined event may be a user input event. The primary device is a personal computer.
The at least one secondary device may be electrically connected to an output connection of a power control device wherein the power control device further comprises: an input connection for connection to a source of power; a controller for enabling or disabling connection of the at least one first output connection to the input connection, the controller being adapted for communication with the primary device; and wherein supplying power to the at least one secondary device comprises enabling connection of at least one first output connection to the input connection.
The method may further comprise generating second data based upon the first data, the second data indicating whether to supply power to the at least one first output connection; and transmitting the second data to the controller; wherein the controller is adapted to: disable or enable power to the at least one first output connection based upon the second data.
The controller may be adapted to communicate with the primary device via a USB link connecting the controller to the primary device wherein the second data is transmitted from the primary device to the controller via the USB link.
The service component is a Windows service. Alternatively, the service component may be a UNIX daemon.
The service component and the user interface component may be adapted for communication via the TCP protocol.
The method may further comprise a user modifying the at least one *::::* predetermined time limit by interacting with the interface component and a message being sent to the service component indicating the interactions. * e * S * * S.
It will be appreciated that all aspects of the invention can be implemented by way of methods or apparatus. It will also be appreciated that features described in S..'. connection with one aspect of the invention can be applied to other aspects of the invention.
An embodiment of the invention will now be described, by way of example, with reference to the accompanying drawings, in which: Figure 1 is a plan view of a power control device according to an embodiment of the present invention; Figure 2 is a circuit diagram showing electrical power connections within the power control device of Figure 1; Figure 3 is a schematic illustration of the components of a USB connection module and a manual override module of the power control device of Figure 1; Figure 4 is a schematic illustration showing the power control device of Figure 1 connected to a host computer and three peripheral devices; Figure 5 is a schematic illustration of the interaction between software components of an embodiment of the present invention and the power control device of Figure 1; Figure 6 is a schematic illustration of components of the GUI component of Figure 5; Figure 7 is a schematic illustration of components of the service component of Figure 5; Figure 8 is a schematic illustration of messages sent from a host computer to the power control device of Figure 1; *S.. * ** ** *
Figure 9 is a screenshot showing the main screen of the GUI component of I...
Figure 5 running on a host computer to control the power control device of Figure * ** * * * 1 * S. * S. * S S Figure 9A is a screenshot showing a custom power seftngs screen provided by the GUI component of the Figure 5; Figure 10 is a screenshot showing a custom devices option screen of the GUI component of Figure 5 running on a host computer; Figure 11 is a flow chart showing a process for setting power state flags to indicate whether particular time limits associated with a power policy have been exceeded; Figure 12 is a flow chart showing a process for determining a current power saving level based upon the power state flags set as described with reference to Figure 11; Figure 13 is a flow chart showing a process for determining whether the secondary sockets of the power control device of Figure 1 should be enabled or disabled; Figure 14 is a screenshot showing an advanced options screen of the GUI component of Figure 5 running on a host computer; Figure 15 is a flow chart showing processing carried out when a host computer is switched on; Figure 16 is a flow chart showing a main loop of firmware of the power control device of Figure 1; Figure 17 is a flow chart showing processing undertaken by the firmware running on the power control device of Figure 1 when operating in an intelligent-sensing mode; * Figure 18 is a flow chart showing processing carried out by the firmware of the power control device of Figure 1 to check for and process data received from a : host computer; and **.. 7 Figure 19 is a flow chart showing processing carried out by the firmware of the power control device to send an outgoing report to the host computer.
Figure 1 shows a power control device 1 according to an embodiment of the present invention, comprising a power-in connection 2, a manual override module 3 having rotatable key switch 3a, a primary socket 4, a Universal Serial Bus (USB) connection module 5, three secondary sockets 6 and a power-out connection 7.
Figure 2 shows electrical connections of the power control device 1. Live connections are shown in dashed line while neutral connections are shown in solid line and earth connections are shown in dash-dot line. Connections between the power-in connection 2, the power-out connection 7, a power control switch 8 of the USB connection module 5, the primary socket 4 and each of the secondary sockets 6 are shown.
The power control device 1 is designed to be connected to a supply of electricity via the power-in connection 2. For example, the power-in connection 2 may be connected to a mains electricity supply via an electrical power cable terminated by an electrical plug suitable for fitment into a mains electricity supply socket.
The primary socket 4, for example a socket compliant with British Standard BS1363 and fuse protected, comprises a socket for receiving an electrical plug, in particular, an electrical plug of a computing device. It can be seen in Figure 2 that the primary socket 4 is permanently connected to the power-in connection 2.
Thus, when the power control device I is connected to a source of electricity via the power-in connection 2, the primary socket 4 is powered and will supply *: electrical power to a computing device plugged into the primary socket 4. S... * * S...
The secondary sockets 6 each comprise a socket for receiving an electrical plug, *... in particular, a plug of a peripheral device, such as a printer, scanner or speakers and may also be fuse protected. The secondary sockets 6 are electrically : connected to the power-in connection 2 via a power control switch 8. Thus, when the power control device I is connected to a source of electricity, via the power-in connection 2 and the power control switch 8 is closed, the secondary sockets 6 are powered. Conversely, when the power control switch 8 is open, the secondary sockets are not powered. Additional sockets can be added to the power control device 1 via the power-out connection 7.
The primary socket 4 may be differentiated from the secondary sockets 6 by way of colouring. For example, the primary socket 4 maybe coloured red while the secondary sockets 6, could each be coloured white. While in the embodiment shown in Figures 1 and 2 the power control device 1 is shown with three secondary sockets it will be appreciated that there may be more or fewer secondary sockets.
Figure 3 shows the manual override module 3 and the USB connection module 5 in further detail. It can be seen that the USB connection module 5 is provided with a USB socket 9 and an LED indicator 10. A USB line might be permanently connected to the USB socket 9, although preferably, a USB cable can be releasably connected to the USB socket 9, in which case the USB socket 9 may be a USB B' socket.
The USB connection module 5 further comprises a microcontroller 11 such as a Programmable Integrated Controller (PlC) microcontroller, which is responsive to signals input via the USB socket 9 so as to control the operation of the power control switch 8 and the LED indicator 10. Microcontroller 11 has non-volatile RAM 11 a for storing data used in processing operations described in further detail below.
The power control switch 8 is preferably relay controlled and may be for example a 16 amp 230 Volt AC rated relay. A power-in terminal 12 of the USB connection module 5 is permanently connected to the power-in connection 2 and the primary S...
socket of the power control device 1. A power-out terminal 13 of the USB *.,.. connection module 5 is permanently connected to the secondary sockets 6 and the power-out connection 7 of power control device 1. The power control switch 8 * is connected between the power-in terminal 12 and the power-out terminal 13 of the USB connection module 5. The microcontroller 11 is preferably mains powered by the power control device 1, via an electrical power connection 14 connecting the power-in terminal 12 to the microcontroller 11 rather than bus powered via a US8 cable connected to USB socket 9, although in alternative embodiments the microcontroller 11 is bus powered.
Figure 4 shows the power control device 1 connected to a computer and peripheral devices. The power control device 1 is shown connected to a mains electricity supply via an electrical power cable 20 connected to a plug 21 which is plugged into a mains plug socket 22. A computer 23 is plugged into the primary socket 4 of the power control device 1 via a plug 24 connected to the computer 23 by an electrical power cable 25 thereby powering the computer 23. The computer 23 has an associated keyboard 26 and mouse 27 via which a user may interface with the computer 23. Also connected to the computer 23 are three peripheral devices 28a, 28b, 28c each plugged into a respective one of the secondary sockets 6 of the power control device 1. A USB link is formed between the computer 23 and the power control device 1 via a cable 29 connecting a USB port of the computer 23 to the USB socket 9 of the power control device 1.
The microcontroller 11 of the USB connection module 5 operates the power control switch 8 in response to data received from the computer 23 about the operational state of the computer 23 via the USB socket 9. The microcontroller 11 operates by closing the power control switch 8 so as to power the secondary sockets 6 when it is determined that the secondary sockets 6 should be powered.
When it is determined that the secondary sockets 6 should not be powered, the microcontroller 11 operates by opening the power control switch 8 so as to shut off power to the secondary sockets 6.
Referring back to Figure 3, it can be seen that rotatable key switch 3a is connected to a switch 15. A key may be inserted into a slot formed in the key *S..
rotatable switch 3a to allow a user to rotate the key switch 3a between a first *:*,:* position in which the switch 15 is open and a second position in which the switch is closed. The switch 15 is connected to the microcontroller 11 via a * connection 16. The microcontroller 11 responds to the closure of the switch 15 by closing the switch 8. Closure of the switch 15 overrides any other signals received by the microcontroller 11 such that the secondary sockets 6 remain powered regardless of the operating state of the computer 23.
The power control device 1 can operate in one of two semi-autonomous modes, without requiring software to be running on the computer 23, a power-sensing mode or an intelligent-sensing mode. Whilst the power control device 1 is operating in the power-sensing mode, the microcontroller 11 controls the secondary sockets in response to whether or not a USB supply voltage is detected on the USB link between the computer and the power control device 1.
Specifically, if the microcontroller 11 detects that there is a USB supply voltage provided on the USB link connected to the USB connection module 9, the microcontroller 11 infers that the computer 23 is in a high-power operating state and closes the switch 8 to enable power to the secondary sockets 6. Conversely, if the microcontroller 11 detects that there is no USB supply voltage provided on the USB link connected to the USB connection module 9, the microcontroller 11 infers that the computer 23 is in a low-power operating state and opens the switch 8 to disable power to the secondary sockets 6.
Not every computer implements USB supply voltages in the same way. For example, some computers may not disable the USB supply voltage when entering a low-power state. Further, it is generally necessary to enable the secondary sockets 6 when the computer 23 is booting. In order to enable the secondary sockets 6 when operating in the power-sensing mode it is necessary for the computer 23 to enable the USB supply voltage. If the computer 23 does not enable the USB supply voltage when the computer 23 is booting, the microcontroller 11 will not enable the secondary sockets. For these reasons, the power control device 1 preferably operates in the intelligent-sensing mode which is arranged to mitigate these issues. * *
When the power control device I is operating in the intelligent-sensing mode, the *:.:.. microcontroller 11 infers information about the operating state of the computer 23 based upon the state of the USB link between the computer and the USB * S. connection module 5. Based upon the USB link state, the power control device 1 may be in one of seven states: DETACHED_STATE 0: the internal bus driver of the microcontroller 11 has been disabled and is not electrically attached to the USB bus of the computer 23; ATTACHED_STATE 1: the internal bus driver microcontroller 11 has been enabled and electrically attached to the USB bus of the computer 23; POWERED_STATE 2: the bus is receiving +5v from the computer 23; DEFAULT_STATE 3: data has been sent to the microcontroller 11, but the computer 23 has not assigned a unique device address to the microcontroller 11. The microcontroller 11 can respond to data (e.g. requests) sent to the default address 0; ADR_PENDING_STATE 4: the microcontroller 11 is waiting for the computer 23 to assign it an address; ADDRESS_STATE 5: the microcontroller 11 has been assigned an address but endpoints and interrupts have yet to be configured; and CONFIGURED_STATE 6: the link between the microcontroller 11 and the computer 23 is fully initialized.
In the intelligent-sensing mode, the microcontroller 11 infers that the computer 23 is in a high-power operating state upon receiving data from the computer 23 via the USB link. For example, as the computer 23 is booting up (for example after being switched on or restarted), setup software (such as BIOS software on a conventional PC) running on computer 23 searches for bootable USB human interface devices, such as USB keyboards and USB mice. This may be done by sending an enumeration request to all connected USB devices. Upon receiving such a request, the microcontroller 11 infers that the computer is in a high-powered state, and therefore enables the secondary sockets 6. The computer 23 further attempts to enumerate USB devices when the computer's operating system loads. * ** * * * * S.
The computer 23 has device control software that operates to communicate data relating to the operational state of the computer 23 to the microcontroller 11 via * S. * S S the USB cable 29. Figure 5 schematically illustrates components of the device control software at a high level. It can be seen that the device control software comprises a service component 35 and a graphical user interface (GUI) component 36.
The service component 35 is preferably designed to load as soon as possible (i.e. before standard user applications) arid to run in the background as long as the operating system is running, while the GUI component 36 is a standard user application. Preferably, the operating system of the computer 23 is a Microsoft Windows operating system and the service component is preferably a Windows service. By registering the service component 35 with the Windows operating system the service component 35 will be started as early as possible when the computer 23 is turned on. Windows services are managed by the Windows Service Control Manager (SCM). During system boot the SCM automatically starts all services which are designated as auto-start services. By registering the service component 35 as an auto-start service it is ensured that the service component 35 is loaded as soon as possible.
In alternative embodiments the service component 35 is a Unix daemon where the device control software is intended to be run on a Unix based operating system such as Linux.
The service component 35 communicates with the power control device 1 via the USB cable 29. The GUI component 36 does not communicate with the power control device 1 directly, but instead communicates with the service component 26 by way of any suitable communication protocol, for example the Transport Control Protocol (TCP).
*: Configurations of the GUI component 36 and the service component 35 are now briefly described with reference to Figures 6 and 7 respectively. The * *S* configurations shown in Figures 6 and 7 are designed for computers running a **.:*0 Microsoft Windows operating system. * ** * * *
Referring to Figure 6, it can be seen that the GUI component 36 comprises a main thread 40. Graphics handling components 41 communicate with the main thread 40. The graphics handling components 41 are provided using the Windows Presentation Foundation (WPF). The graphics handling components 41 comprise a WPFControls component 42 which defines objects used within the provided GUI. A WPFControlEventHandlers component 43 communicates with both the WPFControls component 42 and the main thread 40 so as to handle events associated with objects defined by the WPFControls component 42. A WPFLayerManager component 44 allows the GUI to comprise a number of layers. The WPFLayerManager component 44 communicates with the main thread 40 and the WPFControls component 42 to provide such layers in the GUI.
A hardware information discovery component 45 operates to obtain information about the specific hardware of the computer 23 such as processor type, graphics card parameters and so on, and to communicate this information to the main thread 40. A system tray controller component 46 allows the GUI component 36 to be accessed from the system tray provided by the operating system, and communicates with the main thread 40.
A security controller component 47 provides functionality allowing users to password protect the GUI component as is described in more detail below. The security controller component 47 communicates with the main thread 40 and the WPFLayerManager 44 to provide such security functionality.
A power policy factory 48 is operable to create power policy objects. Such power policy objects can be used to configure a power policy controller 49. The power policy controller 49 is configured to use an application programmer's interface (API) provided by the operating system to control the operating system's power policy. The nature of the objects created by the power policy factory 48 is .. determined by the operating system running on the computer. More particularly, in the described embodiment, the power policy factory 48 is able to create objects suitable for use in the Windows XP and Windows Vista operating systems.
Where the GUI component is running on a computer running the Widows XP * operating system, the power policy factory 48 creates an XP object 50. Similarly, where the GUI component is running on a computer running the Widows Vista operating system the power policy factory 48 creates a Vista object 51.
The GUI component 36 further comprises data writing components 52. The data writing components comprise a serialising settings manager 53 which obtains settings data from the main thread 40 and writes such settings data to non-volatile storage in the form of a disc 54. The serialising settings manager 53 also communicates with an observable datasources component 55 which is adapted to obtain settings information from the displayed GUI and provide such settings information to the serialising settings manager 53.
A mutual exclusion component 56 operates to ensure that only one power control device 1 is used. Communication components 57 use the Windows Communication Foundation to facilitate communication with the service component 35. The communication components 57 comprise a communications manager 58, a proxy component 59 and a channel component 60. The channel component 60 is configured to arrange communication between the GUI component 36 and the service component 35 over a TCP channel as indicated above.
Referring to Figure 7, components making up the service component 35 are schematically illustrated. A main thread 65 is provided to start up the service component 35 and run some of its operations. A service provider thread 66 manages operation of other operations of the service component 35. The service provider thread 66 communicates with a WCFHost component 67 which allows communication with the GUI component 36. More particularly, the WCFHost component 67 manages data transmissions between the service component 35 and the GUI component 36 via the TCP connection discussed above. *.b * * * ** o
USB components 68 manage communication between the service component 35 and the power control device I using the USB protocol. A state machine component 69 and a wrapper component 70 are provided for use in communicating with the power control device 1. * e*
A timing and sequence manager component 71 controls the timing of the service component 35. A settings and data serialiser component 72 manages the processing of data such that data is provided by the service component 35 to the GUI component 36 for storage.
The main thread 65 receives power events generated by the windows operating system and is arranged to process such events. The main thread 65 is further configured to receive start up and other events 74 from the operating system.
Referring to Figure 8, the service component 35 is arranged to send a number of messages 75a -78b to the power control device 1. Messages 75a, 75b are command messages to cause the power control device I to respectively enable and disable the power to the secondary sockets 6. Messages 76a, 76b are command messages to cause the power control device 1 to respectively enable and disable the LED 10. Messages 77a, 77b, 78a, 78b alter the values of control flags stored in non-volatile RAM ha within the microcontroller 11. Messages 77a, 77b set a PowerSense flag to a value of enabled' or disabled' respectively.
When the PowerSense flag is set to enabled', the power control device I uses the power-sensing mode described above. When the PowerSense flag is set to disabled', the power control device I uses the intelligent-sensing mode, again described above. Messages 78a, 78b set an Override flag to a value of enabled' or disabled' respectively. While the Override flag is set to enabled', the microcontroller 11 enables power to the secondary sockets 6 regardless of the operational state of the computer 23. The PowerSense and Override flags can be implemented in any suitable way, for example as a Boolean variable or a single bit variable wherein a value of I corresponds to an enabled' value and a value 0 corresponds to a disabled' value. Messages 75a -78b are sent from the service S..
.. : component 35 to the power control device I at regular intervals (for example ", each second) as a collection of bits. Upon receiving a message the power control device I sends a reply 79 to the computer 23 containing updated information S..... regarding the state of the power control device I. Message 79 comprises information regarding the LED status, the status of the secondary sockets 6, the override status and the detection mode currently in use.
A user of the computer 23 can control the operation of the device 1 by controlling the messages that are sent by the service component 35 of the device control software by interacting with the GUI component 36 of the device control software.
Figure 9 shows a main screen 80 of the GUI component 36. It can be seen that the main screen 80 is split into four sections, a power usage display 81, a power settings display 82, an energy savings display 83 and a menu bar 84. The power usage display 81 displays a list of standard components of the computer 23. The standard components displayed are display device, processor, graphics card, and hard disk drive. Information about each component is obtained from the operating system, using the hardware information discovery component 45 of the GUI component 36. Next to each listed component there is shown an estimated power usage in Watts for that component. Each estimated power usage for a particular component is based on an average percentage of the total power used by the computer 23 for that particular type of component. For example, the power usage values may be based on the listed components consuming following average percentages of the total power: Monitor = 40% Processor = 35% Hard Disk Drives = 15% Graphics Card = 10% The total power used by the computer 23 can be either a nominal value stored by the GUI component 36, or, alternatively, can be based upon user input as described in further detail below. Further, in alternative embodiments, the power usage values of particular components may be obtained from a database of S...
: known values of the power usage of that component. S... * . *
The main screen 80 provides a custom devices link 91 in the power usage display 81. Selection of the custom devices link 91 causes a custom devices screen 90 (shown in Figure 10) to be displayed. * S.
The custom devices screen 90 allows a user to add custom devices and corresponding power usage information to be shown in the power usage display 81. Custom devices are intended to correspond to the peripheral devices 28a, 28b, 28c that a user plugs into the secondary sockets 6 of the power control device 1. To add a custom device a user enters a name for the custom device in a name field 92 and a corresponding power value in Watts in a wattage field 93.
The device can then be added to a pool of custom devices 94 using an add new' button 95. When a custom device is being used, i.e. it is plugged into a secondary socket 6, it can be added to an active devices list 96 by selecting the device from the device pool list 94 and selecting an add' button 97. Similarly, when a custom device is not being used, a user can remove the custom device from the active devices list 96 by selecting the custom device in the active devices list 96 and removing it using a remove' button 98. A custom device can be deleted from the stored pool of custom devices (for example if a user purchases a new peripheral device) by selecting the relevant device from the custom device pool lint 94 and using a delete selected' button 99.
Custom devices in the active custom devices list 96 are shown in the power usage display 81 (Figure 9) collectively, under the heading custom devices. That is, if two custom devices are active, each with a power usage of 10 Watts, the custom devices item in the power usage display 81 will display a power usage of Watts. By adding the power usage details of custom devices plugged into the secondary sockets 6, the system can monitor how much power has been saved by shutting off the secondary sockets 6, as described in more detail below.
There is a special custom device called PC'. The PC' custom device allows a user to alter the total amount of power that is used to calculate the power usage of components of the computer 23 as discussed above. That is, if the PC' custom device is active, the power information shown for each standard device in *:*::* the power usage display 41 will be a percentage of the power usage of the PC' custom device.
::::. Referring again to Figure 9, the computer power settings display 82 allows a user to change the power scheme of the computer 23. In general terms, a computer's power scheme controls when the computer enters various low-power states, turns off hard disks and turns off monitors. Figure 9 shows three standard power settings that a user can choose from, a Lean' power setting, a Balanced' power setting and an Aggressive' power setting along with an option to set a custom power setting. Selection of the option to set a custom power setting causes display of the screen shown in Figure 9A. It can be seen that the screen of Figure 9A allows specification times which can be used to define power settings.
The power policy controller 49 described with reference to Figure 6 alters the power scheme of the computer 23 in response to API calls made by the GUI component 36. Such API calls are made in response to changes made in the power settings display 82. The power scheme is set by supplying various time limit variables, such as a monitor off time, a hard disk off time and a standby mode time. The operating system monitors these time limit variables and if a particular time is exceeded, takes an appropriate action. For example, if the monitor off time is exceeded, the operating system turns the monitor of the computer 23 off. Each variable is reset by the operating system when a user input is detected.
The time limit variables are maintained by the operating system and are not generally accessible by programs external to the operating system. For this reason, a set of corresponding time limit variables is maintained by the service component 35 which correspond to the time limit variables supplied to the operating system. Particularly, a SystemStandbyDelay variable specifies a time after which the computer 23 will enter a standby mode. A MonitorOffDelay variable specifies a time after which the monitor of computer 23 is powered down.
A HarddiskOffDelay variable specifies a time after which the hard disk of the computer 23 is powered down. An InactivityDelay variable specifies a time limit *S..
for how long the computer 23 can be inactive after which the secondary sockets 23 are disabled. * **
The service component 35 periodically updates a LastUserlnput variable, which ::. stores the time since the last user activity. This information is obtained using appropriate API calls to the operating system, such as the Lastlnputlnfo function provided by the Windows operating system. The Lastlnputlnfo function returns a structure containing the value of the tick count (time in milliseconds that have elapsed since the operating system of the computer 23 was started) when the last input event was received. This can be used to determine the time since the last user input by subtracting the value of the tick count when the last input was received from the current value of the tick count.
The time since the last user input, used in the manner described above by the service component 35, is either obtained by the service component 35 or the GUI component 36, depending upon the operating system of the computer 23. More particularly, if the operating system is Windows XP, the service component 35 obtains the time since last user input, whilst if the operating system is Windows Vista, the GUI component 36 obtains the time since the last user input.
The time since the last user input is used to set the value of an IdleTime variable which keeps track of the time the computer 23 has been idle. The ldleTime variable is compared with power control data limits to determine which limits have been exceeded. If a particular limit has been exceeded, an appropriate power state flag is set. This is now described in more detail with reference to Figure 11.
At step S60 it is determined if the SystemStandbyDelay time has been exceeded.
If the SystemStandbyDelay time has been exceeded a Standbylimeout flag is set to a value true' at step S61. If it is determined at step S60 that the SystemStandbyDelay has not been exceeded, the StandbyTimeout flag is set to a value false' at step S62. Processing then passes to step S63.
At step S63 it is determined if the MonitorOffOelay time has been exceeded. If the MonitorOffOelay time has been exceeded a TurnOffMonitorTimeout flag is set to a value true' at step S64. If it is determined at step S63 that the TurnOffMonitorTimeout has not been exceeded, the TurnOffMonitorTimeout flag is set to a value false' step S65. Processing then passes to step S66.
:.:::. At step S66 it is determined if the HarddiskOffDelay time has been exceeded. If the HarddiskOffDelay time has been exceeded, a TurnOffHarddisksTimeout flag is set to a value true' at step S67. If it is determined at step S66 that the HarddiskOffDelay has not been exceeded, the TurnOffHarddisksTimeout flag is set to a value false' step S68.
At step S69, it is determined if the InactivityDelay time has been exceeded. If the InactivityDelay time has been exceeded, an Idlelimeout flag is set to true' at step S70. If it is determined at step S69 that the InactivityDelay has not been exceeded, the Idlelimeout flag is set to false' at step S71.
The power state flags are used to determine a power saving level to be activated.
As the power state flags are based upon time limit variables which correspond to the operating systems power scheme time limit variables, the power saving level corresponds to the current power saving level used by the operating system. The power saving level is used to determine whether power to the secondary sockets 6 should be enabled or disabled. The process of determining the correct power saving level is now described with reference to Figure 12.
At step S75 it is determined if the StandbyTimeout flag is set to true'. If the Standbylimeout flag is set to true' a power saving level (6)is activated at step S76. If on the other hand, it is determined at step S75 that the StandbyTimeout flag is not set to true', processing passes directly from step S75 to step S77.
At step S77 it is determined if the IdleTimeout and the TurnOffHarddisksTimeout flags are both set to true'. If both the IdleTimeout and the TurnOffHarddisksTimeout flags are set to true', a power saving level (5) is activated at step S78. If on the other hand, it is determined at step S77 that the Idlelimeout and the TurnOffHarddisksTimeout flags are not both set to true' processing passes directly from step S77 to step S79. * *
*** At step S79 it is determined whether the Idlelimeout flag is set to true'. If the Idlelimeout flag is set to true', a power saving level (4) is activated at step S80.
If on the other hand it is determined at step S79 that the IdleTimeout flag is not * *.
set to false', processing passes directly from step S79 to step S81.
At step S81 it is determined whether the TurnOffHarddisksTimeout and the TurnOffMonitorTimeout flags are both set to tru&. If both the TurnOffHarddisksTimeout and the TurnOffMonitorTimeout flags are set to true' a power saving level (3) is activated at step S82. If on the other hand, it is determined at step S81 that the TurnOffHarddisksTimeout and the TurnOffMonitorTimeout flags are not both set to true', processing passes directly from step S81 to step S83.
At step S83 it is determined whether the TurnOffMonitorlimeout flag is set to true'. If the TurnOffMonitorlimeout flag is set to true', a power saving level (2) is activated at step S84. If on the other hand, it is determined at step S83 that the TurnOffMonitorTimeout flag is set to false', processing passes straight from step S83 to step S85.
At step S85 it is determined whether the TurnOffHarddisksTimeout flag is set to true'. If the TurnOffHarddisksTimeout flag is set to true', a power saving level (1) is activated at step S86. If on the other hand it is determined at step S85 that the TurnOffHarddisksTimeout flag is set to false' then none of the power state flags are activated and a power saving level (0) is activated at step S87.
The current power saving level is used to determine whether the secondary sockets 6 should be enabled or disabled. This is now described with reference to Figure 13.
At step S90 it is determined whether the current power saving level is set to one of power saving levels 4, 5 or 6. If the current power level is one of power saving levels 4, 5 or 6 this indicates that the secondary sockets should be disabled and processing passes to step S91. At step S91 it is determined if power is currently * S *S..
being supplied to the secondary sockets 6. The current socket state is known *** from the last message 79 received from the power control device 1. If the secondary sockets 6 are currently enabled, the secondary sockets 6 are disabled at step S92. If, on the other hand, it is determined at step S91 that the secondary * sockets 6 are currently disabled, no further action is taken and processing ends at step S93.
If it is determined at step S90 that the power level is not one of the power levels 4, 5 or 6, the current power level must be one of 0, 1, 2 or 3 such that the secondary sockets should be enabled, and processing passes to step S94. At step S94 it is determined if the secondary sockets are currently enabled. If the secondary sockets are currently enabled, no further action needs to be taken and processing ends at step S93. If, on the other hand it is determined at step S94 that they are currently disabled, the secondary sockets 6 are enabled at step S95.
If the current power saving level is power saving level (6), the computer 23 should be in a standby mode. If the computer is not in a standby mode, the service component forces the computer 23 to enter the standby mode using appropriate API calls to the operating system.
Referring back to Figure 9, the energy savings display 83 has three selectable icons, a power saved icon 100 showing an image of a light bulb, an oil saved icon 101 showing an image of an oil drum and a carbon dioxide (C02) saved icon 102 showing an image of a tree. A user may select an icon 100, 1011 102 to be shown how much of a particular resource the user has saved. For example, Figure 9 shows the carbon dioxide (C02) saved icon 102 selected, and a message 103 indicating that the user has saved 1.8883kg of carbon dioxide.
The energy savings values displayed in the energy savings display 83 are calculated using the power usage values (displayed in power usage display 81 and described above) together with timer variables maintained by the service component 35 which record how long the computer has been in various low-power states. For example, the amount of power saved by shutting off the secondary sockets 6 into which various custom devices are plugged is given by *:*::* the length of time (in hours) for which the secondary sockets 6 are disabled, multiplied by the power usage of the custom devices. This provides values in terms of KWh. Values in KWh can be converted into values displayed in the :.:. energy savings display 83. More particularly, a quantity of oil saved can be determined by multiplying the power saved in KWh by a factor of 0.094. A quantity of carbon dioxide (C02) saved can be determined by multiplying the power saved in KWh by a factor of 0.3.
Menu bar 84 provides four menu items: a password protection menu item 104, an advanced options menu item 105, an about menu item 106 and a help and support menu item 107. The password protection menu item 104 allows users to password protect both the custom devices screen 90, and an advanced options screen. The advanced options screen is shown in Figure 14 and is accessed using the advanced options menu item 105. While a password is in force, a user cannot alter the settings in the custom devices screen 90 or the advanced options screen without supplying a correct password.
Selection of the advanced options menu item 105 takes the user to the advanced options screen 110 shown in Figure 14.
Figure 14 shows the advanced settings screen 110. The advanced settings screen 110 contains three pairs of radio buttons usable to control the operation of the power control device 1.
A first pair of radio buttons 111, 112 control the detection mode of the device. An lntellisense' radio button 111 allows a user to cause the power control device 1 to operate in the intelligent-sensing mode described above, while a PowerSense' radio button 112 causes the power control device I to operate in the power-sensing mode. Selection the radio button 111 causes the service component 35 to send a message 77b to the microcontroller 11 as described with reference to Figure 8. Similarly, selection of the radio button 112 causes the service *:::: component to send the message 77a to the microcontroller 11. *S*.
Two radio buttons 113, 114 determine whether operation of the secondary ** sockets is based upon the operational status of the computer 23. Selection of an Automatic' radio button 113 causes the operation of the secondary sockets 6 to be determined by the operational status of the computer 23. An Always on' radio :,:::. button 114 causes the secondary sockets 6 to be permanently enabled regardless of the operational status of the computer. Selection of one of the radio buttons 113, 114 respectively causes messages 78a, 78b to be sent to the microcontroller 11 as described with reference to Figure 8.
A third pair of radio buttons 115, 116 allow a user to respectively enable or disable an automatic wakeup feature. The automatic wakeup feature causes the computer 23 to come out of a low-power state and into a high-power state at a particular time specified by a clock 117. Controls 117a are provided for adjusting the clock 117.
A text box 118 allows a user to input names of one or more processes. The software is adapted to determine whether any of the processes specified in the text box 118 are running at a particular time, and if this is the case, the secondary sockets remain powered and the computer does not enter a standby state.
Messages sent as described above are sent when user input into the advanced settings screen 110 is confirmed by use of a OK' button 119. If a Cancel' button is selected messages are not sent in response to changes made in the advanced settings screen 110. That is, where reference is made to a message being sent in response to selection of a particular radio button, such a message is sent only after selection of the OK' button 119.
Referring back to Figure 9, selection of the about menu item 106 causes information concerning the power control device and the software to be displayed. For example software and firmware version numbers may be displayed. Selection of the help and support menu item 107 causes display of help and support information concerning the power control device I and the *:::: device control software. **.. * S Seas
Figure 15 is a flowchart showing processing carried out by the computer 23 and ** the power control device 1 as part of a boot-up sequence of the computer 23 in a preferred embodiment of the present invention.
:.::. At step Si the computer is switched on. At step S2, the computer 23 runs BIOS code to initialize hardware components connected to the computer 23. The BIOS code checks for bootable human interface device on the USB buses associated with the computer 23 by requesting that each connected USB device send its descriptors to the computer 23, where such descriptors can be processed by the BIOS.
At step S3 the power control device 1 responds to the BIOS request by sending its descriptors. Receiving the request from the BIOS indicates to the power control device I that the computer 23 has been switched on and, as such, at step S4 the microcontroller 11 enables the secondary sockets 6. At step S5 the operating system of the computer 18 loads. At step S6 the operating system enumerates and de-enumerates the USB devices connected to the computer 23.
This is necessary so that programs running on the computer 23 can communicate with the connected USB devices. At step S7 the operating system loads the service component 35. Once loaded, at step S8 the service component begins to communicate with and takes over the control of the power control device 1.
The operation of the firmware and device control software of the power control device 1 is now described in more detail with reference to Figures 16, 17, 18 and 19. Together, Figures 16, 17, 18 and 19 describe a processing loop performed by the microcontroller 11. In addition to the control flags described above with reference to Figure 8, the firmware of the power control device 1 makes use of a number of other flags stored in the non-volatile RAM 11 a of the microcontroller 11 which store information regarding the operating state of the power control device 1.
Referring now to Figure 16, at step SlO it is determined whether the power control device I is minimally configured. For the purposes of step SlO, the power * * **S.
control device 1 is minimally configured if it is in DEFAULT_STATE (3) as defined *** above. * S.
If it is determined at step SlO that the device is minimally configured, a minimally configured flag is set at step Sli and processing passes to step S13. If, on the other hand, it is determined at step SlO that the power control device 1 is not minimally configured, the minimally configured flag is cleared at step S12 and processing passes to step S13. At step S13 it is determined whether the override flag is set. If it is determined that the override flag is set, this indicates that the secondary sockets 6 should be enabled regardless of the operating state of the computer 23 and as such the secondary sockets are enabled at step S14. After the secondary sockets are enabled, processing passes to step S15. At step S15 the microcontroller checks for incoming messages from the service component running on the computer 23. Processing of step S15 is described in further detail below with reference to Figure 18. If data has been received processing passes to step S16, the processing of which is described in further detail with reference to Figure 19. If no data has been received, processing passes from step S15 back to step Sb.
If at step Si 3 it is determined that the override flag is not set, processing passes to step S17 where it is determined if the power-sensing flag is set. If the power-sensing flag is set processing passes to step Si8. At step S18 it is determined whether the fully configured flag is set. If the fully configured flag is set, then operation of the secondary sockets will be controlled by software running on the computer 23. As such no further action is required and processing passes to step S15 to check for messages from the service component 35 running on the computer 23. If at step S18 it is determined that the fully configured flag is not set, processing passes to step S19. At step S19 it is determined whether the microcontroller 11 is receiving power via the USB socket 9 from the computer 23 If the microcontroller ii is receiving power from the computer 23 via the USB socket 9, the microcontroller 11 infers that the computer 23 is operating in a high-power state and that the secondary sockets 6 should be enabled. The secondary sockets 6 are therefore enabled at step S20. From step S20 processing passes to step S15 to check for incoming reports from the computer 23 as described above. If at step S19 it is determined that the microcontroller 11 is not receiving power from the computer 23 via the USB socket 9, the microcontroller infers that the computer is operating in a low-power state and therefore the secondary sockets 6 should be disabled. The secondary sockets 6 are therefore disabled at :.. step S21. From step S21, processing passes to step S15.
If at step S17 it is detected that the power-sensing flag is not set, processing passes to step S22. At step S22, intelligent sensing processing is performed. The intelligent sensing processing is described in more detail with reference to Figure 17 below. From step S22, processing passes to step S15 as described above.
Referring now to Figure 17. At step S23 it is determined whether data can be transmitted between the computer 23 and the microcontroller 11 via the USB socket 9 by determining whether an able to send flag is set. The able to send flag indicates whether the power control device 1 is able to send data to the computer 23. The able to send flag is set or cleared when the power control device 1 attempts to send a report to the computer 23 as is described in more detail below with reference to Figure 19.lf the able to send flag is set, processing passes directly from step S23 to step S15. If however this is not the case processing passes from step S23 to step S24.
At step S24 it is determined whether the power control device I is minimally configured using the minimally configured flag described above. If it is determined that the power control device 1 is not minimally configured, processing passes to step S25. At step S25 it is determined whether the PC booting flag is set. . If it is determined that the PC booting flag is not set, processing passes to step S26 where the secondary sockets 6 are disabled. From step S26 processing passes to step S27 where the PC booting flag is set. From step S27, processing passes to step S15 (Figure 16). It can be noted that the secondary sockets are disabled at step S26 only if the power control device 1 is not minimally configured and the PC is not booting, and if the power control device 1 is unable to send data to the computer 23. S's * S S
If at step S24 it is determined that the power control device I is minimally *5..
configured, processing passes to step S28 where it is determined if the booting flag is set. If it is determined that the booting flag is set, this indicates that the computer 23 is in the process of booting, and that the secondary sockets 6 should therefore be enabled. The secondary sockets 6 are enabled at step S29. * 5S
From step S29 processing passes to step S30. If on the other hand it is determined at step S28 that the PC is not booting, processing passes directly from step S28 to step S30, bypassing step S29.
At step S30 it is determined whether the power control device 1 is fully configured. The power control device 1 is fully configured when it is in the CONFIGURED STATE (6) described above. The power control device 1 will be fully configured after the operating system of the computer 23 has finished booting and has fully enumerated the USB link between the power control device 1 and the computer 23 so that data can be sent via the USB cable 24. If it is determined that the power control device 1 is not fully configured, processing passes to step S15 (Figure 16). If on the other hand it is determined at step S30 that the power control device I is fully configured, the booting flag is cleared at step S31, as the computer 23 has now finished booting. From step S31 processing passes to step S15 (Figure 16).
Processing carried out at step S15 (Figure 16) is now described in further detail with reference to Figure 18. At step 533 it is determined whether there is data waiting to be received from the computer 23. If it is determined that there is no data received from the computer 23 waiting to be processed, processing passes back to step SlO (Figure 16). If on the other hand it is determined that data is waiting to be processed, processing passes to step S34. At step S34 it is determined whether the received data contains an LED command message 76a, 76b. If it is determined that the received data does contain an LED command message, the nature of the command is determined at step S35. If it is determined that the received data contains a command 76a to enable the LED, the LED is enabled at step S36. If on the other hand it is determined at step S35 *:::: that the received data contains a command 76b to disable the LED, the LED is disabled at step S37. Processing passes from step S36 or step S37to step S38. * * a
If it is determined at step S34 that the received data does not contain an LED command, processing passes to step S38. At step S38 it is determined whether the received data contains a socket command 75a, 75b. If the received data * a.
does contain a socket command, the nature of the socket command is determined at step S39. If it is determined that the received data contains a command 75a to enable the secondary sockets 6, the secondary sockets are enabled at step S40. If on the other hand, the received data contains a command 75b to disable the secondary sockets 6, the secondary sockets are disabled at step S41. From steps S39 and S41 processing passes to step S42.
If, at step S38, it is determined that the received data does not contain a socket command, processing passes straight to step S42. At step S42 it is determined whether the received data contains a command 77a, 77b to alter the detection mode (i.e. power-sensing or intelligent-sensing). If the received data does contain a command to alter the detection mode, the nature of the command is determined at step S43. If the received data contains a command 77a to enable the power-sensing mode, the power-sensing flag is set at step S44. If on the other hand, the received data contains a command 77b to disable the power-sensing mode and enable intelligent-sensing, the power-sensing flag is cleared at step S45. From steps S44 and S45 processing passes to step S46.
If, at step S42, it is determined that the received data does not contain a command 77a, 77b to alter the detection mode, processing passes directly to step S46.
At step S46, it is determined whether the received data contains a command 78a, 78b to activate or deactivate the override mode. If the received data does contain a command to activate or deactivate the override mode, the nature of the command is determined at step S47. If the received data contains a command 78a to enable the override mode, the override flag is set at step S48. If on the other hand, the received data contains a command 78b to disable the override mode, the override flag is cleared at step S49. From step S48 and S49, processing passes to step S16 (Figure 16). If, at step S46, it is determined that the received data does not contain a command to alter the override mode, processing passes directly to step S16 (Figure 16). * S * *1
Reports are sent from the power control device I to the computer 23 at approximately regular intervals (for example every minute). A send time counter keeps track of the time since the last report was sent. Referring now to Figure 19, at step S50 it is determined whether the send time has expired. If the send time has expired, then processing passes to step S51. At step S51, the send flag is set to indicate that there is a report to send and processing passes to step S52.
At step S52, the data that will be sent in the report is prepared and processing passes to step S53.
If on the other hand at step S50 it is determined that the send time has not expired, processing passes directly to step S53. At step S53 it is determined whether the send flag has been set. If the send flag has not been set, processing passes back to step SlO (Figure 16). If on the other hand the send flag has been set, the microcontroller 11 attempts to send the data to the computer 23 via the USB cable 24 at step S54. From step S54, processing passes to step S55. At step S55 it is determined whether the data was sent successfully. If the data was not sent successfully, processing passes to step S56. At step S56 it is determined whether the microcontroller 11 has exceeded a predetermined maximum number of attempts to send the report. The maximum number of attempts may be any suitable number, for example ten. The check of step S56 is effectively based upon a comparison of the number of times the no' branch from step S55 has been followed with a predetermined number. If the maximum number of attempts has not been exceeded, processing passes back to step S54 and the microcontroller 11 retries to send the report.
If, on the other hand, at step S56 it is determined that the maximum number of attempts has been exceeded, the sending of the report fails and processing passes to step S58. At step S58, the send fail counter is incremented and processing passes to step S60a where the send flag is cleared.
If at step S55, it is determined that the report was sent successfully, processing passes to step S57. At step S57 the able to send flag is set, indicating that the *L S power control module I was able to send data to the computer 23. Processing then passes to step S59 where the fail counter is reset. From step S59 processing passes to step S60a where the send flag is cleared. From step S60a processing passes to step S61a. * S. Sc. I..
At step S61a it is determined whether the number of failed attempts to send the report exceeds the maximum number of failed attempts allowed. If it is determined that the number of failed attempts exceeds the maximum number allowed, processing passes to step S62a where the able to send flag is cleared.
From step S62a, processing passes to step S63a. A bug in some operating systems, results in the operating system sometimes refusing to communicate with some USB devices after the operating system has exited a standby state. It is therefore possible that a report from the power control device I will exceed the maximum number of failed attempts after the operating system exits a standby state. Steps S63a and S64a are included to address this issue. At step S63a the power control device 1 is logically detached from the computer 23 by performing a soft-detach. Performing a soft-detach causes the operating system to re-enumerate the power control device 1, thereby re-establishing communication with the computer 23. From step S63a, processing passes to step S64a where the send fail counter is reset. Processing then passes back to step Sb.
The description set out above with reference to Figures 16 to 19 has described the operation of the power control device 1. It will be appreciated that these figures taken together define a processing which is carried out repeatedly while the power control device 1 is in use such that the microcontroller lb can properly determine whether the secondary sockets 6 should be enabled.
It will further be appreciated that the operation of the power control device 1 may comprise further operations to determine if the secondary sockets 6 should be enabled. For example, in alternative embodiments, the power control device 1 may monitor communication between the computer 23 and the peripheral devices *:::: 28a, 28b, 28c. *...
It will be appreciated that whilst the above embodiments have been described with reference to USB connections, other interface architectures would be suitable for use with one or more of embodiments of the present invention.
, The embodiment of the invention described above uses a combination of * *** processing carried out by the computer 23 and processing carried out within the power control device 1. It will be appreciated that in alternative embodiments of the invention software need not be provided on the computer 23 to control operation of the power control device 1. That is, many of the techniques described herein can be run solely within the power control device 1, such that coupling the power control device I to the computer 23 is sufficient to allow proper operation of the power control device 1 without any need for processing to be carried out by the computer 23 to control operation of the power control device 1.
Further, while the above embodiments have been described with reference to a primary socket by which the host computer is powered, it will be appreciated that it is not essential for the operation of the present invention that the host computer is powered via the power control device. Rather, it is only necessary that the host computer is in communication with the power control device via USB or another suitable interface architecture.
Further modifications and applications of the present invention will be readily apparent to the appropriately skilled person from the teaching herein, without departing form the scope of the appended claims. For example, in embodiments of the invention which make use of a GUI component and service component (as described with reference to Figure 5 to 7), functionality can be distributed between the GUI component and service component in different ways. For example the Hardware Information Discovery component 45 (Figure 6) may in some embodiments be provided by the service component rather than the GUI component.
In some embodiments of the invention, the software running on the computer 23 may prevent one or more attached hardware devices from causing the computer 23 to leave a standby state. * ** * * * * ** * ** * * *
Claims (52)
- Claims 1. A power control device, comprising: an input connection for connection to a source of power; at least one output connection; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with a primary device; wherein the controller is adapted to: send a request to the primary device, the request requiring a response; and disable the connection of the at least one output connection to the input connection if a response to the request is not received from the primary device.
- 2. A power control device according to claim 1, wherein the controller is adapted to: send a plurality of requests to the primary device; and disable the connection of the at least one output connection to the input connection unless a response to at least one of the plurality of requests is received from the primary device.
- 3. A power control device according to claim 2, wherein said plurality of requests comprises an ordered plurality of requests, and a request is sent to the primary device if but only if a response to a preceding request is not received.
- 4. A power control device according to claim 2 or 3, wherein said plurality of requests comprises an ordered plurality of requests made at predetermined time intervals. * * S...*:*::*
- 5. A power control device according to claim 2, 3 or 4, wherein said plurality of requests comprises a predetermined number of requests.::::.
- 6. A power control device according to any preceding claim, wherein the controller is further adapted to receive data from the primary device indicating an operating state of the primary device, and to enable or disable the connection of the at least one output connection to the input connection based upon the received data.
- 7. A power control device according to claim 6, wherein the primary device is arranged to provide a signal to the controller to disable the connection of the at least one output connection to the input connection when a predetermined time period has elapsed since a last predetermined event occurred at the primary device.
- 8. A power control device according to claim 7, wherein said predetermined event is a user input event.
- 9. A power control device according to claim 6, 7 or 8, wherein the received data is a command to either enable or disable power to the at least one output connection.
- 10. A power control device according to any preceding claim, wherein: the controller is adapted to communicate with the primary device via a USB link connecting the controller to the primary device.
- 11. A power control device according to claim 10, further comprising a USB socket adapted to receive a USB cable arranged to provide said USB link to said primary device.
- 12. A power control device according to claim 10 or 11, wherein the controller is further adapted to enable the connection of the at least one output connection to the input connection in response to detection of a USB supply voltage on the USB link. * S. *. .*
- 13. A power control device according to any preceding claim, further comprising connections between the input connection and the controller for ::5:. supplying power to the controller.
- 14. A power control device according to any preceding claim, wherein the controller is a programmable integrated controller.
- 15. A power control device according to any preceding claim, further comprising at least one further output connection connected to the first input connection and adapted for electrical connection with the primary device.
- 16. A power control device according to claim 13, wherein said further output connection is fixedly connected to said input connection.
- 17. A power control device according to any preceding claim, wherein the primary device is a personal computer.
- 18. A method of operating a power control device, the power control device comprising: an input connection for connection to a source of power; at least one output connection; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with a primary device; wherein the method comprises: sending a request to the primary device, the request requiring a response; and disabling the connection of the at least one output connection to the input connection if a response to the request is not received from the primary device.*::::
- 19. A method according to claim 18, wherein disabling the connection comprises disabling the connection if a response to the request is not received from the primary device within a predetermined time period. * *. * * a * **
- 20. A computer program comprising computer readable instructions arranged to control a processor to carry out a method according to claim 18 or 19. * a. * * . S..
- 21. A computer readable medium carrying a computer program according to claim 20.
- 22. A power control device, comprising: an input connection for connection to a source of power; at least one output connection; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with a primary device; wherein the controller is adapted to enable connection of the at least one output connection to the input connection in response to receipt of a first enumeration request from the primary device while the primary device is booting.
- 23. A power control device according to claim 22, wherein said enumeration request is a request for data relating to devices connected to said primary device.
- 24. A power control device according to claim 23, wherein said enumeration request is a request for descriptor data relating to devices connected to said primary device.
- 25. A power control device according to any of claims 22 to 24, wherein the controller is further adapted to receive data from the primary device indicating an operating state of the primary device, and to enable or disable the connection of the at least one output connection to the input connection based upon the received data.
- 26. A power control device according to 25, wherein the primary device is arranged to provide a signal to the controller to disable the connection of the at least one output connection to the input connection when a predetermined time ** period has elapsed since a last predetermined event occurred at the primary device.::::.
- 27. A power control device according to claim 26, wherein said predetermined event is a user input event.
- 28. A power control device according to claim 25, 26 or 27, wherein the received data is a command to either enable or disable power to the at least one output connection.
- 29. A power control device according to any of claims 22 to 28, wherein: the controller is adapted to communicate with the primary device via a USB link connecting the controller to the primary device.
- 30. A power control device according to claim 29, further comprising a USB socket adapted to receive a USB cable arranged to provide said USB link to said primary device.
- 31. A power control device according to claim 29 or 30, wherein the controller is further adapted to enable the connection of the at least one output connection to the input connection in response to detection of a USB supply voltage on the USB link.
- 32. A power control device according to any of claims 22 to 31, further comprising connections between the input connection and the controller for supplying power to the controller.
- 33. A power control device according to any of claims 22 to 32, wherein the controller is a programmable integrated controller.
- 34. A power control device according to any of claims 22 to 32, further comprising at least one further output connection connected to the first input connection and adapted for electrical connection with the primary device.
- 35. A power control device according to claim 34, wherein said further output connection is fixedly connected to said input connection.:.:::.
- 36. A power control device according to any of claims 22 to 35, wherein the primary device is a personal computer.
- 37. A method of operating a power control device, the power control device comprising: an input connection for connection to a source of power; at least one output connection; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with a primary device; wherein the method comprises: enabling connection of the at least one output connection to the input connection in response to receipt of a first enumeration request from the primary device while the primary device is booting.
- 38. A computer program comprising computer readable instructions arranged to control a processor to carry out a method according to claim 37.
- 39. A computer readable medium carrying a computer program according to claim 38.
- 40. A method of controlling power supply to at least one secondary device associated with a primary device, the method comprising: running software on the primary device, the software comprising: a service component adapted to load automatically as part of a boot-up process of the primary device, and to generate first data indicating an operating state of the primary device; and a user loadable user interface component adapted to communicate with the service component to allow a user to affect generation of the first data; and supplying power to the at least one secondary device in dependence *...upon the first data. * I. * * S * S.
- 41. A method according to claim 40, further comprising: monitoring a time since a last predetermined event at the primary device; comparing the time since the last predetermined event with at least one predetermined time limit; and wherein the first data is based upon said comparison.
- 42. A method according to claim 41, wherein the predetermined event is a user input event.
- 43. A method according to any one of claims 40 to 42, wherein the primary device is a personal computer.
- 44. A method according to any of claims 40 to 43, wherein the at least one secondary device is electrically connected to an output connection of a power control device, the power control device further comprising: an input connection for connection to a source of power; a controller for enabling or disabling connection of the at least one output connection to the input connection, the controller being adapted for communication with the primary device; and wherein supplying power to the at least one secondary device comprises enabling connection of at least one output connection to the input connection.
- 45. A method according to claim 44, further comprising: generating second data based upon the first data, the second data indicating whether to supply power to the at least one output connection; and transmitting the second data to the controller; wherein the controller is adapted to: disable or enable power to the at least one output connection based upon the second data.:.
- 46. A method according to claim 45, wherein the controller is adapted to communicate with the primary device via a USB link connecting the controller to S...the primary device; and wherein the second data is transmitted from the primary device to the controller via the USB link. * S.
- 47. A method according to any one of claims 40 to 46, wherein the service component is a Windows service.
- 48. A method according to any one of claims 40 to 47, wherein the service component is a UNIX daemon.
- 49. A method according to any one of claims 40 to 48, wherein the service component and the user interface component are adapted for communication using inter-process communication.
- 50. A method according to claim 41 or any claim dependent thereon, wherein a user modifies the at least one predetermined time limit by interacting with the interface component and a message is sent to the service component indicating said interactions,
- 51. A computer program comprising computer readable instructions arranged to control a processor to carry out a method according to any of claims 40 to 50.
- 52. A computer readable medium carrying a computer program according to claim 51. S... * * . S. S * S S... * *. * . S * S. * S. * . S S...
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0809853A GB2460450A (en) | 2008-05-30 | 2008-05-30 | Power control device having communication with primary device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0809853A GB2460450A (en) | 2008-05-30 | 2008-05-30 | Power control device having communication with primary device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| GB0809853D0 GB0809853D0 (en) | 2008-07-09 |
| GB2460450A true GB2460450A (en) | 2009-12-02 |
Family
ID=39637863
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB0809853A Withdrawn GB2460450A (en) | 2008-05-30 | 2008-05-30 | Power control device having communication with primary device |
Country Status (1)
| Country | Link |
|---|---|
| GB (1) | GB2460450A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2565750A1 (en) * | 2011-09-05 | 2013-03-06 | Acer Incorporated | Electronic systems and power management methods thereof |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2257859A (en) * | 1991-05-02 | 1993-01-20 | Thomson Consumer Electronics | Polling for detection of power supply or other failures of a digital circuit |
| US5506790A (en) * | 1992-01-15 | 1996-04-09 | Nguyen; Sanh K. | Single-chip microcomputer programmable power distributor |
| GB2327819A (en) * | 1997-07-31 | 1999-02-03 | Neutral Ltd | Power controller for a computer peripheral |
| WO2000059079A1 (en) * | 1999-03-25 | 2000-10-05 | Cybec Pty. Ltd. | Intelligent power board |
| GB2371423A (en) * | 2001-01-23 | 2002-07-24 | Brian Arthur Markin | Socket outlet for computer peripherals with power control |
| US20030102717A1 (en) * | 2001-12-04 | 2003-06-05 | Morton Tarr | Electrical power strip for use with a computer and associated peripheral devices |
| EP1562267A1 (en) * | 2004-02-06 | 2005-08-10 | Centritech Limited | A power strip device |
| GB2436979A (en) * | 2007-05-09 | 2007-10-10 | Andrew James Stanford-Clark | Device for limiting standby power consumption |
| US20080261453A1 (en) * | 2007-04-20 | 2008-10-23 | Primax Electronics Ltd. | Power strip device |
-
2008
- 2008-05-30 GB GB0809853A patent/GB2460450A/en not_active Withdrawn
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2257859A (en) * | 1991-05-02 | 1993-01-20 | Thomson Consumer Electronics | Polling for detection of power supply or other failures of a digital circuit |
| US5506790A (en) * | 1992-01-15 | 1996-04-09 | Nguyen; Sanh K. | Single-chip microcomputer programmable power distributor |
| GB2327819A (en) * | 1997-07-31 | 1999-02-03 | Neutral Ltd | Power controller for a computer peripheral |
| WO2000059079A1 (en) * | 1999-03-25 | 2000-10-05 | Cybec Pty. Ltd. | Intelligent power board |
| GB2371423A (en) * | 2001-01-23 | 2002-07-24 | Brian Arthur Markin | Socket outlet for computer peripherals with power control |
| US20030102717A1 (en) * | 2001-12-04 | 2003-06-05 | Morton Tarr | Electrical power strip for use with a computer and associated peripheral devices |
| EP1562267A1 (en) * | 2004-02-06 | 2005-08-10 | Centritech Limited | A power strip device |
| US20080261453A1 (en) * | 2007-04-20 | 2008-10-23 | Primax Electronics Ltd. | Power strip device |
| GB2436979A (en) * | 2007-05-09 | 2007-10-10 | Andrew James Stanford-Clark | Device for limiting standby power consumption |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2565750A1 (en) * | 2011-09-05 | 2013-03-06 | Acer Incorporated | Electronic systems and power management methods thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| GB0809853D0 (en) | 2008-07-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100316647B1 (en) | Power control method and apparatus therefor in computer system using wake on LAN signal | |
| US9251027B2 (en) | Information handling system performance optimization system | |
| CN106797125B (en) | Power agent module | |
| EP2372491B1 (en) | Power lock-up setting method and electronic apparatus using the same | |
| CN103257514B (en) | Communication equipment and the control method for communication equipment | |
| US8732602B2 (en) | System and method for altering a user interface of a power device | |
| KR100385020B1 (en) | An automatic security code verifying method of a computer system operated by a remote controller | |
| KR20160058843A (en) | Accessory device power management | |
| WO2012134693A2 (en) | Power optimization on a power-over-ethernet based thin client device | |
| US20100244566A1 (en) | System and method for configuring a power device | |
| US7296171B2 (en) | Selecting a power state based on predefined parameters | |
| CN103019365B (en) | Computing machine, telechirics, computer control method and remote control thereof | |
| US20070055740A1 (en) | System and method for interacting with a remote computer | |
| JP2000207814A (en) | Electronic device and system start-up method | |
| GB2460450A (en) | Power control device having communication with primary device | |
| JP2004086617A (en) | Backup device | |
| US8176350B2 (en) | Powering computer system communication unit according to whether program executing and/or webpage accessed is user selected | |
| KR20060032079A (en) | Device and Method for Controlling Power Save Mode by Execution Program | |
| CN102193609B (en) | Setting method and electronic device of power lock | |
| US20060294402A1 (en) | User permission using power button | |
| KR102685980B1 (en) | A power saving apparatus and method of a computer system by global power control manager | |
| JP7561263B1 (en) | Information processing device and control method | |
| US12321755B2 (en) | Systems and methods providing seamless accessibility across pre-boot and runtime environments | |
| US20250218322A1 (en) | Information processing apparatus and control method | |
| JP5008088B2 (en) | Display system, display control apparatus, and computer program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |