Control electrical components using drawing files
By accessing and processing animation graphics files and mask graphics files, generating binary sequences and controlling electrical component arrays, complex and unstable electrical component control problems in the prior art are solved, and flexible and efficient electrical component operation is achieved.
Patent Information
- Application Number
- CN202011415354.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-06
- Filing Date
- 2020-12-03
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2040-12-03
AI Technical Summary
The prior art is difficult to implement complex and dynamically modifyable system control of electrical components, and the software control method is complex and unstable.
By accessing animation graphics files and mask graphics files, binary sequences are generated and output to electrical component array hardware, and electrical components are controlled by pixel-by-pixel-by-digit calculations and digital bit flow to achieve flexible and efficient operation of electrical components.
It realizes seamless pattern changes and dynamic control of electrical components at the hardware level, improves the flexibility and stability of the system, and avoids the complexity and instability of traditional software control.
Smart Images

Figure CN112927130B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 945,085, filed on December 6, 2019, and entitled “CONTROLLING ELECTRICAL COMPONENTS USING GRAPHICS FILES,” the disclosure of which is incorporated herein by reference in its entirety. background
[0003] Electrical components may be integrated into a system to coordinate their behavior. This control is sometimes implemented in the form of software control, where a processor executes instructions formulated in machine-readable code to cause the electrical components to operate accordingly. However, this control may be considered relatively advanced and complex, as it requires the device to have a complex architecture, and it may be prone to interruption or erratic behavior. What is needed is a hardware-implemented control architecture that allows a system of electrical components to perform complex and dynamically modifiable operations with high flexibility.
[0004] Overview
[0005] In a first aspect, a method includes: accessing an animation graphics file and a mask graphics file; generating a first binary sequence corresponding to the animation graphics file and generating a second binary sequence corresponding to the mask graphics file; and outputting the first binary sequence and the second binary sequence to hardware that controls an array of electrical components.
[0006] Implementations may include any or all of the following features. Outputting the first binary sequence and the second binary sequence includes transmitting a binary file, the binary file including the first binary sequence and the second binary sequence. The animation graphics file and the mask graphics file have a common graphics file type. The common graphics file type supports lossless data compression. At least one of the animation graphics file or the mask graphics file has eight bits per color. At least one of the animation graphics file or the mask graphics file has 16 bits per color. At least one of the animation graphics file or the mask graphics file has three planes. At least one of the animation graphics file or the mask graphics file has four planes. The method also includes reading a first flag to distinguish the animation graphics file from the mask graphics file. Generating at least one of the first binary sequence or generating the second binary sequence includes reading a second flag indicating a processing direction. The method also includes operating the electrical component array using the first binary sequence and the second binary sequence.
[0007] In a second aspect, a computer program product stored in a non-transitory medium includes instructions that, when executed by a processor, cause the processor to perform operations including: accessing an animation graphics file and a mask graphics file; generating a first binary sequence corresponding to the animation graphics file, and generating a second binary sequence corresponding to the mask graphics file; and outputting the first binary sequence and the second binary sequence to hardware that controls an array of electrical components.
[0008] In a third aspect, a method includes: accessing a first animation graphics file, a second animation graphics file, a mask graphics file, and a predetermined electrical threshold value regarding an array of electrical components; performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file and the second animation graphics file and the mask graphics file, each of the pixel-by-pixel calculations including determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining the sum of the first scaled pixel value and the second scaled pixel value; and generating an output reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold value regarding the array of electrical components.
[0009] Implementations may include any or all of the following features. Performing pixel-by-pixel calculations includes performing pixel-by-pixel calculations on all possible row combinations from the first animation graphics file, the second animation graphics file, and the mask graphics file. The output indicates that the result of the pixel-by-pixel calculation exceeds a predetermined electrical threshold for the electrical component array, and wherein the method further includes adjusting at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file. The electrical component array includes light emitting diodes (LEDs), wherein the predetermined electrical threshold includes an upper current limit, and wherein adjusting at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file includes reducing a brightness value. The output indicates that the result of the pixel-by-pixel calculation does not exceed a predetermined electrical threshold for the electrical component array, and wherein the output also includes an electrical value describing the calculation of the electrical component array. The calculated electrical value includes an average total current for all row combinations of the first animation graphics file, the second animation graphics file, and the mask graphics file. The calculated electrical value includes the highest total current among all row combinations of the first animation graphics file, the second animation graphics file, and the mask graphics file. The electrical component array includes light emitting diodes (LEDs). The result of the pixel-by-pixel calculation includes calculating an estimated current for each LED color in the LEDs based on the data stored as pixels in the first animation graphics file and the second animation graphics file and the mask graphics file. The estimated current for each LED color in the LEDs is at least one of an average current or a maximum current. The result of the pixel-by-pixel calculation includes an estimated current for each LED in the LEDs. The estimated current for each LED in the LEDs is at least one of an average current or a maximum current. Each row in the first animation graphics file and the second animation graphics file is associated with a frame in a pattern sequence defined by the first animation graphics file and the second animation graphics file and the mask graphics file, and wherein each pixel in the row is associated with a corresponding electrical component in the array of electrical components. Performing the pixel-by-pixel calculation includes processing a first row of each of the first animation graphics file and the second animation graphics file and the mask graphics file, and then processing the next row of each of the first animation graphics file and the second animation graphics file and the mask graphics file in multiple iterations. At least one of the first animation graphic file, the second animation graphic file, or the mask graphic file has a time length different from that of another one of the first animation graphic file, the second animation graphic file, or the mask graphic file, and the method further includes starting another loop of at least one of the first animation graphic file, the second animation graphic file, or the mask graphic file after reaching the end of at least one of the first animation graphic file, the second animation graphic file, or the mask graphic file.A series of rows in each of the first animation graphics file, the second animation graphics file, and the mask graphics file are associated with a time stream of a sequence of patterns defined by the first animation graphics file, the second animation graphics file, and the mask graphics file. The first animation graphics file, the second animation graphics file, and the mask graphics file have a universal graphics file type. The universal graphics file type supports lossless data compression. At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has eight bits per color. At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has 16 bits per color. At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has three planes. At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has four planes. Generating an output includes presenting a message on a display device. The method also includes operating the electrical component array based on the first animation graphics file and the second animation graphics file.
[0010] In a fourth aspect, a computer program product stored in a non-transitory medium includes instructions that, when executed by a processor, cause the processor to perform operations, the operations including: accessing a first animation graphics file, a second animation graphics file, a mask graphics file, and a predetermined electrical threshold value regarding an array of electrical components; performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file, the second animation graphics file, and the mask graphics file, each of the pixel-by-pixel calculations including determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining the sum of the first scaled pixel value and the second scaled pixel value; and generating an output reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold value regarding the array of electrical components.
[0011] In a fifth aspect, a method includes: accessing a first binary sequence corresponding to an animation graphic file, and a second binary sequence corresponding to a mask graphic file; combining portions of the first binary sequence with each other according to the second binary sequence to generate a digital bit stream; and transmitting the digital bit stream to control an array of electrical components.
[0012] Implementations may include any or all of the following aspects. Each row in the animation graphics file is associated with a frame in a pattern sequence defined by the animation graphics file and the mask graphics file, and each pixel in the row is associated with a corresponding electrical component in the electrical component array. Combining portions of the first binary sequence with each other includes processing a first row of each of the animation graphics file and the mask graphics file, and then processing a next row of each of the animation graphics file and the mask graphics file in multiple iterations. At least one of the animation graphics file or the mask graphics file has a different time length than the other of the animation graphics file or the mask graphics file, and the method also includes starting another loop of at least one of the animation graphics file or the mask graphics file after reaching the end of at least one of the animation graphics file or the mask graphics file. A series of rows in each of the animation graphics file or the mask graphics file is associated with a time stream of a pattern sequence defined by the animation graphics file and the mask graphics file. The method also includes accessing a plurality of second binary sequences corresponding to corresponding mask graphics files, and accessing a configuration file specifying a combination, each combination including at least two of the animation graphics files and one of the mask graphics files. Each of the combinations corresponds to a stable state or a transition state. The method also includes adjusting a change from a first stable state to a second stable state, wherein the configuration file specifies a transition state between the first stable state and the second stable state. The array of electrical components includes light emitting diodes (LEDs). Transmitting a digital bit stream to control the array of electrical components includes transmitting the digital bit stream to a driver for a corresponding LED in the LEDs. Transmitting the digital bit stream to a driver for a corresponding LED in the LEDs includes transmitting the digital bit stream through a daisy chain of drivers. The method also includes generating the first binary sequence using the animation graphics file, and generating the second binary sequence using the mask graphics file.
[0013] In a sixth aspect, an apparatus comprises: a nonvolatile memory storing a first binary sequence corresponding to a corresponding animation graphic file, and a second binary sequence corresponding to a mask graphic file; an electrical component array; and hardware combining portions of the first binary sequence with each other according to the second binary sequence to generate a digital bit stream for the electrical component array.
[0014] Implementations may include any or all of the following features. The electrical component array includes light emitting diodes (LEDs). Generating a digital bit stream for the electrical component array includes transmitting the digital bit stream to drivers for corresponding ones of the LEDs. Transmitting the digital bit stream to drivers for corresponding ones of the LEDs includes transmitting the digital bit stream through a daisy chain of drivers. The electrical component array includes a motor. The electrical component array includes an electric heater. The electrical component array includes an electric actuator. The hardware includes: a binary multiplier that performs multiplication on at least a portion of a first binary sequence; and a binary adder that performs addition on products generated by the binary multiplier.
[0015] In the seventh aspect, a set of graphic files includes: a first animation graphic (AG) file, which includes first AG pixels, each of the first AG pixels includes a first AG value; a second AG file, which includes second AG pixels, each of the second AG pixels includes a second AG value; and a mask graphic (MG) file, which includes MG pixels, each of the MG pixels includes an MG value, a first MG value among the MG values specifies a first numerical factor for a first AG value among the first AG values, and a second MG value among the MG values specifies a second numerical factor for a second AG value among the second AG values, and the MG pixel defines the sum of the following items: (i) the first numerical factor multiplied by the first AG value among the first AG values, and (ii) the second numerical factor multiplied by the second AG value among the second AG values.
[0016] It should be appreciated that all combinations of the preceding concepts and the additional concepts discussed in more detail below (assuming that these concepts are not mutually contradictory) are contemplated as part of the inventive subject matter disclosed herein. In particular, all combinations of the claimed subject matter appearing at the end of this disclosure are considered to be part of the inventive subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 An example of a system that may be used to create a graphics file is shown.
[0018] Figure 2 An example of a system that can use a graphics file to control the operation of an array of electrical components is shown.
[0019] Figure 3 Examples of electrical components are schematically shown.
[0020] Figure 4 An example of an array of electrical components is schematically shown.
[0021] Figure 5 An example of a light emitting diode (LED) array is shown.
[0022] Figure 6 An example of a daisy chain of drivers for LEDs is schematically shown.
[0023] Figure 7 An example of an animation graphics file is shown.
[0024] Figure 8 An example of a graphic file including an animation graphic file and a mask graphic file is shown.
[0025] Figure 9-11 An example of a method is shown.
[0026] Fig.12 is a schematic diagram of an example system that can be used for biological and / or chemical analysis.
[0027] Fig.13 An example architecture for a computing device is shown. Detailed Description
[0028] The present disclosure describes systems, techniques and / or articles that help improve the operation of electrical components. In some embodiments, graphics files are used to model and control complex operations of electrical devices. For example, graphics files can be used to drive the operation of light emitting diodes (LEDs) in dynamic patterns while allowing seamless changes between modes at the hardware level without using cross-fades. The graphics file can include two or more animation graphics files containing pattern content, and at least one mask graphics file that defines a combination of the content of the animation graphics files. After creating the graphics file, a program can process the graphics file to determine the electrical requirements placed by operating the LED based on the graphics file. If electrical restrictions are violated, the graphics file can be modified to comply with the restrictions. If electrical restrictions are not violated, estimated electrical characteristics of the LED operation that can be used to monitor and maintain the system can be output. The program can convert the graphics file into a binary file, and the hardware in the system can use the binary file to combine the content from the animation graphics file and the mask graphics file to drive the electrical component (e.g., LED) according to the defined pattern. The configuration file can specify different combinations of graphics files to be used by the hardware.
[0029] Examples herein refer to graphics files. Graphics files may include one or more forms of digital data. Graphics files may be associated with one or more image file compression algorithms. Compression algorithms may be characterized as lossless (i.e., the algorithm supports lossless data compression and saves a perfect copy of the uncompressed data) or lossy (i.e., the algorithm supports lossy data compression and does not save a perfect copy of the uncompressed data). Digital data may be organized in the form of pixels in a graphics file. Each pixel may be associated with one or more values, sometimes referred to as a plane of a graphics file. A graphics file may have any number of planes. In some implementations, a graphics file has three or four planes. For example, the three planes may refer to a red plane, a green plane, and a blue plane of a graphics file, respectively. For example, transparency may be included in a graphics file as a plane (e.g., a fourth plane). Each color may be represented by a pixel value having a certain number of bits (sometimes referred to as color depth). Any color of a graphics file may have any number of bits. In some implementations, a color has an 8-bit depth, corresponding to up to 256 possible color values. In some implementations, the color has a 16-bit depth, corresponding to up to 65,536 possible color values. A graphics file may organize pixels in an array. For example, an array of pixels in a graphics file may include rows and columns of pixels. Any dimension of a graphics file may refer to the length of the graphics file. In some implementations, two or more graphics files may have the same number of pixels (e.g., the same number of columns) in at least one dimension of their respective arrays. The respective lengths of the graphics files may refer to the number of rows in each graphics file. For example, a graphics file having more rows of digital data than another graphics file may be referred to as being longer in time than the other graphics file.
[0030] Examples herein refer to binary sequences. A binary sequence may include an ordered set of bits, sometimes referred to as a binary digit. In some implementations, a binary sequence may include a series of bits represented by corresponding 1s and 0s. Before being saved and stored in a tangible form, this set of bits may be characterized as a binary sequence. In order to maintain the bits of the binary sequence, they may be assembled into the form of a binary file, which may be stored in a computer-readable storage medium. For example, a binary file may include bits (e.g., bytes) arranged in groups.
[0031] The examples herein refer to digital bit streams. A digital bit stream can be used for communication between a main controller of a system (e.g., a processor of an instrument or other device containing an electrical component) and an integrated circuit that drives the corresponding electrical component (e.g., a chip that drives one or more LEDs). A digital bit stream can be a logic level signal transmitted at a relatively low current. For example, a digital bit stream can convey information about the amount of current used for an electrical component (e.g., a light-emitting LED) to an integrated circuit. In some implementations, a clock / data signaling method can be used to transmit a digital bit stream. For example, a wire that interconnects a main controller and an integrated circuit can be used as a data line to send a digital bit stream to an integrated circuit. Another wire that interconnects a main controller and an integrated circuit can be used as a clock line to send a pulse that triggers the integrated circuit to record the next digital bit from the digital bit stream on the data line.
[0032] The examples herein refer to digital pulses. A digital pulse may be the output of an integrated circuit that drives a corresponding electrical component (e.g., the output of a chip that drives one or more LEDs). A digital pulse may be the result of an integrated circuit that interprets a digital bit stream. That is, a digital bit stream may be transmitted to control an array of electrical components. In some implementations, a digital pulse may indicate how much current is passing through an LED die. A digital pulse may be a sequence of electrical data pulses designed to drive one or more LEDs (e.g., with a nominal "on" value or an "off" value). In some implementations, each LED includes multiple dies, and corresponding digital pulses may be provided for different dies to generate a specific output of the LED. A digital pulse is a flow of electricity that drives one or more LEDs (including but not limited to an LED strip).
[0033] The examples herein refer to flags. A flag may be represented by any controllable entity that can be manipulated to convey or not convey a particular state or other message when interpreted. In some implementations, a flag may include one or more bits, the value of which may indicate a characteristic (e.g., type) of a particular file. For example, different graphics files may be distinguished from each other by setting a flag. As another example, a flag may be used to specify a specified processing direction in a particular graphics file. A flag may be stored in a location accessible to a component that is accessing or attempting to access a graphics file. In some implementations, a flag may be stored in a graphics file so that a component may read the flag by accessing the file. In some implementations, a flag may be stored in a memory, where a component may access the flag before or while accessing the graphics file.
[0034] Examples herein refer to outputting digital data. Outputting digital data may include conveying digital data using tangible media (e.g., by signals propagating through a physical substrate) and / or using intangible media (e.g., by signals propagating in the form of electromagnetic radiation). For example, digital data representing one or more files (e.g., graphic files) may be output in the form of one or more transmissions from one component to at least one other component. Transmissions may include wired and / or wireless communications. Any of a variety of protocols may be used to transmit or otherwise output digital data.
[0035] Examples herein refer to software or software systems. Software can be designed for one or more computers (e.g., a central processing unit (CPU) or a graphics processing unit (GPU) and can be formulated using any of a variety of programming languages (including but not limited to a high-level programming language or a machine language). Software can be executed to define one or more applications that can perform specified tasks. Software may include or consist of firmware. In some implementations, firmware may control one or more types of hardware in a system. Firmware and / or other software may be stored by the system (e.g., in non-volatile memory).
[0036] Examples herein refer to hardware or hardware systems. Hardware may include one or more types of physical components as tangible aspects of an apparatus or other system. In some implementations, hardware includes digital electronics capable of providing one or more types of operations or other functions. Digital electronics may include one or more types of circuits, including but not limited to integrated circuits designed to control the operation of electrical components.
[0037] Examples herein refer to electrical components. Electrical components operate based on electricity and perform one or more types of operations. Electrical components can operate based on direct current (DC) power and / or alternating current (AC) power. Electrical components can operate to output one or more types of energy. In some implementations, electrical components output electromagnetic radiation. For example, the electrical component can be a light source (e.g., light in the visible spectrum). The electrical component can include, but is not limited to, a group of light emitting diodes (LEDs). The electrical component can operate to output one or more forms of mechanical motion. In some implementations, the electrical component includes an electromechanical device. For example, the electrical component can include one or more motors (e.g., an induction motor or a synchronous motor) driven by one or more control signals. As another example, the electrical component can be used to electrically actuate one or more types of mechanical motion. For example, a solenoid or other type of transducer can use an electromagnet to convert electrical energy and / or magnetic energy into motion (e.g., linear mechanical motion). The electrical component can operate to output thermal energy. In some implementations, the electrical component includes one or more types of electric heaters. For example, one or more electric heaters can be operated by selectively passing a current through one or more resistive elements. As another example, an induction heater may operate by penetrating a conductive material with an alternating magnetic field.
[0038] Figure 1 An example of a system 100 that can be used to create a graphics file is shown. The system 100 can be used with one or more other examples described elsewhere herein. The system 100 can facilitate the creation of operating modes for electrical components. In addition, the operating modes can also be created by a person who does not have expertise (e.g., no direct knowledge) of the hardware details of the electrical components. In some implementations, the system 100 serves such a goal by providing a process design method that includes: abstracting the types of hardware involved; making intuitive interpretations; and / or generating outputs that can be converted into hardware-specific data for driving one or more types of electrical components. The system 100 can provide a user (e.g., a graphic designer) with the ability to define transitions between two or more operating modes for an array of electrical components.
[0039] In some implementations, the person operating the system 100 is a graphic designer. The graphic designer can use the system 100 to design patterns output by an LED array coupled to a device. For example, the LEDs can output complex patterns to indicate one or more current operating states of the device (e.g., a stable state), and the patterns can be dynamically modified or switched in real time to indicate state transitions (e.g., a transition state). Here, the system 100 includes graphics software 102. In some implementations, the graphics software 102 is a standard or well-known graphic illustration tool that many graphic designers are familiar with. In some implementations, the graphics software 102 is configured to generate and output graphic files having one or more types of graphic file formats. For example, the graphics software 102 includes software such as and / or the GNU Image Manipulation Program (GIMP) tools, where GNU is the name of the operating system. Other graphics software may be used.
[0040] The graphics software 102 may provide one or more functions for creating and / or modifying the graphic content of a graphics file. In some implementations, the graphics software 102 includes a brightness tool 104, which may be used to set and / or modify the brightness value of one or more types of graphics files. For example, the brightness tool 104 may manipulate the color value of one or more individual pixels in a graphics file. In some implementations, the graphics software 102 includes a hue tool 106, which may be used to set and / or modify the hue value of one or more types of graphics files. For example, the hue tool 106 may manipulate the hue value for one or more individual pixels in a graphics file. In some implementations, the graphics software 102 includes a saturation tool 108, which may be used to set and / or modify the saturation value of one or more types of graphics files. For example, the saturation tool 108 may manipulate the light intensity and / or spectral distribution of one or more individual pixels in a graphics file. In some implementations, the graphics software 102 includes a level tool 110, which may be used to set and / or modify the level value of one or more types of graphics files. For example, the level tool 110 can move and / or stretch the brightness level of one or more individual pixels in a graphics file. In some implementations, the graphics software 102 includes a curve tool 112 that can be used to set and / or modify curve values for one or more types of graphics files. For example, the curve tool 112 can adjust one or more points in a graphics file across an image tonal range. Other functions may also or alternatively be included in the graphics software 102.
[0041] The graphics software 102 may generate one or more graphics files 114. In some implementations, the one or more graphics files 114 may include an animation graphics file (AF) 116. For example, the animation graphics file 116 contains pattern content (e.g., in units of individual pixel values) for operating an array of electrical components. In some implementations, the one or more graphics files 114 may include a mask graphics file (MF) 118. For example, the mask graphics file 118 defines (e.g., by individual pixel values) a combination of content from two or more animation graphics files 116 (e.g., by scaling one or more pixel values from the animation graphics files 116 and combining the scaled values).
[0042] The animation graphics file 116 and the mask graphics file 118 may have one or more file formats. In some implementations, the animation graphics file 116 may include a level 3 or level 4 graphics file type, characterized by 8-bit color depth or 16-bit color depth, and support lossless or lossy image compression. For example, the animation graphics file 116 may be a portable network graphics (PNG) file. As another example, the animation graphics file 116 may be a flexible image transmission system (FITS) file. In some implementations, the mask graphics file 118 may include a level 3 or level 4 graphics file type, characterized by 8-bit color depth or 16-bit color depth, and support lossless or lossy image compression. For example, the mask graphics file 118 may be a PNG file. As another example, the mask graphics file 118 may be a FITS file. In this way, the animation graphics file 116 and the mask graphics file 118 may have a common graphics file type, or may have graphics file types that are different from each other.
[0043] One or more of the animation graphics file 116 and the mask graphics file 118 may be associated with a flag related to the expected processing or planned processing of at least the corresponding graphics file. The flag may be included in the animation graphics file 116 and / or the mask graphics file 118, or implemented separately from the animation graphics file 116 and / or the mask graphics file 118. In some implementations, the flag relates to the difference between the types of graphics files. For example, the animation graphics file 116 and the mask graphics file 118 can be distinguished from each other by setting the flag.
[0044] The animation graphics file 116 and / or the mask graphics file 118 can be analyzed before being applied to control the operation of the electrical component. Here, the animation graphics file 116 and / or the mask graphics file 118 can be provided to the analysis program 120 in the system 100. The analysis program 120 can be implemented in the form of computer-readable instructions stored in a non-transitory medium. In some implementations, the analysis program 120 can evaluate whether the operating characteristics specified by the animation graphics file 116 and the mask graphics file 118 meet one or more applicable electrical thresholds. This evaluation can include the analysis program 120 calculating the estimated current about the LED (e.g., about each LED color in the LED) based on the data stored as pixels in the animation graphics file 116 and the mask graphics file 118. For example, the electrical thresholds about the electrical part array can be defined and accessible to the system 100 (e.g., within the system 100 or elsewhere). The analysis program 120 can evaluate whether the device for using the LED array to present the pattern defined by the animation graphics file 116 and the mask graphics file 118 for the LED or the control LED may require excessive current. For example, analysis program 120 may perform pixel-by-pixel calculations on row combinations from animation graphics file 116 and mask graphics file 118 in making such a determination.
[0045] The analysis program 120 may generate one or more outputs 122. In some implementations, the outputs may be based on calculating the final output current or control parameter value from multiple instances of the mask graphic file 118 and the animation graphic file 116. In one example, such calculation may be expressed as:
[0046] F=A×M,
[0047] Where F is a vector of final output current or control parameter values (e.g., a 3×1 matrix), A is a matrix of animation graphics file 116 (e.g., a 3×3 matrix), and M is a vector of mask graphics file 118 (e.g., a 3×1 matrix). For example, assume that each of the LEDs has three dies (referred to as R, G, and B) that are to be driven using the determined final values. Performing the above calculation F for each pixel (i.e., a pixel-by-pixel calculation) gives the final output current or control parameter value that will be applied to the dies in the LED. For example, the resulting value of F for a pixel may be
[0048]
[0049] Based on the animation graphics file and the mask graphics file, one or more calculated F values can be evaluated in one or more ways to determine whether at least one predetermined electrical threshold of the electrical component array is exceeded. The analysis program 120 can perform such an evaluation. In some implementations, various values of F can be evaluated (e.g., compared to a predetermined electrical threshold) to ensure that the current through any single tube core is not too large. For example, if the predetermined electrical threshold is less than 95, the above-mentioned final value F will be considered too large. If F exceeds the predetermined electrical threshold, one or more values in the F calculation can be reduced.
[0050] In some implementations, the sum of the F values can be determined and evaluated (e.g., compared to a predetermined electrical threshold) to ensure that the current through a given LED package is not too large. For example, if the predetermined electrical threshold is below 114, the sum of these values, then the above final value will be considered too large. If the sum of the values in F exceeds the predetermined electrical threshold, one or more values in the calculation of F can be reduced.
[0051] In some implementations, the sum of all values of all F for the entire array of electrical components (e.g., for all LEDs in the string) can be determined and evaluated (e.g., compared to a predetermined electrical threshold) to ensure that the current through a given array of electrical components is not too large. If the sum of all F values exceeds the predetermined electrical threshold, one or more values in the calculation of one or more F can be reduced.
[0052] In some implementations, output 122 indicates that the result of the pixel-by-pixel calculation meets (e.g., does not exceed) the electrical threshold for the electrical component array. For example, output 122 can reflect that the final value F of the above calculation does not exceed the electrical threshold. In some implementations, output 122 may include an electrical value describing the calculation of the electrical component array. Any one of a plurality of different calculated electrical values may be output. In some implementations, the calculated electrical value includes the average total current of all row combinations of the animation graphics file and the mask graphics file. In some implementations, the calculated electrical value includes the highest total current (e.g., the upper limit of the current) among all row combinations of the animation graphics file and the mask graphics file. In some implementations, the electrical component array includes LEDs, and the calculated electrical value includes the current for the color of each LED in the LED. For example, the current for the color of each LED in the LED is at least one of the average current or the maximum current. In some implementations, the calculated electrical value includes the current for each LED in the LED. For example, the current for each LED in the LED is at least one of the average current or the maximum current.
[0053] The use of the analysis program 120 illustrates the execution of a method that includes accessing a first animation graphics file and a second animation graphics file (e.g., animation graphics file 116) and a mask graphics file (e.g., mask graphics file 118), and a predetermined electrical threshold value regarding an array of electrical components (e.g., the electrical threshold value of the electrical array components in the above example); performing pixel-by-pixel calculations on row combinations from the first animation graphics file and the second animation graphics file and the mask graphics file (e.g., by the analysis program 120), each pixel-by-pixel calculation including: determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining the sum of the first scaled pixel value and the second scaled pixel value; and generating an output (e.g., output 122) that reflects whether a result of the pixel-by-pixel calculation (e.g., calculation result F) exceeds the predetermined electrical threshold value regarding the array of electrical components. The method may be performed by executing instructions of a computer program product stored in a non-transitory medium (eg, analysis program 120).
[0054] The animation graphics file 116 and / or the mask graphics file 118 can be converted before being applied to control the operation of the electrical component. Here, the animation graphics file 116 and / or the mask graphics file 118 can be provided to the conversion program 124 in the system 100. The conversion program 124 can be implemented in the form of computer-readable instructions stored in a non-transitory medium. In some implementations, the conversion program 124 can generate an output 126 using the animation graphics file 116 and the mask graphics file 118. In some implementations, the output 126 includes a corresponding first binary sequence corresponding to the animation graphics file 116, and a second binary sequence corresponding to the mask graphics file 118. Each of the first binary sequences can be generated by converting a corresponding one of the animation graphics files 116 into a binary form. In some implementations, each of the animation graphics file 116 and the mask graphics file 118 includes a value in hexadecimal form. For example, each first binary sequence can include a pixel value of one of the animation graphics files 116 represented in binary form. The second binary sequence can be generated by converting the mask graphics file 118 into a binary form. For example, the second binary sequence may include pixel values of the mask pattern file 118 represented in binary form. The first binary sequence and the second binary sequence may be included in one or more binary files of the output 126.
[0055] The use of the conversion program 124 illustrates the execution of a method, which includes: accessing an animation graphic file (e.g., the animation graphic file 116) and a mask graphic file (e.g., the mask graphic file 118); generating a first binary sequence corresponding to the animation graphic file, and generating a second binary sequence corresponding to the mask graphic file; and outputting the first binary sequence and the second binary sequence (e.g., collectively referred to as output 126) to hardware controlling an array of electrical components. The method can be performed by executing instructions of a computer program product stored in a non-transitory medium (e.g., the conversion program 124).
[0056] Figure 2 An example of a system 200 that can use a graphics file to control the operation of an array of electrical components is shown. The system 200 can be used with one or more other examples described elsewhere herein. The system 200 includes a non-volatile memory 202 (e.g., flash memory, magnetic storage media, and / or optical storage media) and a hardware system 204. The hardware system 204 includes a processor 205 (e.g., Fig.13 , including but not limited to a CPU or a GPU), an array 206 of electrical components 208-1, 208-2, ... 208-N, where N is a positive integer greater than or equal to 2. The processor 205 may include a binary multiplier 205A and a binary adder 205B.
[0057] The system 200 includes a software system 210. The software system 210 may operate based on data stored in the non-volatile memory 202, and may be implemented by the execution of processor-based instructions (e.g., by the processor 205). The system 200 includes a firmware system 212. The firmware system 212 may operate based on data stored in the non-volatile memory 202, and may be implemented by the execution of processor-based instructions (e.g., by the processor 205).
[0058] The software system 210 can function to notify the firmware system 212 when the state of the system 200 (e.g., a device) changes. Any of a variety of different states can be defined. For example, when the system 200 includes a device configured to analyze nucleic acid material (e.g., the system 200 is a sequencer), the state of the system 200 may include, but is not limited to, an idle state (e.g., the system 200 is not currently analyzing nucleic acid material); a pre-running state (e.g., the system 200 itself is currently preparing to analyze nucleic acid material); a sequencing state (e.g., the system 200 is currently analyzing nucleic acid material); or a completed state (e.g., the system 200 has completed analyzing nucleic acid material, but has not (yet) entered an idle state). Each state of the system 200 can be associated with a predetermined pattern that is presented using the LED array. For example, a pattern may include an animation graphic file and a mask graphic file (e.g., Figure 1 The software system 210 may be a system 200 that is configured to provide a plurality of configuration files 214 for displaying the LED array. The system 20 ...
[0059] The software system 210 may include one or more additional functions. In some implementations, the software system 210 includes a conversion program 124. Implementing the conversion program 124 within the software system 210 may ensure the ability of the system 200 to convert one or more animation graphic files 218 and one or more mask graphic files 220 for use in controlling the array 206 of electrical components.
[0060] The system 200 can access one or more binary files 216. In some implementations, the binary files 216 can be Figure 1The binary file 216 may include one or more binary sequences corresponding to the corresponding graphic files. Here, the animation graphic file 218 and the mask graphic file 220 are shown. That is, the binary file 216 shows the Figure 1 Outputting the first binary sequence and the second binary sequence by the conversion program 124 in the configuration file 214 may include transmitting a binary file including the first binary sequence and the second binary sequence. In some implementations, each combination defined by the configuration file 214 includes at least two animation graphic files in the animation graphic files 218 and one mask graphic file in the mask graphic files 220.
[0061] The role of the firmware system 212 may be to access the state change notifications from the software system 210 and prepare the information required for the hardware system 204 to transmit a digital bit stream to control the electrical component array 206. For example, the digital bit stream may be transmitted to a driver for an LED, and the driver may generate digital pulses for the LED based on the digital bit stream. In some implementations, the firmware system 212 may read the required combination of binary files 216 defined by the configuration file 214, coordinate the loading of at least some of the binary files 216 (e.g., from Figure 1 208-N) and informs the hardware system 204 where to find the relevant binary files 216. In addition, the hardware system 204 can be responsible for combining the binary files 216 in the non-volatile memory 202 based on the pixel values in the one or more mask pattern files 220, and constructing a digital bit stream and transmitting it to the array 206 of LEDs 208-1, 208-2, ... 208-N. In some implementations, the processor 205 includes a digital bit stream component 222 that performs the combination of at least some of the binary files 216 and constructs a digital bit stream for the array 206. In some implementations, the digital bit stream component 222 accesses (e.g., receives) the results of the multiplications performed by the binary multiplier 205A and the additions performed by the binary adder 205B, and generates a digital bit stream based on these results. For example, pattern information for a presentation of LEDs 208-1, 208-2, ... 208-N can be considered as a frame in a pattern sequence that is performed by continuously transmitting multiple frames of digital bits to the LED driver. Any frame presentation rate can be used. In some implementations, the digital bit stream component 222 can provide operation at multiple frames per second, including but not limited to tens of frames per second (e.g., approximately 30 frames per second).
[0062] As a numerical example, consider a case involving first, second, and third animation graphics files and one mask file. Furthermore, assume that a pixel in the first animation graphics file has a value of (12, 25, 8), a pixel in the second animation graphics file has a value of (42, 0, 61), a pixel in the third animation graphics file has a value of (4, 50, 29), and the mask graphics file has a value of (90, 99, 33). In some implementations, a divisor may be used as a normalization factor (e.g., the number 255 in an 8-bit implementation) in the mask graphics file or in all animation graphics files, but for simplicity, the normalization factor is omitted in this example. Converting the above pixel values to binary produces the following binary file:
[0063] (0001100, 0011001, 0001000) as a binary file of pixels of the first animation graphic file;
[0064] (0101010, 0000000, 0111101) as a binary file of pixels of a second animation graphic file;
[0065] (0000100, 0110010, 0011101) as a binary file of pixels of a third animation graphics file; and
[0066] (1011010, 1100011, 0100001) is a binary file of pixels used as mask graphic file.
[0067] The digital bit stream component 222 may include a binary multiplier and a binary adder. The digital bit stream component 222 may use a binary multiplier to multiply the first value of the first animation graphics file with the first value of the mask graphics file; multiply the first value of the second animation graphics file with the second value of the mask graphics file; and multiply the first value of the third animation graphics file with the third value of the mask graphics file. These multiplications generate multiple products (here, three products). The digital bit stream component 222 may use a binary adder to sum these products into a single value, which is a control parameter for the first tube core of the LED (for example, a control parameter for the red tube core of the LED). The digital bit stream component 222 may use a binary multiplier to perform a new multiplication of the second value of the three animation graphics files with the value of the mask graphics file, and use a binary adder to sum these products into a single value, which is a control parameter for the second tube core of the LED (for example, a control parameter for the green tube core of the LED). The digital bit stream component 222 can use a binary multiplier to perform a new multiplication of the third value of the three animation graphic files and the value of the mask graphic file, and use a binary adder to sum these products into a single value, which is the control parameter for the third die of the LED (for example, the control parameter for the blue die of the LED).
[0068] System 200 shows an example of an apparatus including a nonvolatile memory (e.g., nonvolatile memory 202) that stores a first binary sequence (e.g., binary file 216) corresponding to a corresponding animation graphics file (e.g., animation graphics file 218), and a second binary sequence (e.g., binary file 216) corresponding to a mask graphics file (e.g., one of mask graphics files 220); an array (e.g., array 206) of electrical components (e.g., LEDs 208-1, 208-2, ... 208-N); and hardware (e.g., hardware system 204) that combines portions of the first binary sequence with each other (e.g., by digital bit stream component 222) according to the second binary sequence to generate a digital bit stream for the array of electrical components.
[0069] Use of system 200 illustrates an example of execution of a method comprising: accessing a first binary sequence (e.g., binary file 216) corresponding to an animation graphics file (e.g., animation graphics file 218), and a second binary sequence (e.g., binary file 216) corresponding to a mask graphics file (e.g., one of mask graphics files 220); combining portions of the first binary sequence with each other according to the second binary sequence to generate a digital bit stream; and transmitting the digital bit stream (e.g., via digital bit stream component 222) to an array (e.g., array 206) of electrical components (e.g., LEDs 208-1, 208-2, ... 208-N).
[0070] Figure 3 An example of an electrical component 300 is schematically shown. The electrical component 300 can be used with one or more other examples described elsewhere herein. Some of the electrical components 300 can be implemented as Figure 2 Some of the LEDs 208-1, 208-2, ... 208-N in the electrical components 300 may be implemented in place of the LEDs 208-1, 208-2, ... 208-N, or in addition to the LEDs 208-1, 208-2, ... 208-N. That is, Figure 2 Array 206 in may alternatively or additionally include some or all of electrical components 300 .
[0071] Electrical component 302 corresponds to an LED. In some implementations, the LED includes one or more tube cores, which are configured to generate light when receiving power. For example, each tube core can include at least one pn junction, wherein light is generated by the recombination of electrons and electron holes with each other. In some implementations, the LED includes multiple tube cores of different colors. For example, the LED can include corresponding red, green and blue tube cores. Each LED can have multiple control pins for receiving power to control its operation. The array of electrical components 302 can be arranged to output a complex pattern of multi-color light, which can undergo pattern changes without discontinuity or dimming of the LED.
[0072] The electrical component 304 corresponds to an electric motor. In some implementations, the electric motor converts supplied electrical energy into mechanical motion (e.g., by rotating a mechanical shaft or other axis (e.g., on a pump, fan, elevator, or vehicle)). For example, the electric motor may include a rotor whose operation is controlled by a stator. The array of electrical components 304 may be arranged to perform complex motion patterns and undergo mode changes (e.g., between corresponding stable states and transition states).
[0073] Electrical component 306 corresponds to an electric heater. In some implementations, the electric heater can perform thermal control of one or more physical locations. For example, the heating mode can support a usage-based heating mode in a daytime heat zone or a residential area where a process or storage facility is located in a manufacturing plant.
[0074] The electrical component 308 corresponds to an electrical actuator. In some implementations, one or more electrical actuators use electromagnetic forces to actuate one or more physical objects (eg, levers, pumps, or tools) to perform complex mechanical operation patterns.
[0075] Figure 4An example of an array 400 of electrical components is schematically shown. The array 400 may be used with one or more other examples described elsewhere herein. The array 400 may be organized into a plurality of sub-arrays. Here, sub-arrays 402-1, 402-2, ..., 402-N are shown, where N is an integer greater than or equal to 2. Each of the sub-arrays 402-1, 402-2, ..., 402-N may include one or more electrical components. Here, electrical components 404-1, 404-2, ..., 404-M are shown in the sub-array 402-1, where M is an integer greater than or equal to 2. Here, electrical components 406-1, 406-2, ..., 406-P are shown in the sub-array 402-2, where P is an integer greater than or equal to 2. Here, electrical components 408-1, 408-2, ..., 408-Q are shown in the sub-array 402-N, where Q is an integer greater than or equal to 2. Thus, each of the N sub-arrays 402-1, 402-2, ..., 402-N may have the same or different number of electrical components as another sub-array. Figure 3 Multiple electrical components of one or more types of electrical components may be arranged according to array 400 .
[0076] Figure 5 An example of an array 500 of LEDs is shown. The array 500 can be used with one or more other examples described elsewhere herein. The array 500 includes an LED strip 502 including a circuit board on which a series of LEDs 504 are mounted. The array 500 includes an LED strip 506 including a circuit board on which a series of LEDs 508 are mounted. The LED strips 502 and 506 can be the same or different from each other (e.g., having different numbers and / or arrangements of LEDs). In some implementations, the LED strips 502 and 506 can be mounted on different sides of a light guide or diffuser (e.g., at opposite ends thereof) so that a visual pattern is generated on the light guide or diffuser when one or more patterns defined according to a graphics file are activated. The light guide and / or diffuser can have any shape, including a U-shape as shown. Other shapes can be used. In some implementations, the LED strip 502 can be considered an upper LED strip, and in such an implementation, the LED strip 506 can be considered a lower LED strip.
[0077] Figure 6An example of a daisy chain 600 of drivers for LEDs is schematically shown. Daisy chain 600 can be used with one or more other examples described elsewhere herein. Daisy chain 600 can include multiple drivers. Here, drivers 602-1, 602-2, ..., 602-N are shown, where N is an integer greater than or equal to 2. Each of drivers 602-1, 602-2, ..., 602-N can be associated with one or more LEDs. Here, LEDs 604-1, 604-2, ..., 604-M are driven by driver 602-1, where M is an integer greater than or equal to 2. Here, LEDs 606-1, 606-2, ..., 606-P are driven by driver 602-2, where P is an integer greater than or equal to 2. Here, LEDs 608-1, 608-2, ..., 608-Q are driven by driver 602-N, where Q is an integer greater than or equal to 2. Thus, each of the N drivers 602-1, 602-2, ..., 602-N may have the same or a different number of LEDs than the other drivers. Figure 3 Multiple electrical components of one or more types of electrical components in the embodiment may be arranged according to the daisy chain 600. As another example, the digital bit stream component 222 ( Figure 2 ) can transmit a digital bit stream to drivers 602-1, 602-2, ..., 602-N, and each driver can generate corresponding digital pulses to cause the LEDs of the daisy chain 600 to present complex patterns and / or pattern changes.
[0078] In some implementations, standard graphics files (including, but not limited to, PNG and / or FITS files) may be used to represent arrays of electrical components (e.g., LEDs) and operating modes of these electrical components (e.g., animated modes rendered by the LEDs). The use of this or other standard graphics file formats may allow standard graphics software (e.g., Figure 1 The graphical software 102 in is used to generate binary files to control complex and dynamically changing operating modes of electrical components.
[0079] Figure 7 An example of an animation graphics file 700 is shown. Figure 7The coloring is important for distinguishing the gradient of values represented by different colors realized by three different red, green and blue values and their combinations. The animation graphics file 700 can be used with one or more other examples described elsewhere in this article. The animation graphics file 700 includes pixels arranged in a set of rows and columns (e.g., a multi-color value set). The animation graphics file 700 includes a first row 702 and a last row 704. The order of processing rows can be changed, so the terms "first" and "last" are only used for illustrative purposes. The dimension 706 schematically shown as an arrow extends parallel to the row of the animation graphics file 700 here. In some implementations, each pixel in the component dimension 706 corresponds to a corresponding single electrical component. For example, each pixel in the first row 702 can be associated with a corresponding LED in an array, and so on. The time dimension 708 schematically shown as an arrow extends parallel to the column of the animation graphics file 700 here. The time dimension 708 can be associated with the time flow of the pattern sequence defined by the animation graphics file and the mask graphics file. In this way, a series of rows in the animation graphics file 700 can be associated with the time flow of the pattern sequence defined by the animation graphics file and the mask graphics file. That is, each pixel in a column of the animation graphics file 700 can be associated with a corresponding electrical component in the array of electrical components arranged in time along the time dimension 708, and each row can be associated (in combination with the mask graphics file and one or more other animation graphics files) with a frame in the pattern sequence.
[0080] Animation graphic file 700 may include patterns for two or more sub-arrays of electrical components. In some implementations, region 710 (e.g., the leftmost half of the column) may be associated with a first sub-array of electrical components, and region 712 (e.g., the rightmost half of the column) may be associated with a second sub-array of electrical components. The first sub-array of electrical components may correspond to a first group of LEDs (e.g., Figure 5 The second sub-array of electrical components may correspond to a second group of LEDs (e.g., LEDs 504 in LED strip 502). Figure 5 By setting the values of the animation graphics file 700 accordingly, any type of pattern can be generated. For example, in the current example, the LEDs will present a wavering pattern of blue, purple, and orange across the entire span (e.g., width) of the LED array.
[0081] Figure 8 An example of a graphics file 800 including animation graphics files 802 and 804 and a mask graphics file 806 is shown. Figure 8Coloring for the animation graphics file 802 and the mask graphics file 806 is important for distinguishing the gradients of values represented by the different colors implemented by the three different red, green and blue values and their combinations. The animation graphics files 802 and 804 and / or the mask graphics file 806 can be used with one or more other examples described elsewhere herein. A set of graphics files can be used to cause the hardware to present complex animated patterns, and can also be used or alternatively used to implement dynamic effects such as motion, picture-in-picture, brightening, fading, blending, and pattern conversion.
[0082] The animation graphics files 802 and 804 will be scaled and combined using the mask graphics file 806, which is referred to as pixel-by-pixel calculation. For example, the analysis program 120 ( Figure 1) can perform pixel-by-pixel calculations. In the pixel-by-pixel calculations, each of the graphics files 800 can be looped through independently of the other files. In some implementations, the pixels in the rows of each graphics file 800 correspond to a single electrical component, and the corresponding rows of the graphics file 800 correspond to the time lapse during the execution of the pattern. The hardware can continuously loop through all graphics files 800 in the pixel-by-pixel calculation (for example, at a constant rate). One or more of the graphics files 800 can have a different time length from another graphics file. In this way, when the end of the graphics file is reached, the processing of one of the graphics files 800 can be restarted (for example, start another loop). For example, the processing in the pixel-by-pixel calculation can start from the first row 808 of the animation graphics file 802, the first row 810 of the animation graphics file 804, and the first row 812 of the mask graphics file 806. Each pixel-by-pixel calculation may include scaling (for example, multiplying) the pixel values from the animation graphics files 802 and 804 with the values from the mask graphics file 806, and summing the scaled pixel values. Pixel-by-pixel calculations may be performed sequentially for each pixel in a corresponding row of the graphics file 800. After the pixel-by-pixel calculations for a row are completed, processing may proceed to the next row of each of the graphics files 800. When the last row 814 of the animation graphics file 804 is reached in the pixel-by-pixel calculations, processing may loop to the first row 810 of the animation graphics file 804 and continue with subsequent rows of the animation graphics file 802 and the mask graphics file 806. When the last row 816 of the animation graphics file 802 is reached in the pixel-by-pixel calculations, processing may loop to the first row 808 of the animation graphics file 802 and continue with subsequent rows of the animation graphics file 804 and the mask graphics file 806. When the last row 818 of the mask graphics file 806 is reached, processing may loop to the first row 812 of the mask graphics file 806 and continue with subsequent rows of the animation graphics files 802 and 804. In this way, pixel-by-pixel calculations may be performed in multiple iterations of processing. One or more graphic files 800 (e.g., mask graphic file 806) may have associated therewith a flag regarding a processing direction. For example, with one setting of the flag, such as a bit value of 0, the mask graphic file 806 may be processed in a direction from the first row 812 to the last row 818. As another example, with another setting of the flag, such as a bit value of 1, the mask graphic file 806 may be processed in a direction from the last row 818 to the first row 812. Therefore, the terms "first" and "last" as used herein are only used for illustrative purposes and do not necessarily indicate a processing direction. That is, generating a binary sequence (e.g., in the form of a binary file) may include reading a flag indicating a processing direction.
[0083] The pixel-by-pixel calculation can be performed by the analysis program 120 on the animation graphic file 116 and the mask graphic file 118 ( Figure 1 ) is executed to evaluate whether the operating control parameters will cause the electrical component to exceed a predetermined electrical threshold. In some implementations, each pixel in the graphics file 800 contains three values, one for each of red, green, and blue. In addition, the LED may include three color dies, one for each of red, green, and blue. The three values in each of the animation graphics files 802 and 804 can control the amount of current provided to drive the three color dies in the corresponding LED. The three values for any given pixel in the mask graphics file 806 can be used to scale the corresponding pixels of the animation graphics files 802 and 804 before adding them together to derive the final value sent to the LED color die.
[0084] In the example using three animation graphics files, the three animation pixels can be scaled and combined as defined by one mask pixel. Assume that subscripts a, b, and c are used to distinguish the animation pixels from the corresponding animation graphics files from each other. On the other hand, the mask pixels use subscript m. In addition, the red, green, and blue values of each pixel are represented by uppercase letters R, G, and B, respectively. The following relationship illustrates the pixel-by-pixel calculations that can be performed to calculate the final graphics value represented by subscript f:
[0085]
[0086] That is, an array of mask graphics files (e.g., a 3×1 array) can be multiplied by an array of animation graphics files (e.g., a 3×3 array) to obtain an array of final pixel values (e.g., a 3×1 array). Here, X is a normalization factor that can be used to keep the final value within an allowable range. That is, the green value in the mask pixel is used to scale the entire pixel in animation graphics file a; the red value in the mask pixel is used to scale the entire pixel in animation graphics file b; and the blue value in the mask pixel is used to scale the entire pixel in animation graphics file c.
[0087] More generally, two or more animation graphics files having multiple values per pixel can be combined using corresponding mask graphics files. The following example involves P animation graphics files and one mask graphics file, where each pixel has P color values, where P is a positive integer greater than or equal to 2. In addition, each pixel includes N color values, where N is a positive integer greater than or equal to 2. Therefore, A 1N Refers to the Nth color value of the pixel in the first animation graphic file, and A p1 Refers to the first color value of the pixel in the Pth animated graphics file. The following relationship illustrates the per-pixel calculations that can be performed to calculate the final graphics value represented by the capital letter F:
[0088]
[0089] Returning to the example involving graphic file 800, animation graphic file 802 is here an animated cycle of oscillating blue and purple colors, animation graphic file 804 is here an animated cycle of oscillating white and black shades, and mask graphic file 806 is a mask file that defines a blend of animation graphic files 802 and 804. Here, the bright red color in the top 20% portion of mask graphic file 806 indicates that the pixels from animation graphic file 804 are being rendered on the LED array at a relatively high scale factor. That is, the final output current or control parameter value that controls the corresponding LED is the sum of the scaled pixel value from animation graphic file 802 and the scaled pixel value from animation graphic file 804. The middle 20% to 80% portion of mask graphic file 806 here indicates that three effects have occurred. First, the red color gradually darkens (e.g., due to the gradual decrease in the value of the red color in the pixels of mask graphic file 806), causing the brightness of the pixels of animation graphic file 804 to gradually decrease during this time period. Second, the shape of the green pixels is introduced in the mask graphic file, which indicates that the pixels from two LED strips (e.g., Figure 5 804) and presents a strip of pixels from animation graphic file 802, and moves to the center of the two LED strips over time. Third, the intensity of the green pixels in mask graphic file 806 gradually increases, causing the brightness of the pixels from animation graphic file 802 to gradually increase over this time period. Finally, for the bottom 20% of mask graphic file 806, the relatively dark red and bright green colors cause the dark pixels from animation graphic file 804 to appear on most of the LEDs in the LED strips, with a strip of bright pixels from animation graphic file 802 appearing on the LEDs in the middle of the LED strips.
[0090] During the entire period of working through mask graphic file 806 , animation graphic files 802 and 804 are continuously cycled so that the oscillating color pattern from each of animation graphic files 802 and 804 is applied to the LEDs in the LED strip, although the brightness and position are determined by mask graphic file 806 .
[0091] If a third animation graphics file has been used with graphics file 800, its contribution to color, brightness, and position may be determined by the blue color in mask graphics file 806. That is, if one or more animation graphics files are not used, the corresponding color values in mask graphics file 806 may be set to zero.
[0092] In some implementations, all possible line combinations between the graphic files 800 can be analyzed by the analysis program 120 for the animation graphic file 116 and the mask graphic file 118 ( Figure 1) is processed with pixel-by-pixel calculations to evaluate whether the operating control parameters will cause the electrical component to exceed a predetermined electrical threshold. For example, processing can start with pixel-by-pixel calculations based on the first row 808, the first row 810, and the first row 812, and processing can continue in iterations of different row combinations, where the loop occurs at the end of the file. When processing reaches the row combination of the first row 808, the first row 810, and the first row 812 again, processing can terminate because the combination has been calculated. In this way, performing pixel-by-pixel calculations can include performing pixel-by-pixel calculations on all possible row combinations from the animation graphics files 802 and 804 and the mask graphics file 806.
[0093] Figure 9-11 Examples of method 900, method 1000, and method 1100 are shown, respectively. One or more of method 900, method 1000, and method 1100 can be used with other examples described elsewhere herein. Unless otherwise specified, one or more operations of a method can be performed in a different order, and / or more or fewer operations can be performed.
[0094] Beginning with method 900, at 902, an animation graphics file and a mask graphics file may be accessed. For example, the graphics file may be generated using system 100 and may be converted by conversion program 124 ( Figure 1 )access.
[0095] At 904, a first binary sequence corresponding to the corresponding animation graphic file and a second binary sequence corresponding to the mask graphic file may be generated. In some implementations, the conversion program 124 ( Figure 1 ) can convert the decimal number of the pixel value of the animation graphic file and the mask graphic file into a binary number. For example, the conversion program 124 ( Figure 1 ) can generate output 126.
[0096] At 906, the first binary sequence and the second binary sequence may be output to hardware that controls the array of electrical components. For example, the binary sequence may be output by the system 100 ( Figure 1 ) is saved in the form of a binary file, and the conversion program 124 can output the binary file to the system 200 ( Figure 2 ).
[0097] Turning now to method 1000, at 1002, an animation graphic file, a mask graphic file, and values representing electrical thresholds for an array of electrical components may be accessed. For example, the graphic file may be generated using system 100 and may be generated by analysis program 120 ( Figure 1 )access.
[0098] At 1004, a pixel-by-pixel calculation may be performed on the row combination from the animation graphics file and the mask graphics file. The pixel-by-pixel calculation may include combining scaled pixel values from the animation graphics file as defined by corresponding pixel values from the mask graphics file.
[0099] Reference again Figure 8 , the animation graphics files 802 and 804 can be scaled and combined at 1004 using a mask graphics file 806 in a pixel-by-pixel calculation. For example, the analysis program 120 ( Figure 1 ) can perform pixel-by-pixel calculations. In the pixel-by-pixel calculations, each of the graphics files 800 can be looped through independently of the other files. In some implementations, the pixels in the rows of each graphics file 800 correspond to a single electrical component, and the corresponding rows of the graphics file 800 correspond to the time lapse during the execution of the pattern. The hardware can continuously loop through all graphics files 800 (e.g., at a constant rate) in the pixel-by-pixel calculations. One or more graphics files 800 can have a different time length from another graphics file. In this way, when the end of the graphics file is reached, the processing of one of the graphics files 800 can be restarted (e.g., start another loop). For example, the processing in the pixel-by-pixel calculation can start from the first row 808 of the animation graphics file 802, the first row 810 of the animation graphics file 804, and the first row 812 of the mask graphics file 806. Each pixel-by-pixel calculation can include scaling (e.g., multiplying) the pixel values from the animation graphics files 802 and 804 with the values from the mask graphics file 806, and summing the scaled pixel values. Pixel-by-pixel calculations may be performed sequentially for each pixel in a corresponding row of the graphics file 800. After pixel-by-pixel calculations for a row are completed, processing may proceed to the next row of each of the graphics files in the graphics file 800. When the last row 814 of the animation graphics file 804 is reached in the pixel-by-pixel calculations, processing may loop to the first row 810 of the animation graphics file 804 and continue with subsequent rows of the animation graphics file 802 and the mask graphics file 806. When the last row 816 of the animation graphics file 802 is reached in the pixel-by-pixel calculations, processing may loop to the first row 808 of the animation graphics file 802 and continue with subsequent rows of the animation graphics file 804 and the mask graphics file 806. When the last row 818 of the mask graphics file 806 is reached, processing may loop to the first row 812 of the mask graphics file 806 and continue with subsequent rows of the animation graphics files 802 and 804. In this way, pixel-by-pixel calculations may be performed in multiple iterations of processing.
[0100] At 1006, an output can be generated that reflects whether the result of the pixel-by-pixel calculation meets (e.g., does not exceed) an electrical threshold value for the electrical component array. For example, the analysis program 120 can generate an output 122 (e.g., a modification of a graphics file and / or electrical values describing the calculation of the electrical component array). In some implementations, the output generated at 1006 can include one or more representations perceptible to a user. For example, the display device 1338 ( Fig.13 ) may present a message conveying whether an evaluated graphics file will exceed a predetermined electrical threshold, which predetermined electrical threshold includes but is not limited to a current limit.
[0101] Turning now to method 1100, at 1102, a first binary sequence corresponding to an animation graphic file and a second binary sequence corresponding to a mask graphic file may be accessed. For example, system 200 may access conversion program 124 by converting animation graphic file 116 and mask graphic file 118 ( Figure 1 ) is converted from a digital form (e.g., hexadecimal) to a binary form to generate a binary file 216 ( Figure 2 ).
[0102] At 1104, portions of the first binary sequence are combined with each other according to the second binary sequence to generate a digital bit stream. For example, the digital bit stream component 222 ( Figure 2 ) may be combined by performing binary multiplication of binary numbers and by performing binary addition of binary products corresponding to the reference graphic file 800 ( Figure 8 ) is a binary file of an example described by the digital bit stream component 222 ( Figure 2 ) can generate a digital bit stream as a logic level signal.
[0103] At 1106, a digital bit stream may be transmitted to control an array of electrical components. In some implementations, the hardware system 204 ( Figure 2 ) can transmit a digital bit stream on one or more electrical conductors to control a reference Figure 4 For example, the digital bit stream may be transmitted to a driver for one or more electrical components.
[0104] Fig.121 is a schematic diagram of an example system 1200 that can be used for biological and / or chemical analysis. In some implementations, the systems and / or techniques described herein can be a part of system 1200. System 1200 can be operated to obtain any information or data related to at least one biological and / or chemical substance. In some implementations, carrier 1202 supplies the substance to be analyzed. For example, carrier 1202 can include a cartridge or any other component that holds the substance. In some implementations, system 1200 has a container 1204 to receive carrier 1202 at least during analysis. Container 1204 can form an opening in a housing 1206 of system 1200. For example, some or all components of system 1200 can be in housing 1206.
[0105] System 1200 may include an optical system 1208 for performing biological and / or chemical analysis of a substance of carrier 1202. Optical system 1208 may perform one or more optical operations, including but not limited to illumination and / or imaging of the substance. For example, optical system 1208 may include any or all of the systems described elsewhere herein. As another example, optical system 1208 may perform any or all of the operations described elsewhere herein.
[0106] The system 1200 can include a thermal system 1210 for providing thermal processing associated with biological and / or chemical analysis. In some implementations, the thermal system 1210 thermally conditions at least a portion of the substance to be analyzed and / or the carrier 1202.
[0107] The system 1200 may include a fluid system 1212 for managing one or more fluids associated with biological and / or chemical analysis. In some implementations, a fluid may be provided to the carrier 1202 or its substance. For example, a fluid may be added to the substance of the carrier 1202 and / or removed from the substance of the carrier 1202.
[0108] The system 1200 includes a user interface 1214 that facilitates input and / or output related to biological and / or chemical analysis. The user interface can be used to specify one or more parameters for the operation of the system 1200 and / or to output the results of the biological and / or chemical analysis, to name a few examples. For example, the user interface 1214 can include one or more display screens (e.g., a touch screen), a keyboard, and / or a pointing device (e.g., a mouse or a trackpad).
[0109] The system 1200 may include a system controller 1216 that may control one or more aspects of the system 1200 for performing biological and / or chemical analysis. The system controller 1216 may control the container 1204, the optical system 1208, the thermal system 1210, the fluid system 1212, and / or the user interface 1214. The system controller 1216 may include at least one processor and at least one storage medium (e.g., a memory) having executable instructions for the processor.
[0110] Fig.13 An example architecture of a computing device 1300 is shown that can be used to implement aspects of the present disclosure, including any systems, apparatuses, and / or techniques described herein or any other systems, apparatuses, and / or techniques that may be used in various possible embodiments.
[0111] Fig.13 The computing device shown may be used to execute the operating systems, application programs, and / or software modules (including software engines) described herein.
[0112] In some embodiments, computing device 1300 includes at least one processing device 1302 (e.g., a processor), such as a central processing unit (CPU). A variety of processing devices are available from many manufacturers, such as Intel or Advanced Micro Devices. In this example, computing device 1300 also includes a system memory 1304 and a system bus 1306 that couples various system components including system memory 1304 to processing device 1302. System bus 1306 is one of many types of bus structures that can be used, including but not limited to a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
[0113] Examples of computing devices that may be implemented using computing device 1300 include desktop computers, laptop computers, tablet computers, mobile computing devices (such as smart phones, touchpad mobile digital devices or other mobile devices), or other devices configured to process digital instructions.
[0114] The system memory 1304 includes a read-only memory 1308 and a random access memory 1310. A basic input / output system 1312, containing the basic routines used to transfer information within the computing device 1300, such as during startup, may be stored in the read-only memory 1308.
[0115] In some embodiments, the computing device 1300 also includes a secondary storage device 1314, such as a hard drive, for storing digital data. The secondary storage device 1314 is connected to the system bus 1306 via a secondary storage interface 1316. The secondary storage device 1314 and its associated computer-readable media provide non-volatile and non-transitory storage of computer-readable instructions (including applications and program modules), data structures, and other data for the computing device 1300.
[0116] Although the example environment described herein uses a hard disk drive as a secondary storage device, other types of computer-readable storage media are used in other embodiments. Examples of these other types of computer-readable storage media include cassette tapes, flash memory cards, digital video disks, Bernoulli cassettes, compact disk read-only memories, digital versatile disk read-only memories, random access memories, or read-only memories. Some embodiments include non-transitory media. For example, a computer program product can be tangibly embodied in a non-transitory storage medium. In addition, such computer-readable storage media can include local storage or cloud-based storage.
[0117] A number of program modules may be stored in the secondary storage device 1314 and / or the system memory 1304, including an operating system 1318, one or more application programs 1320, other program modules 1322 (such as the software engines described herein), and program data 1324. The computing device 1300 may utilize any suitable operating system, such as Microsoft Windows TM , Google Chrome TM OS, Apple OS, Unix or Linux and their variants, and any other operating system suitable for a computing device. Other examples may include Microsoft, Google or Apple operating systems, or any other suitable operating system used in tablet computing devices.
[0118] In some embodiments, the user provides input to the computing device 1300 through one or more input devices 1326. Examples of input devices 1326 include keyboards 1328, mice 1330, microphones 1332 (e.g., for voice and / or other audio input), touch sensors 1334 (such as touchpads or touch-sensitive displays), and gesture sensors 1335 (e.g., for gesture input). In some implementations, the input devices 1326 provide detection based on presence, proximity, and / or motion. In some implementations, the user can walk into their home, and this can trigger input to the processing device. For example, the input device 1326 can then facilitate the user's automation experience. Other embodiments include other input devices 1326. The input devices can be connected to the processing device 1302 via an input / output interface 1336 coupled to the system bus 1306. These input devices 1326 can be connected via any number of input / output interfaces, such as a parallel port, a serial port, a game port, or a universal serial bus. Wireless communication between input device 1326 and input / output interface 1336 is also possible and, in some possible embodiments, includes infrared, Bluetooth wireless technology, 802.11a / b / g / n, cellular, ultra-wideband (UWB), ZigBee or other radio frequency communication systems, to name a few examples.
[0119] In the example embodiment, a display device 1338, such as a monitor, liquid crystal display device, projector, or touch-sensitive display device, is also connected to the system bus 1306 via an interface, such as a video adapter 1340. In addition to the display device 1338, the computing device 1300 may include various other peripheral devices (not shown), such as speakers or a printer.
[0120] The computing device 1300 can be connected to one or more networks via a network interface 1342. The network interface 1342 can provide wired and / or wireless communications. In some implementations, the network interface 1342 can include one or more antennas for sending and / or receiving wireless signals. When used in a local area network environment or a wide area network environment (e.g., the Internet), the network interface 1342 can include an Ethernet interface. Other possible embodiments use other communication devices. For example, some embodiments of the computing device 1300 include a modem for communicating over a network.
[0121] The computing device 1300 may include at least some form of computer-readable media. Computer-readable media include any available media that can be accessed by the computing device 1300. By way of example, computer-readable media include computer-readable storage media and computer-readable communication media.
[0122] Computer readable storage media include volatile and nonvolatile, removable and non-removable media implemented in any device that is configured to store information such as computer readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, random access memory, read-only memory, electrically erasable programmable read-only memory, flash memory or other memory technology, compact disk read-only memory, digital versatile disk or other optical storage device, cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or any other medium that can be used to store the desired information and can be accessed by the computing device 1300.
[0123] Computer-readable communication media typically contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. The term "modulated data signal" refers to a signal in which one or more characteristics are set or changed in a manner that encodes information in the signal. For example, computer-readable communication media include wired media (such as a wired network or a direct wired connection) and wireless media (such as acoustic, radio frequency, infrared and other wireless media). Combinations of any of the above are also included within the scope of computer-readable media.
[0124] Fig.13 The computing device shown is also an example of a programmable electronic device, which may include one or more such computing devices, and when multiple computing devices are included, such computing devices may be coupled together with a suitable data communication network to jointly perform various functions, methods, or operations disclosed herein.
[0125] The following examples illustrate some aspects of this topic.
[0126] Example 1: A method comprising:
[0127] Access animation graphics files and mask graphics files;
[0128] generating a first binary sequence corresponding to the animation graphic file, and generating a second binary sequence corresponding to the mask graphic file; and
[0129] The first binary sequence and the second binary sequence are output to hardware that controls an array of electrical components.
[0130] Example 2: The method of Example 1, wherein outputting the first binary sequence and the second binary sequence comprises transmitting a binary file, the binary file comprising the first binary sequence and the second binary sequence.
[0131] Example 3: The method according to any one of Examples 1 to 2, wherein the animation graphics file and the mask graphics file have a common graphics file type.
[0132] Example 4: The method of Example 3, wherein the general graphics file type supports lossless data compression.
[0133] Example 5: The method of any one of Examples 1 to 4, wherein at least one of the animation graphics file or the mask graphics file has eight bits per color.
[0134] Example 6: The method of any one of Examples 1 to 4, wherein at least one of the animation graphics file or the mask graphics file has 16 bits per color.
[0135] Example 7: The method according to any one of Examples 1 to 6, wherein at least one of the animation graphics file or the mask graphics file has three planes.
[0136] Example 8: The method according to any one of Examples 1 to 6, wherein at least one of the animation graphics file or the mask graphics file has four planes.
[0137] Example 9: The method according to any one of Examples 3 to 8 further includes reading a first flag to distinguish the animation graphic file from the mask graphic file.
[0138] Example 10: The method of any one of Examples 1 to 9, wherein at least one of generating the first binary sequence or generating the second binary sequence comprises reading a second flag indicating a processing direction.
[0139] Example 11: The method of any one of Examples 1 to 10, further comprising operating the array of electrical components using the first binary sequence and the second binary sequence.
[0140] Example 12: A computer program product stored in a non-transitory medium and comprising instructions that, when executed by a processor, cause the processor to perform operations comprising:
[0141] Access animation graphics files and mask graphics files;
[0142] generating a first binary sequence corresponding to the animation graphic file, and generating a second binary sequence corresponding to the mask graphic file; and
[0143] The first binary sequence and the second binary sequence are output to hardware that controls an array of electrical components.
[0144] Example 13: A method comprising:
[0145] accessing a first animation graphic file, a second animation graphic file, a mask graphic file, and predetermined electrical thresholds for an array of electrical components;
[0146] performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file and the second animation graphics file and the mask graphics file, each of the pixel-by-pixel calculations comprising: determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining a sum of the first scaled pixel value and the second scaled pixel value; and
[0147] An output is generated reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components.
[0148] Example 14: The method of Example 13, wherein performing the pixel-by-pixel calculation comprises performing the pixel-by-pixel calculation on all possible combinations of rows from the first animation graphics file, the second animation graphics file, and the mask graphics file.
[0149] Example 15: A method according to any one of Examples 13 to 14, wherein the output indicates that the result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold with respect to the electrical component array, and wherein the method further includes adjusting at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file.
[0150] Example 16: A method according to Example 15, wherein the electrical component array includes light emitting diodes (LEDs), wherein the predetermined electrical threshold includes an upper current limit, and wherein adjusting at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file includes reducing a brightness value.
[0151] Example 17: A method according to any one of Examples 13 to 16, wherein the output indicates that the result of the pixel-by-pixel calculation does not exceed the predetermined electrical threshold with respect to the electrical component array, and wherein the output also includes electrical values describing the calculation of the electrical component array.
[0152] Example 18: The method of Example 17, wherein the calculated electrical value comprises an average total current for all row combinations of the first animation graphics file, the second animation graphics file, and the mask graphics file.
[0153] Example 19: The method of any one of Examples 17 to 18, wherein the calculated electrical value comprises a highest total current among all row combinations of the first animation graphics file, the second animation graphics file, and the mask graphics file.
[0154] Example 20: The method of any one of Examples 13 to 19, wherein the array of electrical components includes light emitting diodes (LEDs).
[0155] Example 21: A method according to Example 20, wherein the result of the pixel-by-pixel calculation includes calculating an estimated current for each LED color in the LED based on data stored as pixels in the first animation graphics file and the second animation graphics file and the mask graphics file.
[0156] Example 22: The method of Example 21, wherein the estimated current for each LED color in the LEDs is at least one of an average current or a maximum current.
[0157] Example 23: A method according to any one of Examples 20 to 22, wherein the result of the pixel-by-pixel calculation includes an estimated current for each of the LEDs.
[0158] Example 24: The method of Example 23, wherein the estimated current for each of the LEDs is at least one of an average current or a maximum current.
[0159] Example 25: A method according to any one of Examples 13 to 24, wherein each row in the first animation graphics file and the second animation graphics file is associated with a frame in a pattern sequence defined by the first animation graphics file and the second animation graphics file and the mask graphics file, and wherein each pixel in the row is associated with a corresponding electrical component in the electrical component array.
[0160] Example 26: A method according to Example 25, wherein performing the pixel-by-pixel calculation includes processing a first row of each of the first animation graphics file, the second animation graphics file, and the mask graphics file, and then processing a next row of each of the first animation graphics file, the second animation graphics file, and the mask graphics file through multiple iterations.
[0161] Example 27: A method according to Example 26, wherein at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has a time length different from that of another one of the first animation graphics file, the second animation graphics file, or the mask graphics file, and the method further includes starting another loop of at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file after reaching the end of at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file.
[0162] Example 28: A method according to any one of Examples 13 to 27, wherein a series of lines in each of the first animation graphics file, the second animation graphics file, and the mask graphics file are associated with a time flow of a pattern sequence defined by the first animation graphics file, the second animation graphics file, and the mask graphics file.
[0163] Example 29: The method of any one of Examples 13 to 28, wherein the first animation graphics file, the second animation graphics file, and the mask graphics file have a common graphics file type.
[0164] Example 30: The method of Example 29, wherein the generic graphics file type supports lossless data compression.
[0165] Example 31: A method according to any one of Examples 13 to 30, wherein at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has eight bits per color.
[0166] Example 32: A method according to any one of Examples 13 to 30, wherein at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has 16 bits per color.
[0167] Example 33: A method according to any one of Examples 13 to 32, wherein at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has three planes.
[0168] Example 34: A method according to any one of Examples 13 to 32, wherein at least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has four planes.
[0169] Example 35: A method according to any one of Examples 13 to 34, wherein generating the output includes presenting a message on a display device.
[0170] Example 36: The method of any one of Examples 13 to 35, further comprising operating the array of electrical components based on the first animation graphics file and the second animation graphics file.
[0171] Example 37: A computer program product stored in a non-transitory medium and comprising instructions that, when executed by a processor, cause the processor to perform operations comprising:
[0172] accessing a first animation graphic file, a second animation graphic file, a mask graphic file, and predetermined electrical thresholds for an array of electrical components;
[0173] performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file, the second animation graphics file, and the mask graphics file, each of the pixel-by-pixel calculations comprising: determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining a sum of the first scaled pixel value and the second scaled pixel value; and
[0174] An output is generated reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components.
[0175] Example 38: A method comprising:
[0176] accessing a first binary sequence corresponding to an animation graphics file and a second binary sequence corresponding to a mask graphics file;
[0177] combining parts of the first binary sequence with each other according to the second binary sequence to generate a digital bit stream; and
[0178] The digital bit stream is transmitted to control an array of electrical components.
[0179] Example 39: A method according to Example 38, wherein each row in the animation graphics file is associated with a frame in a pattern sequence defined by the animation graphics file and the mask graphics file, and wherein each pixel in the row is associated with a corresponding electrical component in the electrical component array.
[0180] Example 40: A method according to any one of Examples 38 to 39, wherein combining portions of the first binary sequence with each other includes processing a first line of each of the animation graphics file and the mask graphics file, and then processing a next line of each of the animation graphics file and the mask graphics file through multiple iterations.
[0181] Example 41: A method according to Example 40, wherein at least one of the animation graphics file or the mask graphics file has a time length different from that of the other of the animation graphics file or the mask graphics file, and the method further includes starting another loop of at least one of the animation graphics file or the mask graphics file after reaching the end of at least one of the animation graphics file or the mask graphics file.
[0182] Example 42: A method according to any one of Examples 38 to 41, wherein a series of lines in each of the animation graphics file or the mask graphics file is associated with a time flow of a pattern sequence defined by the animation graphics file and the mask graphics file.
[0183] Example 43: The method according to any one of Examples 38 to 42 further includes accessing multiple second binary sequences corresponding to corresponding mask graphic files, and accessing configuration files of specified combinations, each combination including at least two of the animation graphic files and one mask graphic file of the mask graphic files.
[0184] Example 44: The method of Example 43, wherein each of the combinations corresponds to a stable state or a transition state.
[0185] Example 45: The method of Example 44 further comprising regulating a change from a first stable state to a second stable state, wherein the configuration file specifies a transition state between the first stable state and the second stable state.
[0186] Example 46: A method according to any one of Examples 38 to 45, wherein the array of electrical components includes light emitting diodes (LEDs).
[0187] Example 47: The method of Example 46, wherein transmitting the digital bit stream to control the array of electrical components includes transmitting the digital bit stream to a driver for a corresponding LED of the LEDs.
[0188] Example 48: The method of Example 47, wherein transmitting the digital bit stream to drivers for corresponding ones of the LEDs comprises transmitting the digital bit stream through a daisy chain of drivers.
[0189] Example 49: The method according to any one of Examples 38 to 48 further includes generating the first binary sequence using the animation graphics file, and generating the second binary sequence using the mask graphics file.
[0190] Example 50: An apparatus comprising:
[0191] a non-volatile memory storing a first binary sequence corresponding to a corresponding animation graphic file and a second binary sequence corresponding to a mask graphic file;
[0192] an array of electrical components; and
[0193] Hardware that combines portions of the first binary sequence with one another according to the second binary sequence to generate a digital bit stream for the array of electrical components.
[0194] Example 51: An apparatus according to Example 50, wherein the array of electrical components includes light emitting diodes (LEDs).
[0195] Example 52: The apparatus of Example 51, wherein generating the digital bit stream for the array of electrical components comprises transmitting the digital bit stream to a driver for a corresponding one of the LEDs.
[0196] Example 53: The apparatus of Example 52, wherein transmitting the digital bit stream to a driver for a corresponding one of the LEDs comprises transmitting the digital bit stream through a daisy chain of drivers.
[0197] Example 54: An apparatus according to Example 50, wherein the array of electrical components includes an electric motor.
[0198] Example 55: An apparatus according to Example 50, wherein the array of electrical components includes an electric heater.
[0199] Example 56: An apparatus according to Example 50, wherein the array of electrical components includes electrical actuators.
[0200] Example 57: The apparatus of any one of Examples 50 to 56, wherein the hardware comprises:
[0201] a binary multiplier that performs multiplication on at least a portion of the first binary sequence; and
[0202] A binary adder performs addition on the products generated by the binary multiplier.
[0203] Example 58: A set of graphics files, including:
[0204] a first animation graphics (AG) file including first AG pixels, each of the first AG pixels including a first AG value;
[0205] a second AG file including second AG pixels, each of the second AG pixels including a second AG value; and
[0206] A mask graphic (MG) file comprising MG pixels, each of the MG pixels comprising MG values, a first MG value of the MG values specifying a first numerical factor for a first AG value of the first AG values, a second MG value of the MG values specifying a second numerical factor for a second AG value of the second AG values, the MG pixels defining a sum of: (i) the first numerical factor multiplied by the first AG value of the first AG values, and (ii) the second numerical factor multiplied by the second AG value of the second AG values.
[0207] The terms "substantially" and "approximately" used throughout this specification are used to describe and take into account small fluctuations, for example, due to variations in processing. For example, they may refer to less than or equal to ±5%, such as less than or equal to ±2%, such as less than or equal to ±1%, such as less than or equal to ±0.5%, such as less than or equal to ±0.2%, such as less than or equal to ±0.1%, such as less than or equal to ±0.05%. In addition, when used in this article, indefinite articles such as "a" or "an" mean "at least one".
[0208] It should be appreciated that all combinations of the preceding concepts and the additional concepts discussed in more detail below (assuming that these concepts are not mutually contradictory) are contemplated as part of the inventive subject matter disclosed herein. In particular, all combinations of the claimed subject matter appearing at the end of this disclosure are considered to be part of the inventive subject matter disclosed herein.
[0209] A number of implementations have been described. However, it will be appreciated that various modifications can be made without departing from the spirit and scope of the specification.
[0210] In addition, the logic flows depicted in the figures do not require the particular order shown or sequential order to achieve the desired results. In addition, other processes can be provided from the described flows, or processes can be eliminated, and other components can be added to or removed from the described systems. Therefore, other implementations are within the scope of the appended claims.
[0211] Although certain features of the described implementations have been shown as described herein, those skilled in the art will now expect many modifications, substitutions, changes and equivalent forms. Therefore, it should be understood that the appended claims are intended to cover all such modifications and changes that fall within the scope of the implementations. It should be understood that they are merely given as examples and not limitations, and various changes can be made in form and detail. Any part of the apparatus and / or method described herein can be combined in any combination (except mutually exclusive combinations). The implementations described herein can include various combinations and / or sub-combinations of the functions, components and / or features of the different implementations described.
Claims
1. A method comprising: accessing a first animation graphics file, a second animation graphics file, a mask graphics file, and predetermined electrical thresholds for an array of electrical components, wherein the array of electrical components includes light emitting diodes (LEDs), wherein the predetermined electrical thresholds include an upper current limit, wherein pixels in a row of each graphics file correspond to a single electrical component of the array of electrical components, wherein each row in the first animation graphics file and the second animation graphics file is associated with a frame in a sequence of patterns defined by the first animation graphics file, the second animation graphics file, and the mask graphics file, and wherein a corresponding row of each graphics file corresponds to a lapse of time during execution of a pattern of the array of electrical components; performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file and the second animation graphics file and the mask graphics file, each of the pixel-by-pixel calculations comprising: determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining a sum of the first scaled pixel value and the second scaled pixel value; generating an output reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components, wherein the output indicates that a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components, and The mask pattern file is adjusted, wherein adjusting the mask pattern file includes reducing a brightness value.
2. The method according to claim 1, wherein: Performing the pixel-by-pixel calculations includes performing the pixel-by-pixel calculations on all possible combinations of rows from the first animation graphics file, the second animation graphics file, and the mask graphics file.
3. The method according to claim 1, wherein: The result of the pixel-by-pixel calculation includes calculating an estimated current for each LED color in the LEDs based on data stored as pixels in the first and second animation graphics files and the mask graphics file.
4. The method according to claim 3, wherein: The estimated current for each LED color of the LEDs is at least one of an average current or a maximum current.
5. The method according to any one of claims 1 to 4, wherein: The results of the pixel-by-pixel calculations include an estimated current for each of the LEDs.
6. The method according to claim 5, wherein: The estimated current for each of the LEDs is at least one of an average current or a maximum current.
7. The method according to claim 1, wherein: Performing the pixel-by-pixel calculation includes processing a first row of each of the first animation graphics file, the second animation graphics file, and the mask graphics file, and then processing a next row of each of the first animation graphics file, the second animation graphics file, and the mask graphics file through multiple iterations.
8. The method according to claim 7, wherein: At least one of the first animation graphic file, the second animation graphic file, or the mask graphic file has a time length different from that of the other of the first animation graphic file, the second animation graphic file, or the mask graphic file, and the method further includes starting another loop of the first animation graphic file, the second animation graphic file, or the mask graphic file after reaching the end of the at least one of the first animation graphic file, the second animation graphic file, or the mask graphic file.
9. The method according to any one of claims 1 to 8, wherein: A series of lines in each of the first animation graphics file, the second animation graphics file, and the mask graphics file are associated with a temporal flow of a pattern sequence defined by the first animation graphics file, the second animation graphics file, and the mask graphics file.
10. The method according to any one of claims 1 to 9, wherein: The first animation graphic file, the second animation graphic file, and the mask graphic file have a common graphic file type.
11. The method according to claim 10, wherein: The generic graphic file type supports lossless data compression.
12. The method according to any one of claims 1 to 11, wherein: At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has eight bits per color.
13. The method according to any one of claims 1 to 11, wherein: At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has 16 bits per color.
14. The method according to any one of claims 1 to 13, wherein: At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has three planes.
15. The method according to any one of claims 1 to 13, wherein: At least one of the first animation graphics file, the second animation graphics file, or the mask graphics file has four planes.
16. The method according to any one of claims 1 to 15, wherein: Generating the output includes presenting a message on a display device.
17. The method of any one of claims 1 to 16, further comprising operating the electrical component array based on the first animation graphics file and the second animation graphics file.
18. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform operations comprising: accessing a first animation graphic file, a second animation graphic file, a mask graphic file, and predetermined electrical thresholds for an array of electrical components, wherein: the array of electrical components comprises light emitting diodes (LEDs), wherein the predetermined electrical threshold comprises an upper current limit, wherein pixels in a row of each graphics file correspond to a single electrical component of the array of electrical components, wherein each row in the first animation graphics file and the second animation graphics file is associated with a frame in a sequence of patterns defined by the first animation graphics file, the second animation graphics file, and a mask graphics file, and wherein a corresponding row of each graphics file corresponds to a lapse of time during execution of a pattern of the array of electrical components; performing pixel-by-pixel calculations on a combination of rows from the first animation graphics file, the second animation graphics file, and the mask graphics file, each of the pixel-by-pixel calculations comprising: determining a first scaled pixel value by multiplying a first animation pixel value from the first animation graphics file with a first mask pixel value from the mask graphics file, determining a second scaled pixel value by multiplying a second animation pixel value from the second animation graphics file with a second mask pixel value from the mask graphics file, and determining a sum of the first scaled pixel value and the second scaled pixel value; generating an output reflecting whether a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components, wherein the output indicates that a result of the pixel-by-pixel calculation exceeds the predetermined electrical threshold for the array of electrical components, and The mask pattern file is adjusted, wherein adjusting the mask pattern file includes reducing a brightness value.
Citation Information
Patent Citations
Information reproduction apparatus and information reproduction method
CN101042854A
Starting-up brightness control method of organic light emitting panel
CN106991972A
