The present disclosure generally relates to phase control heater control.
Hair dryers provide a flow of air that a user can utilize to dry wet hair. In many instances, the hair dryer also heats and/or ionizes the air prior to the air exiting the hair dryer. Hair dryers are generally powered via alternating current (AC) and generally include an outlet that includes an opening with fixed dimensions where the heated air is expelled from the device. For best hair drying performance, hair dryers may incorporate a microprocessor that monitors resistance change of a negative temperature coefficient (NTC) thermistor mounted close to the opening where heated air is expelled. The hair dryer's heaters can then be controlled by the microcontroller so as to vary their heat output. This “feedback loop” enables the hair dryer to achieve a controlled output temperature of the heated air that is optimal for hair drying. However, it can be challenging to maintain a desired temperature of the heated air without one or more disadvantageous effects. For example, turning the hair dryer's heaters on and off across multiple AC cycles to control the hair dryer's heaters can cause periodic current draw on the AC input. In older homes (or other sites of hair dryer use) or in homes (or other sites of hair dryer use) with less ideal electrical wiring, the periodic current draw can cause light flickering, a circuit breaker trip, and/or appliance (e.g., microwave, fan, etc.) power fluctuation when the hair dryer is used in close vicinity or on the same “branch” circuit as the light or appliance. Vanity lights and nearby outlets to which the hair dryer is plugged into are typically particularly susceptible to such flickering and power fluctuation. A filter on the AC input line may reduce adverse effects of the periodic current draw, but the filter is traditionally too large to fit within a hair dryer's handle or nozzle and thus results in an aesthetically unappealing, bulky box, such as an electromagnetic compatibility (EMC) box, on the hair dryer's cord. Similar problems can exist with other AC-powered devices that maintain temperature using heaters, such as space heaters.
Accordingly, there remains a need for improved devices, systems, and methods for heater control.
In general, devices, systems, and methods for phase control heater control are provided.
In one aspect, an apparatus is provided that in one embodiment includes a first heating element configured to heat air to be output from a device powered with alternating current (AC) power, and a processor configured to, based on a phase angle of the AC power and based on which one of a plurality of stages the device is operating in, control turning on and off the first heating element and control turning on and off the second heating element.
The apparatus can vary in any number of ways. For example, each of the plurality of stages can correspond to a predetermined phase angle of the AC power at which the first heating element is turned on to heat the air to be output from the device. In some embodiments, a dead zone can be in each 360° cycle of the AC power such that none of the predetermined phase angles are in the dead zone. In some embodiments, the apparatus also includes a temperature sensor configured to measure a temperature of the air to be output from the device, the processor can be configured to increase the stage by one if the measured temperature is below a predetermined desired temperature, and the processor can be configured to decrease the stage by one if the measured temperature is above the predetermined desired temperature. The apparatus can also include a heat control configured to allow a user to set the predetermined desired temperature.
For another example, the apparatus can also include a second heating element configured to heat the air to be output from the device, and the processor can be configured to, based on the phase angle of the AC power and based on which one of the plurality of stages the device is operating in, control turning on and off the second heating elements. In some embodiments, each of the plurality of stages can correspond to a first predetermined phase angle of the AC power at which one of the first and second heating elements is turned on to heat the air to be output from the device and can correspond to a second predetermined angle phase of the AC power at which the other of the first and second heating elements is turned on to heat the air to be output from the device. In some embodiments, alternate ones of the stages can apply the first predetermined phase angle to the first heating element and the second predetermined phase angle to the second heating element with intervening ones of the stages applying the second predetermined phase angle to the first heating element and the first predetermined phase angle to the second heating element. The apparatus can also include a first heater triode for alternating current (triac) operatively coupled to the first heating element and the processor, can also include a second heater triac operatively coupled to the second heating element and the processor, and the processor can be configured to control the first heating element via the first triac and to control the second heating element via the second triac. The apparatus can also include a temperature sensor configured to measure a temperature of the air to be output from the device, the processor can be configured to increase the stage by one if the measured temperature is below a predetermined desired temperature, and the processor can be configured to decrease the stage by one if the measured temperature is above the predetermined desired temperature. The apparatus can also include a heat control configured to allow a user to set the predetermined desired temperature.
For still another example, the processor can be configured to change the stage of the device only once per 360° cycle of the AC power.
For yet another example, each of the stages can correspond to a power level of the device ranging from 0% power to 100% power.
For still another example, the apparatus can also include a circuit configured to filter the AC power input to the device prior to the processor receiving the input AC power. In some embodiments, the circuit can include an inductor and two capacitors.
For yet another example, a dead zone can be in each 360° cycle of the AC power such that none of the predetermined phase angles are in the dead zone.
For another example, the device can be a hair dryer configured to output the heated air, and the first heating element and the heat control circuit can each be disposed in a handle of the hair dryer. In some embodiments, the apparatus can also include a housing of the hair dryer and a power cable extending from the housing configured to operatively couple to an AC source, and the handle can extend from the housing. In some embodiments, the apparatus can also include a filter circuit disposed in the handle and configured to filter the AC power input to the hair dryer prior to the processor receiving the input AC power, and the filter circuit can include an inductor and two capacitors.
For still another example, the apparatus can also include a first heater triode for alternating current (triac) operatively coupled to the first heating element and the processor, and the processor can be configured to control the first heating element via the first triac.
For another example, the apparatus can also include a non-transitory computer-readable storage medium storing an algorithm configured to be executed by the processor to control the turning on and off the first heating element.
In another embodiment, an apparatus includes a first heating element configured to heat air to be output from a hair dryer powered with AC power, a temperature sensor configured to measure a temperature of the air to be output from the hair dryer, and a processor communicatively coupled to the first and second heating elements and configured to identify which one of a plurality of stages the hair dryer is operating in, each of the plurality of stages corresponding to a first predetermined phase angle of the AC power at which the processor is configured to turn on the first element, and change the stage the hair dryer is operating in based on whether the measured temperature satisfies a predetermined desired temperature.
The apparatus can have any number of variations. For example, the processor can be configured to increase the stage by one if the measured temperature is below the predetermined desired temperature, and the processor can be configured to decrease the stage by one if the measured temperature is above the predetermined desired temperature.
For another example, the apparatus can also include a heat control configured to allow a user to set the predetermined desired temperature.
For yet another example, the processor can be configured to change the stage only once per 360° cycle of the AC power.
For still another example, each of the stages can correspond to a power level of the device ranging from 0% power to 100% power.
For another example, the apparatus can also include a circuit configured to filter the AC power input to the device prior to the processor receiving the input AC power. In some embodiments, the circuit can include an inductor and two capacitors. In some embodiments, the first heating element, the second heating element, and the circuit can each be disposed in a handle of the hair dryer. The apparatus can also include a housing of the hair dryer and can include a power cable extending from the housing configured to operatively couple to an AC source, and the handle can extend from the housing.
For yet another example, the apparatus can also include a first triac operatively coupled to the first heating element and the processor, and the processor can be configured to control the first heating element via the first triac.
For still another example, the apparatus can also include a second heating element configured to heat the air to be output from the hair dryer, and the processor can be configured to identify which one of the plurality of stages the hair dryer is operating in, each of the plurality of stages corresponding to the first predetermined phase angle of the AC power at which the processor is configured to turn on one of the first and second heating elements and to a second predetermined phase angle of the AC power at which the processor is configured to turn on the other of the first and second heating elements. In some embodiments, alternate ones of the stages can apply the first predetermined phase angle to the first heating element and the second predetermined phase angle to the second heating element with intervening ones of the stages applying the second predetermined phase angle to the first heating element and the first predetermined phase angle to the second heating element. In some embodiments, the apparatus can also include a first triac operatively coupled to the first heating element and the processor, the apparatus can also include a second heater triac operatively coupled to the second heating element and the processor, and the processor can be configured to control the first heating element via the first triac and to control the second heating element via the second triac.
For another example, the apparatus can also include a non-transitory computer-readable storage medium storing an algorithm configured to be executed by the processor to identify which one of the plurality of stages the hair dryer is operating in and to change the stage the hair dryer is operating in.
In another aspect, a method is provided that in one embodiment includes based on a phase angle of AC power powering a device and based on which one of a plurality of stages the device is operating in, causing, with a processor, a first heating element of the device heating air to be output from the device to be turned on and off.
The method can vary in any number of ways. For example, each of the plurality of stages can correspond to a first predetermined phase angle of the AC power at which the first heating element is turned on to heat the air to be output from the device. In some embodiments, the method can also include measuring, with a temperature sensor of the device, a temperature of the air to be output from the device, the processor can cause the stage to increase by one if the measured temperature is below a predetermined desired temperature, and the processor can cause the stage to decrease by one if the measured temperature is above the predetermined desired temperature. The predetermined desired temperature can be set by a user using a heat control of the device.
For another example, the method can also include, based on the phase angle of the AC power powering the device and based on which one of the plurality of stages the device is operating in, causing, with the processor, a second heating element of the device heating the air to be output from the device to be turned on and off. In some embodiments, each of the plurality of stages can correspond to a first phase angle of the AC power at which one of the first and second heating elements is turned on to heat the air to be output from the device and can correspond to a second phase angle of the AC power at which the other of the first and second heating elements is turned on to heat the air to be output from the device. In some embodiments, alternate ones of the stages can apply the first phase angle to the first heating element and the second phase angle to the second heating element with intervening ones of the stages applying the second phase angle to the first heating element and the first phase angle to the second heating element. In some embodiments, a dead zone can be in each 360° cycle of the AC power such that none of the first and second phase angles are in the dead zone. In some embodiments, the processor can control the first heating element via a first heater triode for alternating current (triac) of the device and can control the second heating element via a second triac of the device. In some embodiments, the method can also include measuring, with a temperature sensor of the device, a temperature of the air to be output from the device, the processor can cause the stage to increase by one if the measured temperature is below a predetermined desired temperature, and the processor can cause the stage to decrease by one if the measured temperature is above the predetermined desired temperature. The predetermined desired temperature can be set by a user using a heat control of the device.
For still another example, the processor can only change the stage of the device once per 360° cycle of the AC power.
For yet another example, each of the stages can correspond to a power level of the device ranging from 0% power to 100% power.
For still another example, the method can also include filtering, with a circuit, the AC power input to the device prior to the processor receiving the input AC power. In some embodiments, the circuit can include an inductor and two capacitors.
For another example, the device can be a hair dryer, and the first heating element and the second heating element can be disposed in a handle of the hair dryer.
For still another example, the processor can control the first heating element via a first heater triode for alternating current (triac) of the device.
For yet another example, a non-transitory computer-readable storage medium can include a program for execution by the processor, and the program can include instructions which, when executed by the processor, cause the device to perform the method.
This disclosure will be more fully understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
Certain embodiments will now be described to provide an overall understanding of the principles of the structure, function, manufacture, and use of the devices, systems, and methods disclosed herein. One or more examples of these embodiments are illustrated in the accompanying drawings. Those skilled in the art will understand that the devices, systems, and methods specifically described herein and illustrated in the accompanying drawings are non-limiting embodiments and that the scope of the present invention is defined solely by the claims. The features illustrated or described in connection with one exemplary embodiment may be combined with the features of other embodiments. Such modifications and variations are intended to be included within the scope of the present invention.
Further, in the present disclosure, like-named components of the embodiments generally have similar features, and thus within a particular embodiment each feature of each like-named component is not necessarily fully elaborated upon. Additionally, to the extent that linear or circular dimensions are used in the description of the disclosed systems, devices, and methods, such dimensions are not intended to limit the types of shapes that can be used in conjunction with such systems, devices, and methods. A person skilled in the art will recognize that an equivalent to such linear and circular dimensions can easily be determined for any geometric shape.
Various exemplary devices, systems, and methods for phase control heater control are provided. In general, a hair dryer includes a heater configured to heat air for output from the hair dryer. The hair dryer is configured to heat the air with the heater using phase control. The phase control is configured to control the heater to heat the air to a desired temperature (e.g., to a particular desired temperature or within a desired temperature range) while reducing periodic current draw on the hair dryer's AC input. Reducing the periodic current draw, which can be eliminating periodic current draw entirely, reduces or prevents the hair dryer from causing light flickering, causing inconvenient circuit breaker trips, and/or appliance (e.g., microwave, fan, etc.) power fluctuation. The phase control is configured to control the heater according to predetermined phase angles in an AC power cycle. The heater is configured to be turned on and off only at the predetermined phase angles in the AC power cycle, with a “dead zone” of phase angles being within the AC power cycle at which the heater cannot be turned on or off, e.g., a heater triode for alternating current (triac) for the heater cannot be fired. Using the “dead zone” in the phase control may avoid high dV/dt, and hence avoid high dI/dT, and the adverse periodic current draw effects related thereto.
The phase control can be implemented using a heat control circuit contained within the hair dryer, such as within a handle of the hair dryer. EMC filtering components, such as an EMC box, therefore is not needed, thereby improving aesthetics of the hair dryer, making the cord lighter, and making the cord easier to store and/or coil.
The phase control allows the hair dryer to satisfy regulatory requirements, e.g., FCC part 15 regarding conducted emissions for devices qualifying under 47 CFR 15.5 without the need for additional EMC filtering components such as an EMC box on the hair dryer's cord.
The methods, systems, and devices described herein for phase control heater control can be used with devices other than hair dryers that use heaters for heat control, such as space heaters.
The housing 102 is in the form of a generally hollow body that is configured to contain components for operation of the hair dryer 100, such as a motor, a heater, a processor, and a memory. The illustrated housing 102 has a circular cross-section, but other cross-sectional shapes can be utilized. In order to allow the motor and heater to supply air, the housing 102 includes an input end 102a and an output end 102b arranged on opposite ends of the housing 102. The input end 102a is configured to allow for air intake into the housing 102, and the output end 102b is configured to supply air after passing through the motor and/or heater. The output end 102b of the hair dryer 100 can be configured to removably mate with an accessory (not shown), e.g., a concentrator, a diffuser, a brush, a curler, etc.
Since the process of hair drying can require directional control of the hair dryer, the handle 104 is included to allow for hand-held use of the hair dryer 100. The handle 104 can extend from the housing 102 in a fixed orientation, or the handle 104 can be movably (e.g., pivotally) attached to the housing 102. The handle 104 includes a power button 110, shown in
The hair dryer 100 can include other control mechanisms for controlling various aspects of the hair dryer 100. As shown in
The power cable 106 extends from the handle 104 and is electrically connected to the electrical components within the hair dryer 100, such as the motor, heater, processor, and memory. The plug 108 is at an end of the power cable 106 opposite to the handle 104 and is configured to be plugged into an electrical outlet for providing AC power to the hair dryer 100.
As mentioned above, the hair dryer 100 includes various components for operation of the hair dryer 100. As shown in
The first and second heating elements 118, 120 are configured to heat unheated air for output as heated air from the output end 102a of the hair dryer 100. The first and second heating elements 118, 120 are each of a same type and can have any of a variety of configurations, as will be appreciated by a person skilled in the art.
The heat control circuit 122 is configured to control the first and second heating elements 118, 120 and thus control heating of the air that is output from the hair dryer 100 at the output end 102a. As discussed further below, the heat control circuit 122 is configured to control the first and second heating elements 118, 120 using phase control. In general, the heat control circuit 122 is configured to control the first and second heating elements 118, 120 to achieve the temperature setting selected by a user using the temperature control button 114. In some implementations, the temperature setting is a particular desired temperature. In other implementations, the temperature setting is a desired temperature range, e.g., a first temperature range corresponding to a low temperature setting, a second temperature range corresponding to a medium temperature setting and being higher than the first temperature range, and a third temperature range corresponding to a high temperature setting and being higher than the second temperature range.
The heat control circuit 122 can include a memory storing machine-executable instructions and can include a processor configured to execute the instructions to control the first and second heating elements 118, 120. In some implementations, the memory and the processor of the heat control circuit 122 are dedicated to the heat control circuit 122, and the hair dryer 100 includes another memory and another processor configured to control other aspects of the hair dryer 100, e.g., airflow speed, power, etc. In other implementations, the memory and the processor of the heat control circuit 122 are a memory and processor for the hair dryer 100, e.g., are not dedicated to the heat control circuit 122, and are thus also usable for other aspects of the hair dryer 100, e.g., airflow speed, power, etc.
In this illustrated embodiment, as shown in
A filter 138 (labeled “LC” and “EMC filter 1” in
In this illustrated embodiment, a regulator 140 (labeled “erg” in
The memory of the hair dryer 100 (e.g., the memory of the MCU 126) stores therein an algorithm 144 (labeled “alg” in
The phase control of the algorithm 144 is configured to use stages to control the heaters 118, 120 consistent with the scenario of
Table 1 shows phase angle settings for the first and second heaters 118, 120 in each of thirteen stages numbered zero to twelve. The first and second heaters 118, 120 are variously set at phase angle settings A and B as discussed further below. Angle setting A is either always OFF (heater off) or a phase change at 0° or 180°. As discussed above, a heater being turned on or off at 0° and 180° allows for no voltage change. Table 1 also shows for each stage a number of dV/dt (and thus dI/dt) events per 360° cycle of the AC power sinusoidal curve 224. Table 1 also shows a power setting, shown as percentage (%) power, for each stage. Thirteen stages are used in this embodiment, but another number of stages can be used. In general, the lower the number of stages, the less the precision for heat control the hair dryer 100 will have.
In the method 300, a value of a counter is set 302 to zero. The counter value is stored in the memory of the hair dryer 100, e.g., the memory of the MCU 126. The initial value of the counter is zero in this illustrated embodiment but can be another value initially. The stage begins at zero and can also be stored in the memory of the hair dryer 100.
A cycle of the AC power sinusoidal curve 224 starts 304 when the hair dryer 100 is powered on, e.g., when the power button 110 is actuated by a user to turn on the hair dryer 100. The zero-cross detection circuit 135 is configured to determine the cycle. In general, the zero-cross detection circuit 135 is configured to detect when the AC power sinusoidal curve 224 crosses the zero line (x axis) and thus to detect a zero voltage reference point of the AC power sinusoidal curve 224. The zero-cross detection circuit 135 is configured to provide an output to the processor (e.g., the processor of the MCU 126) indicating the detected zero-line crosses, which the processor then uses to determine the cycle since time is known between the zero-line crosses. A temperature of the heated air being output from the outer end 102b of the hair dryer 100 is measured 306, e.g., using the temperature sensor 136 (which as mentioned above is an NTC thermistor in this illustrated embodiment). The temperature can be measured simultaneously with the start 304 of the cycle or a nominal amount of time after the start 304 of the cycle, e.g., to account for a nominal delay of the processor of the hair dryer 100, e.g., the processor of the MCU 126, receiving power.
The processor determines 308 based on the measured 306 temperature whether more heat is needed to achieve the desired temperature. The desired temperature corresponds to the particular temperature or to the temperature range set via the temperature control button 114. If the measured 306 temperature is at or above the desired temperature, e.g., is greater than or equal to the particular desired temperature or is within or above the desired temperature range, then more heat is not needed. The processor then determines 310 based on the measured 306 temperature whether less heat is needed to achieve the desired temperature. If the measured 306 temperature is at or below the desired temperature, e.g., is less than or equal to the particular desired temperature or is within or below the desired temperature range, then less heat is not needed. The processor determines 308 whether more heat is needed before determining 310 whether less heat is needed in this this illustrated embodiment, but the processor 308 could instead first determine 310 whether less heat is needed before determining 308 whether more heat is needed.
Having determined 308 that more heat is not needed and having determined 310 that less heat is not needed, the processor determines 312 whether the counter value is zero, e.g., by checking the stored counter value in the memory. If the counter value is zero, the processor increases 314 the counter (e.g., by one or some other predetermined amount), sets 314 the first heater 118 via the first triac 128 at the angle setting A (see Table 1) for the current stage, and sets 314 the second heater 120 via the second triac 130 at the angle setting B (see Table 1) for the current stage. Since the stage is initially zero, and evaluating the first measured 306 temperature after the hair dryer 100 has been powered has indicated that neither more heat nor less heat is needed, the first heater 118 is already set at the angle setting A of OFF and the second heater 120 is already set at the angle setting B of OFF. The first and second heaters 118, 120 are thus not turned on or off in the 360° cycle, as indicated by the zero number of dV/dt for stage zero in Table 1. A next cycle then starts 304.
Returning to the processor's determination 308 as to whether more heat is needed to achieve the desired temperature, if the measured 306 temperature is below the desired temperature, e.g., is below the particular desired temperature or is below the desired temperature range, then more heat is needed. The processor determines 316 whether the stage is less than twelve, e.g., determines 316 whether the stage is at the highest stage (which is numbered 12 in the illustrated embodiment of Table 1). If the stage is less than twelve, e.g., is not at the highest stage, then the processor increases 318 the stage by one, e.g., increase the stage from zero to one, from one to two, from two to three, etc. Increasing the stage by one, and only by one in a single cycle, may help prevent periodic current draw because angle settings are being incrementally increased/decreased per cycle. As indicated in Table 1, increasing 318 the stage corresponds to increasing the power and changing the angle settings A and B. As the stage can be stored in the memory, increasing the stage can involve the processor updating the stage value or other stage indicator stored in the memory. The processor then determines 312 whether the counter value is zero, as discussed above. If the counter value is zero, the processor increases 314 the counter (e.g., by one or some other predetermined amount), sets 314 the first heater 118 via the first triac 128 at the angle setting A (see Table 1) for the current stage, and sets 314 the second heater 120 via the second triac 130 at the angle setting B (see Table 1) for the current stage. At least one of the first and second triacs 128, 130 will have its angle setting changed because the stage was increased 318 by one. If the counter value is not zero, the processor sets 320 the counter to zero, sets 320 the first heater 118 via the first triac 128 at the angle setting B (see Table 1) for the current stage, and sets 320 the second heater 120 via the second triac 130 at the angle setting A (see Table 1) for the current stage. At least one of the first and second triacs 128, 130 will have its angle setting changed because the stage was increased 318 by one.
The processor determining 312 whether the counter value is zero determines which of the first and second heaters 118, 120 is set at the angle setting A and which of the first and second heaters 118, 120 is set at the angle setting B. Changing the counter, e.g., by increasing 314 the counter or setting 316 the counter to zero, once per cycle helps ensure that power into the first and second heater 118, 120 is evenly distributed every cycle.
If the processor determines 316 that the stage is not less than twelve, e.g., is at the highest stage, then more heat cannot be provided because power is already at 100%, as indicated in Table 1. The processor then determines 312 whether the counter value is zero and continues the method 300 as discussed above.
Returning to the processor's determination 310 as to whether less heat is needed to achieve the desired temperature, if the measured 306 temperature is above the desired temperature, e.g., is above the particular desired temperature or is above the desired temperature range, then less heat is needed. The processor determines 322 whether the stage is greater than zero, e.g., determines 322 whether the stage is at the lowest stage (which is numbered 0 in the illustrated embodiment of Table 1). If the stage is greater than zero, e.g., is not at the lowest stage, then the processor decreases 324 the stage by one, e.g., decrease the stage from twelve to eleven, from eleven to ten, from ten to nine, etc. Decreasing the stage by one, and only by one in a single cycle, may help prevent periodic current draw because angle settings are being incrementally increased/decreased per cycle. As indicated in Table 1, decreasing 324 the stage corresponds to decreasing the power and changing the angle settings A and B. As the stage can be stored in the memory, decreasing the stage can involve the processor updating the stage value or other stage indicator stored in the memory. The processor then determines 312 whether the counter value is zero and the method 300 continues, as discussed above.
If the processor determines 322 that the stage is not greater than zero, e.g., is at the lowest stage, then less heat cannot be provided because power is already at 0%, as indicated in Table 1. The processor then determines 312 whether the counter value is zero and continues the method 300 as discussed above.
The method 300 continues per cycle until power is turned off, e.g., the hair dryer's power button 110 is actuated to turn off the hair dryer 100.
Actuation of the cool shot button 116 at any time during performance of the method 300 can temporarily stop the first and second heaters 118, 120 from providing any heat while the cool shot button 116 is depressed to allow for the shot of cool, unheated air to flow out the output end 102b of the hair dryer 100.
The subject matter described herein can be implemented in analog electronic circuitry, digital electronic circuitry, and/or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them. The subject matter described herein can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine-readable storage device), or embodied in a propagated signal, for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). A computer program (also known as a program, algorithm, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
The processes and logic flows described in this specification, including the method steps of the subject matter described herein, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the subject matter described herein by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the subject matter described herein can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processor of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, (e.g., EPROM, EEPROM, and flash memory devices). The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
The techniques described herein can be implemented using one or more modules. As used herein, the term “module” refers to computing software, firmware, hardware, and/or various combinations thereof. At a minimum, however, modules are not to be interpreted as software that is not implemented on hardware, firmware, or recorded on a non-transitory processor readable recordable storage medium (i.e., modules are not software per se). Indeed “module” is to be interpreted to always include at least some physical, non-transitory hardware such as a part of a processor or computer. Two different modules can share the same physical hardware (e.g., two different modules can use the same processor). The modules described herein can be combined, integrated, separated, and/or duplicated to support various applications. Also, a function described herein as being performed at a particular module can be performed at one or more other modules and/or by one or more other devices instead of or in addition to the function performed at the particular module.
One skilled in the art will appreciate further features and advantages of the devices, systems, and methods based on the above-described embodiments. Accordingly, this disclosure is not to be limited by what has been particularly shown and described, except as indicated by the appended claims. All publications and references cited herein are expressly incorporated herein by reference in their entirety for all purposes.
The present disclosure has been described above by way of example only within the context of the overall disclosure provided herein. It will be appreciated that modifications within the spirit and scope of the claims may be made without departing from the overall scope of the present disclosure.