Method of transmission in a hierarchical data network

CN116828078BActive Publication Date: 2026-10-23NANOGRID LTD (HK)
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202310400089.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-01-04
Filing Date
2019-01-04
Publication Date
2026-10-23
Estimated Expiration
2039-01-04

AI Technical Summary

Technical Problem

由于数据可以是私有的、专有的或不打算供第三方使用,因此这引起了安全方面的担忧

Benefits of technology

[0046]在各种实施方式中,关于拓扑排序和划分或构造复合数组的逻辑执行的组合,描述了一种非常规的方法,使得复合数组内的位置被唯一地关联到数据网络中的节点,而无需额外的索引。该方法是图论方法的重要技术实现,用于解决实际的物理电子设备的技术问题。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116828078B_ABST
    Figure CN116828078B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure generally relate to the field of electronic data communication, and more particularly to transmission methods for hierarchical data networks related to providing "address-less data transmission" of data packets. An order or orders associated with nodes are introduced to establish relationships, and the orders can be stored in a data structure in the form of a tree topology. Thus, the orders of the nodes are known, and logical and / or other data sets, data payloads, etc. can be transmitted across the nodes, where steps of performing the transmissions are more efficient due to the properties of the ordered nodes. Each of the plurality of nodes includes a plurality of network interfaces that form a data network of a tree topology through pairwise junctions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention generally relate to the field of electronic data communication, and more specifically to a transmission method for hierarchical data networks. Background Technology

[0002] Multiple nodes form a data network in which each node is connected to at least one other node among multiple nodes via a communication medium capable of transmitting data.

[0003] A data network can be multiple computers in an office connected to a shared data server. They can be connected via network cables (such as fiber optic cables, coaxial cables, or twisted-pair cables). The method of connecting nodes in a network can be wireless, by transmitting electromagnetic waves at certain frequencies (such as 2.4 GHz or 5 GHz), where antennas coupled to the computers or data server send or receive electromagnetic waves. Multiple nodes can consist of other types of devices, such as printers, cameras, telephones, pedometers, motion sensors, thermometers, and any type of sensor, which can be programmed to generate and transmit digital data via communication media.

[0004] A data network can be multiple sensors installed throughout the vehicle, enabling the sensing of certain characteristics of the surrounding environment through one or more physical interactions, thereby determining factors such as the remaining fuel level in the tank, engine temperature, speed, whether the seatbelt is fastened, or many other characteristics. Nodes in these networks can also include actuators, which are devices capable of performing functions or activities. In a car, this could be warning lights that illuminate if one or more sensors meet one or more logical conditions (e.g., low fuel, or the trunk being hydraulically opened or closed after a button has been pressed). As the vehicle operates, data transmission may need to have very high priority to ensure timely alerts to changing conditions. Multiple sensors and actuators can transmit signals over a common communication medium, such as cables. Therefore, unless contention for the communication medium is addressed, there is a risk of data signals interfering with each other.

[0005] Data networks can consist of sensors and actuators installed in so-called smart homes, smart offices, or smart retail spaces. Examples of such sensors include thermometers, motion sensors, ambient light sensors, sensors to detect whether a door is open, smoke sensors, carbon monoxide sensors, and audio sensors. Examples of such actuators include cameras, lights and illuminators, window openers, blinds, wireless power outlets, smart refrigerators, and alarm clocks. Many of these sensors are small and can be mechanically installed throughout a home, office, or retail space. Due to their wide spatial distribution, they can be installed without any wiring. This may mean that the sensors and actuators must be connected to the data network wirelessly. This may further mean that the sensors and actuators must be powered without being directly connected to a power outlet. The latter can be addressed by installing replaceable batteries. Batteries provide only limited power until they must be replaced.

[0006] Devices that consume as little energy as possible are desired. Wireless communication also means that other devices (not part of the network) with appropriately tuned antennas can receive data transmitted to and from sensors and actuators. This raises security concerns because the data can be private, proprietary, or not intended for third-party use. Furthermore, for installations spanning large areas, the range at which nodes can reliably communicate at sufficient speeds may approach or exceed the size of the installed data network. Summary of the Invention

[0007] Various implementations are described, relating to methods for transmitting data in a data network of nodes, where nodes can be actuators and sensors, wherein the method enables a given computing hardware to perform the required transmissions with minimal time and design complexity.

[0008] This method is implemented on electronic circuitry, which in various embodiments may include physical circuitry, electronic paths, and electronic interfaces for transmitting data and / or power. In some embodiments, a non-transitory computer-readable medium is also envisioned storing machine-translatable instructions that cause a processor to perform the steps of the various methods described herein.

[0009] The mechanism described here concerns "addressless data transmission," which provides a technical solution, particularly for technical problems in the field of data transmission. In the absence of an address, relationships are established to provide electronic paths for the transmission of power and / or data packets.

[0010] This paper uses various methods to describe a method for providing “addressless data transfer”, which is implemented using hardware, software, embedded firmware, circuitry, and / or a combination thereof.

[0011] An order is introduced or associated with nodes to establish a relationship, and this order can be stored in a data structure in the form of a tree topology. Therefore, the order of the nodes is known, and logical and / or other datasets, data payloads, etc., can be transferred between nodes.

[0012] In one implementation, a method is provided for transmitting multiple arrays in a data network comprising multiple nodes and multiple connections between the nodes. Each of the multiple nodes includes multiple network interfaces through which it sends and receives arrays, and connections between the multiple nodes are formed by pairwise connections of the multiple network interfaces of the nodes. The network topology of the connections is a tree topology.

[0013] The method for transmitting data includes: assigning a first order (e.g., a first order relationship) to multiple network interfaces for all nodes in a plurality of nodes; determining a second order (e.g., a second order relationship) of multiple nodes based on the network topology and the first order of the multiple network interfaces; and generating a first composite array by cascading multiple arrays such that the first array and the second array in the first composite array are in equivalent orders to each other, serving as corresponding node pairs for the second order.

[0014] The order is related to the network interface of any given node. This means that the first order makes statements such as "select the first network interface" or "select the next network interface" explicit and consistent for any particular data network facility. This is an important consideration for connecting nodes without addresses, especially for modular electronics with multiple connectable interfaces, where it is unknown in advance which connection will be connected to which connection and in what order (e.g., a user is using modular LED panels to assemble geometry and wants to be able to easily connect them without having to consider matching specific panel interfaces or building the shape and transmitting it to a central controller). The second order is similarly the order of nodes in any given data network. An important consideration is deriving or determining the second order. This is done based on two other properties of the data network: the precise tree topology of the data network and the first order of the nodes that make up the data network. With the second order, the transmission of composite array methods utilizes the determined second order for efficient transmission.

[0015] The contents of the first composite array are transmitted throughout the data network such that each node receives a first continuous sequence of the first composite array from at least one other node connected via a first network interface, and each node sends a second continuous sequence of the first composite array to other nodes connected to it via a second network, wherein the second continuous sequence is constructed based on the first continuous sequence according to the first and second orders.

[0016] Create the first continuous sequence of the composite array. The word "continuous" means that (1) the sequence is ordered, and (2) the sequence overlaps with a portion of the contents of the first composite array. Therefore, the first continuous sequence can be obtained by simply defining a lower bound and an upper bound to be applied to the contents of the first composite array.

[0017] According to some implementations, the process can continue recursively. By applying the same type of minimal setup operation, a second continuous sequence can be constructed from the first continuous sequence, which effectively decomposes the first composite array (or decomposes the ordered contents of the first composite array, preferably formulating it if possible) into a continuous sequence.

[0018] Furthermore, these multiple consecutive sequences are either overlapping or non-overlapping for a given node. In other words, any single content unit (defined as content unit Ω) of the first composite array that has been received through the first network interface of a given node will be transmitted only through at most one other network interface of the same given node. It is possible that it will not be transmitted through a network interface because the content unit may be intended for use by a given node.

[0019] On the other hand, the functions associated with the first and second consecutive sequences of the first composite array include: dividing the first consecutive sequence into an array of overlapping or non-overlapping sequences of a number equal to or greater than the number of network interfaces to which the node is connected, and assigning the second consecutive sequence as an overlapping or non-overlapping sequence to other network interfaces in the first sequence as a second network interface in an order equivalent to that of the other overlapping or non-overlapping sequences (e.g., according to an equivalent order relationship).

[0020] On the other hand, the functions associated with the first and second consecutive sequences of the first composite array include: aggregating overlapping or non-overlapping sequences of arrays whose number is equal to or greater than the number of network interfaces to which the node is connected, wherein the second consecutive sequence is an overlapping or non-overlapping sequence that has the same order as other overlapping or non-overlapping sequences of second network interfaces that are other network interfaces to the first order, and assigning the aggregating sequence as the first consecutive sequence.

[0021] On the other hand, the method includes: generating / creating an acknowledgment message after all consecutive sequences of transmissions through the connected second network interface have been completed; and sending the acknowledgment message through the node's first network interface.

[0022] On the other hand, after sending the second consecutive sequence through the second network interface until at least one acknowledgment message is received through the same second network interface, at least one of the plurality of nodes suspends further execution of the transmission, such that further execution of the transmission is conditional upon successful transmission to the node preceding it in the determined plurality of node sequences.

[0023] On the other hand, if a node in the data network fails to receive at least one acknowledgment message caused by sending a second consecutive sequence within a time threshold, an error message is generated.

[0024] On the other hand, for a data network, the determined second order is obtained once and stored in memory (e.g., a data storage or non-transitory computer-readable medium) such that the determined second order is retrieved from memory during the creation and transmission of the first composite array.

[0025] On the other hand, for a data network, a cell that obtains the determined second order at a frequency of less than or equal to four times per second and stores the second order in memory allows the currently determined second order to be retrieved from memory during the creation and transmission of the first composite array.

[0026] On the other hand, the network interface includes serial ports on each of the multiple nodes arranged geometrically.

[0027] On the other hand, each of the multiple nodes has three serial ports.

[0028] On the other hand, the number of serial ports for each of the multiple nodes is equal to four.

[0029] Other numbers of serial ports are also possible, and can vary, for example, depending on the number of sides of the modular electrical component (e.g., an LED illuminator). For instance, such a modular electrical component may include triangular, rectangular, pentagonal, hexagonal, heptagonal, octagonal, off-diagonal, decagonal, etc., panels, and a portion of such a panel or each side may include interfaces that require sequencing to improve data flow. In some implementations, there may also be one or more sides without interfaces (e.g., a hexagonal module does not necessarily have six interfaces).

[0030] On the other hand, the order of the network interfaces of each of the multiple nodes corresponds to a clockwise traversal of the geometric relationship of the serial ports.

[0031] On the other hand, the order of the network interfaces of each of the multiple nodes corresponds to a counterclockwise traversal of the geometric relationship of the serial ports.

[0032] On the other hand, the nodes in the plurality of nodes also include digital or analog sensors to sense one or more states of the node or the environment of the node, and wherein the sensed states are digitally represented as an array forming part of a first composite array transmitted in the data network.

[0033] On the other hand, the state sensed by a node among multiple nodes is whether there is an object in the immediate vicinity of that node.

[0034] On the other hand, the state sensed by the node is the movement of an object through the air within a path (e.g., 10, 15, 20, 25 meters) from the digital or analog sensor.

[0035] On the other hand, the node also includes a physical actuator (e.g., a drive current) that is actuated to set one or more states of the component according to a portion of the contents of the first composite array received by the node through one or more of its network interfaces.

[0036] On the other hand, node actuation is the setting of drive current for multiple light-emitting diodes.

[0037] On the other hand, the tree topology of the network topology is determined as the spanning tree of all network interface connections, such that the connections of the spanning tree are a subset of all network interface connections.

[0038] On the other hand, a method is provided for transmitting an array in a data network comprising multiple nodes and multiple connections between the nodes, wherein the array transmission is from a source node to a target node from one of the multiple nodes; each of the multiple nodes includes multiple network interfaces through which the array is sent and received, and the connections between the nodes are formed by pairwise connections of the multiple network interfaces of the nodes, such that the network topology of the connections is a tree topology. The method includes: assigning a first order to the multiple network interfaces for all nodes in the multiple nodes; determining a second order for the multiple nodes according to the network topology and the first order of the multiple network interfaces; generating a first composite array using a first array and a first integer and a second integer, wherein the first integer is set according to the position of the source node or target node within the determined order; and transmitting the contents of the first composite array throughout the data network such that a node receives the first composite array through a first network interface, and transmits the first composite array through a second network interface only when the sum of the second integer of the first composite array and the number of nodes contained in the branches of the tree-like data network topology connected to the node through the second network interface exceeds the value of the first integer of the first composite array. A second network interface is selected iteratively from a first order of multiple network interfaces of the node, wherein if the composite array is not sent through the second network interface, a second integer of the first composite array is incremented by the number of nodes contained in the branches of the tree data network topology connected to the node through the second network interface.

[0039] On the other hand, based on the various methods described in the embodiments herein, a corresponding data network is conceived, which includes multiple nodes and multiple connections between the nodes, the multiple nodes of which are adapted to transmit arrays throughout the data network.

[0040] In another aspect, a corresponding computer-readable medium is provided that stores machine-interpretable instructions that, when executed by a processor, cause the processor to perform the methods described in the embodiments herein.

[0041] On the other hand, methods for data transmission are carried out on a physical computing system controlling addressless modular electronic devices. These addressless modular electronic devices can, for example, be dynamically connected in various geometries at one or more connection points in each modular electronic device. The modular electronic devices include communication circuits that can be considered as “nodes” and utilize the various mechanisms described herein for data transmission to transmit power, data, and combinations thereof. For example, a modular electronic device can be a illuminator or illuminator controller circuit, and utilizes the transmission of composite arrays during the propagation of control messages across multiple nodes, which is particularly suitable for the operational characteristics of display control illuminators or illuminator controller circuits designed according to different types of graphics. As described in further detail, data transmission methods can be advantageous in establishing efficient communication and propagation of data messages through addressless modular devices.

[0042] More specifically, in the example implementation, the method for data transmission is particularly used to propagate data packets containing stored control messages, which in particular indicate a drive current that actuates display changes or illumination from a illuminator or illuminator controller circuit.

[0043] In this implementation, information is transmitted via nodes and their connections through a data payload, which includes portions for forwarding and portions for execution. An improved data structure with reduced forwarding overhead is described, potentially improving efficiency.

[0044] This method is applicable to data networks with tree topologies, and also covers star and linear topologies. Because any network connecting a first plurality of nodes via first plurality of node-to-node connections can be transformed into a network connecting the same first plurality of nodes but having a second plurality of node-to-node connections (which are subsets of the first plurality of connections), where the second plurality of connections have a tree topology (referred to in the prior art as a method for finding a spanning tree), after the disclosed preprocessing, data can be transferred between any plurality of normally interconnected nodes using the transmission method. The implementation is not limited to networks with tree topologies, but is limited to various topologies, because it is assumed that the preprocessing can always create a spanning tree.

[0045] Order is imposed on the network. Tree topology makes it possible to clearly define order. With predictable order, composite arrays can be constructed, which consist of arrays containing data from a node in the network, so that a node can receive its array without performing any other logical operation on each node other than forwarding an ordered set of composite arrays through the network interface of any given node.

[0046] In various implementations, a combination of logical executions involving topological sorting and partitioning or constructing composite arrays describes an unconventional method that uniquely associates positions within the composite array with nodes in the data network without requiring additional indexes. This method represents a significant technical implementation of graph theory approaches used to address technical problems in practical physical electronic devices.

[0047] In implementation, the mechanism connects nodes via a wired communication medium, although other media are also possible, and other types of coupling (including indirect connections) are also possible. Another advantage of wired media is their shorter physical length, which, combined with a tree topology, means that large components can still utilize data communication methods relying on very modest voltages to increase data rates and reduce unwanted electromagnetic interference. This is not a necessary part of a novel data transmission method, but it increases the method's practicality because the large physical components of the interconnected devices can operate with appropriate values ​​of operating variables.

[0048] In one embodiment, the mechanism is connected to a lighting device, such as a color-adjustable LED illuminator. In another embodiment, the mechanism is connected to a touch-sensitive LED illuminator.

[0049] This method can be applied to any data network consisting of multiple nodes, where the nodes can be sensors and actuators, and the multiple nodes can be composed of functionally and structurally heterogeneous devices.

[0050] On the other hand, a network can also be a network of networks.

[0051] In various other respects, this disclosure provides corresponding systems and devices, as well as logical structures for implementing such systems, devices, and methods, such as machine-executable coded instruction sets.

[0052] In this regard, before explaining at least one embodiment in detail, it should be understood that the embodiments are not limited to the construction details and arrangement of the components set forth in the following description or shown in the accompanying drawings. Furthermore, it should be understood that the wording and terminology used herein are for descriptive purposes and should not be considered limiting.

[0053] Many other features, arrangements, and combinations thereof related to the embodiments described herein are possible and can be anticipated. Attached Figure Description

[0054] The accompanying drawings illustrate exemplary embodiments. It should be clearly understood that the specification and drawings are for illustrative purposes only and to aid understanding.

[0055] The embodiments will now be described by way of example only with reference to the accompanying drawings, in which:

[0056] Figure 1 This is a data structure diagram based on some implementations, which shows an example array and a digital system representation that encodes the light output from LED illuminators in different color spaces.

[0057] Figure 2 This is an illustration of an example of a single data network node according to some implementations, which in some implementations may include a light-emitting diode.

[0058] Figure 3 This is an illustration of a data network according to some implementations, which consists of four LED illuminators connected in a tree topology and a controller, wherein each LED illuminator has four network interfaces and can emit a certain number of red, green, blue and white lights.

[0059] Figure 4 This is a data structure diagram of an array according to some implementation methods, showing an example array including a header and payload, which enables logical instructions to efficiently transmit data in a data network.

[0060] Figure 5 It is a diagram of an array representing a data network topology according to some implementation methods.

[0061] Figure 6 This is an example flowchart of a method for detecting layout according to some implementation methods.

[0062] Figure 7 This is an example flowchart of a method for performing batch updates according to some implementation methods.

[0063] Figure 8 This is an example flowchart of a method for performing a single update according to some implementation methods.

[0064] Figure 9 This is an example flowchart of a method for performing batch pulls according to some implementation methods.

[0065] Figure 10 This is a rendering of the installation of several independently controllable light panels in a kitchen ceiling, which can be controlled as a unit using data communication protocols implemented in various ways.

[0066] Figure 11 This is a rendering illustrating the installation of several individually controllable light panels on the wall of a child's bedroom, which can be controlled as a unit using data communication protocols implemented in various ways.

[0067] Figure 12 These are example diagrams illustrating embodiments of continuous sequences according to some implementation methods. Detailed Implementation

[0068] The embodiments described herein address technical problems related to communication across electronic data networks, particularly in the case of communication between components without assigned addresses. This document describes methods for providing "addressless data transmission" using various implementation approaches, implemented using hardware, software, embedded firmware, circuitry, and / or combinations thereof. Orders are introduced or associated with nodes to establish relationships, and these orders can be stored in a data structure in the form of a tree topology. Therefore, the order of the nodes is known, and logical and / or other datasets, data payloads, etc., can be transferred between nodes. Content transfer provides improved data transmission across topologies, such as traversal of a tree topology across addressless nodes.

[0069] These are three non-limiting examples of data networks, illustrating many design challenges in data networking. At the heart of addressing these challenges are the methods for packaging and transmitting data over the network. These methods can be called communication protocols, or simply protocols. Examples of existing protocols include, but are not limited to, Wi-Fi and Bluetooth. TM Ethernet, Zigbee TM A protocol is defined as logical instructions on how data is encoded and transmitted in a data network. Some protocols include additional specifications on how data is presented to other networks or devices or how connections to the Internet are handled. Therefore, a data network can potentially use a variety of protocols that require the discontinuous set of commands and tasks needed to transmit some data within a given network and some data to other networks. Logical instructions can be programmed into a software language and, once executed on a processing unit such as a central processing unit (CPU), microcontroller, or typically an integrated circuit (IC), are translated into a sequence of commands. The specific application to which the data network belongs, the optimal installation method for the data network, the protocols used, and the implementation and execution of those protocols may vary.

[0070] Implementations of methods for creating communication protocols are described. Corresponding apparatus, devices, processes, and computer-readable media are contemplated. A technical approach using configured hardware and software is described, providing a technical solution to offer improved electronic communication.

[0071] This protocol enables high-data-rate data communication between potentially numerous heterogeneous devices. Example data networks include partially non-wireless communication media and multiple nodes interconnected in a known or inferred abstract structure or topology, where at least one node is a network controller capable of communicating data with its local network and other external networks. In some implementations, the data network is part of a modular assembly of a light-emitting diode (LED) lamp or illuminator, which can be actuated by data communicated within the network, where actuation means obtaining different optical outputs from the LED lamp or illuminator. In some implementations, the network is part of an installation in a smart home, smart office, or smart retail space, where multiple sensors and actuators can be linked together and connected to at least one processing unit capable of executing logical instructions relating to the inputs and outputs of the multiple sensors or actuators of the data network.

[0072] Several exemplary implementations are provided. Electrical, mechanical, logical, and structural changes may be made to the implementations without departing from the spirit and scope thereof. Node composition and control

[0073] One exemplary implementation is a method for controlling multiple colored LED illuminators. The light output of any given LED illuminator is a mixture of the light outputs from multiple LED chips. In some implementations, the LED chips primarily emit red, green, and blue light, respectively. This can be called an RGB illuminator. In some implementations, the LED chips primarily emit red, green, blue, and white light, respectively. This can be called an RGBW illuminator. In some implementations, all LED chips emit white light but have varying correlated color temperature (CCT). This can be called a dimmable white light illuminator. In some implementations, all LED chips emit the same type of white light. This can be called a dimmable illuminator. LEDs are composed of materials that act as semiconductors.

[0074] The intensity of light emitted by each LED in any given LED illuminator is a function of the total current driving the LEDs. Assuming operating conditions (e.g., but not limited to temperature and energy efficiency) are within the tolerances of the LED chip, any light output of a given LED chip or any given plurality of LED chips connected in sequence corresponds to the current.

[0075] The optical output of one or more LED chips can be encoded into an array; please refer to [link to relevant documentation]. Figure 1For RGBW illuminators, four independent data units can encode the light intensity or luminous flux to be emitted by each of the four individually controllable LED chip types. Multiple LED chips in the illuminator can consist of multiple chips of each LED chip type. Possible configurations could include three red LED chips, three green LED chips, three blue LED chips, and four white LED chips. In this configuration, the first element of the array can encode the light intensity or luminous flux of the red LED chips acting uniformly, the second element can encode the light intensity or luminous flux of the red LED chips acting uniformly, the third element can encode the light intensity or luminous flux of the blue LED chips acting uniformly, and the fourth element can encode the light intensity or luminous flux of the white LED chips acting uniformly. Elements in the arrays for RGB, tunable white, dimmable, or other illuminators can follow the same or similar conventions.

[0076] exist Figure 1 In (a), an example of an array of RGBW illuminators is given. In this implementation, the maximum light output that can be generated within the operating tolerance of the illuminator can be achieved by multiple LED chip types corresponding to the integer 255 encoding. Figure 1 In (a), this value is assigned to the red and blue LED chip types. In this implementation, zero is used for no light output, which is an integer assigned to the green and white LED chip types. Values ​​between zero and 255 encode light output between two extremes. Therefore, under this convention, assuming that the two different optical outputs from the LED chips have been sufficiently mixed, then... Figure 1 The specific array shown in (a) will encode the magenta optical output.

[0077] The type of color space representation used for optical output can differ between implementations. Color spaces such as RGB, CMYK, HSL, HSV, CIE 1931, and CIEUV can be used. Figure 1 (b) is an example of optical output data where colors are represented in the HSL color space. In this implementation, as in the RGBW implementation, the array is mapped to multiple currents; however, a different mapping is used. Therefore, all color space representations can be converted to one or more drive currents, provided that at least one of the color space representations can be converted to one or more drive currents.

[0078] Figure 1 The data in (a) and 1(b) are represented using a decimal-based number system. In some computer applications or generally in digital computation, a binary number system may be preferred. Figure 1 In (c), the binary representation is shown. Figure 1The same data as in (a). In some applications, the hexadecimal number system may be preferred. Figure 1 In (d), the numbers are displayed in hexadecimal representation. Figure 1 (a) The same data. Other numerical representations can be considered. Since conversions can be established between different color spaces and different numerical representations, it does not matter which numerical and color space representation is used in the construction of the array.

[0079] Reference Figure 2 For each LED illuminator, an embedded microprocessor or digital processor 101 may be present. As used herein, these devices are generally intended to include digital processing devices such as, but not limited to, digital signal processors (DSPs), reduced instruction set computers (RISCs), general-purpose (CISC) processors, microprocessors, gate arrays (e.g., FPGAs), PLDs, reconfigurable computer architectures (RCFs), array processors, secure microprocessors, and application-specific integrated circuits (ASICs). Such digital processors may be contained in a single monolithic IC chip or distributed across multiple components. The embedded microprocessor can interpret arrays of any coded form as electronic instructions, thereby changing the optical output of the LED illuminator accordingly.

[0080] For each LED illuminator, a volatile or non-volatile memory 102 may be present. As used herein, it includes an IC or other storage device suitable for storing digital data, such as, but not limited to, ROM, PROM, EEPROM, DRAM, SDRAM, DDR / 2 SDRAM, EDO / FPMS, RLDRAM, SRAM, "flash memory" (e.g., NAND / NOR), and PSRAM. The memory may store arrays for optical output in any encoded manner, or arrays of any other type, for the duration of the set period, or as long as the LED illuminator is powered on, or as long as a particular portion of the memory is not overwritten by other arrays. The memory is connected 112 to the microprocessor 101 such that the arrays can be transferred between the two components.

[0081] For each LED illuminator, one or more network interfaces 103 may exist. As used herein, this refers to any signals, data, or software that interface with components, networks, or processes (e.g., but not limited to Firewire (e.g., FW400, FW800), USB (e.g., USB2), Ethernet (e.g., 10 / 100, 10 / 100 / 1000, 10-Gig-E), MoCA, Serial ATA (e.g., SATA, e-SATA, SATAII), Ultra-ATA / DMA, Coaxsys (e.g., Tvnet), RF tuners (e.g., in-band or OOB, cable modems), WiFi (802.11a, b, g, n), WiMAX (802.16), PAN (802.15), or IrDA series). One or more network interfaces receive arrays from external sources 104 to a given LED illuminator. A network interface 123 is connected to a memory 102, a microprocessor 101, or both, to enable further processing of the received array, or to enable the creation or storage of an array to be sent to an external node via the network interface of one or more given LED illuminators.

[0082] For each LED illuminator, a clock or internal clock 105 may be present. This clock is a component that regulates the speed of any computing function, which can be measured in Hertz (Hz) clock rates. Clock rates may be, but are not limited to, 1 kHz, 5 kHz, 2 MHz, 4.77 MHz, 100 MHz, and 5.5 GHz. The clock may be integrated with the microprocessor 101. The clock also allows the LED illuminator to track durations, thus enabling the programming and execution of logical instructions, such as conditions regarding how much time has elapsed between an executed command and an event, on the microprocessor.

[0083] LED luminaires may include additional electronic components 106. These electronic components can be any electronic components that appropriately regulate the voltage and current to the LED chip, thereby meeting requirements regarding energy efficiency, electrical safety, electromagnetic interference, and other optimal electrical engineering thresholds while achieving the desired lighting output. The exact composition or method of electrically configuring or controlling the LED may vary. Other electronic components may include additional actuators and sensors to enable the LED luminaire to perform functions other than lighting. The exact composition of these auxiliary functions may vary, and their integration in the communication protocol will be described in further detail below.

[0084] LED luminaires or network nodes can be connected 167 to an external or internal power source 107, enabling various components to function. The power source can be direct current (DC) or alternating current (AC) from the grid, battery, or off-grid power (e.g., solar cells). In some embodiments, the connection to the external power source 107 is made over the same medium as the connection to the external data source 104.

[0085] LED illuminators may include auxiliary optics to convert the light emitted from the LED chip before it is emitted into the surrounding environment for illumination. The exact composition of the auxiliary optics or the method of operation of the optics may vary.

[0086] LED luminaires or network nodes can be enclosed by material 108, which provides mechanical support for the components and protects them from disturbances such as, but not limited to, physical damage, humidity, and interference radiation. The enclosure material can also be used to remove excess heat from the internal components to the surrounding environment. The enclosure material can also be shaped to provide a functionally or aesthetically advantageous form for the LED luminaire. This material can be a plastic polymer, aluminum, steel, glass, wood, or any other solid material or a combination thereof.

[0087] In some embodiments, the present invention relates to other components and functions that are different from those of LED lighting. Figure 2 The implementation described herein can be used to describe an ambient temperature sensor with minimal modification, wherein a microprocessor, memory, network interface, clock, additional electronic components, power supply, and protective materials having the aforementioned characteristics for LED illuminators are also used. The thermometer may include a thermistor that correlates temperature with resistance via a known relationship, and this resistance may be part of secondary component 106. The resistance value can be converted into an array containing at least the temperature, in units including but not limited to Fahrenheit, Celsius, Kelvin, and Rankine, via logical instructions executed on microprocessor 101. Memory 102 enables the storage of an array containing at least the temperature or other arrays. A network interface or multiple network interfaces 103 enables the thermometer to communicate an array with or from an external target or source 104. The data communicated in this way can be represented as an array, in which one of the multiple equivalent systems defined above can be used. This illustrates... Figure 2 The configuration in this paper can be applied to other sensors and actuators besides LED lighting, assuming that the secondary electronic component 106 can communicate data with the microprocessor.

[0088] Other examples of sensors exist that can generate data and communicate. The number of quantities that can be sensed includes, but is not limited to, the chemical concentration of certain compounds, electric fields, gravity, humidity, light intensity within a certain wavelength range, position within a reference frame, magnetic fields, motion, direction, pressure, shear stress, sound, temperature, tension or compression, torsion, and vibration. Sensors that can be used to generate analog or digital signals of these quantities include, but are not limited to, air flow meters, audio sensors, calorimeters, electricity meters, gas meters, GPS locators, infrared sensors, microwave radiometers, accelerometers, gyroscopes or other motion detectors, potentiometers, pressure sensors, capacitively based proximity or touch sensors, static or video cameras, and thermometers.

[0089] This is typically referred to as a node or network node that is part of a data network. This should be understood as any actuator or sensor capable of conveying data or arrays via logical instructions described in the various implementations. For clarity, many descriptions relate to LED luminaires, but the implementations are not limited to specific applications of LED luminaires but can be applied to interconnected electrical components, such as modular electronic devices. Multiple connection nodes and instructions created

[0090] In some embodiments, the plurality of LED illuminators or network nodes described above are connected to each other via a network interface. One or more interconnected LED illuminators or network nodes are also typically connected to a controller. The controller may be a device including a microprocessor, memory, and a network interface, wherein at least one network interface is typically compatible with at least one network interface of at least one LED illuminator or network node. Once connected to an LED illuminator or network node, the controller can communicate with the array of LED illuminators or network nodes via the network interface. In some embodiments, the controller may be integrated with one or more LED illuminators or other network nodes. This means that the material surrounding the components of the controller may completely or partially also surround the components of the LED illuminators or other network nodes. The advantage of this configuration is that, to an observer, the controller is not a separate physical unit, but rather the component may include visually identical physical units. Thus, in the described embodiments, the controller is a unit that plays a specific role in the network for data communication and overall control of the network nodes, and the controller may appear as a component separate from all other network nodes, or it may appear as integrated into one or more other network nodes.

[0091] In implementations where multiple LED illuminators or network nodes are interconnected via multiple network interfaces, an array originating from the controller can reach the network interface of any LED illuminator or network node portion of the network. This operation may require the LED illuminator or network node to execute logical instructions to route or otherwise facilitate the transmission of the array, such that it first receives the array through one network interface and then transmits the same or modified array through the same or different network interfaces. Details on how this is achieved will be further described below.

[0092] In a network of nodes, where nodes perform functions requiring electricity, such as, but not limited to, generating light from one or more LED chips, they can receive electrical power from adjacent network nodes via a conductive medium. In these embodiments, at least one of the network nodes is connected to an external power source. As mentioned above, this can include, but is not limited to, a power grid that typically provides alternating current at a set voltage, off-grid power sources (e.g., solar panels), or batteries.

[0093] In some implementations, the node network is connected to more than one external power source. This can be an advantageous implementation when connecting a large number of nodes and having only one external power source, thus meaning a relatively large amount of current must be transmitted throughout the network. Network operation can be performed before node grouping, so that the nodes in a given group, and only the nodes in that group, are powered by one of many power sources. Each node in a group must be connected to said power source via a conductive medium, or to at least one other node in the group via a conductive medium, and the group consists of at least one node having the former property. It is contemplated that the method of assigning nodes to groups is similar to the data communication method described below. The exact method of powering the nodes can be independent of the method of data communication in the network. Therefore, in all embodiments of the invention, it can be assumed that nodes have access to electricity.

[0094] The controller can execute logic instructions relating to sending and receiving data from external devices, not the aforementioned LED lights or network nodes. External devices include, but are not limited to, desktop computers, laptops, smartphones, routers, wearable pedometers, heart monitors, cameras, motion sensors, doorbells, microphones, or internet-connected remote processors or computers, wherein the latter can execute application-specific logic instructions, such as, but not limited to, social media profiles, online weather services, real-time prices in stock or commodity markets, email, or messaging services. The communication medium can be wired, such as, but not limited to, Ethernet or power line communication (PLC), or wireless, such as, but not limited to, Wi-Fi, Bluetooth™, and Zigbee™. A device that connects two otherwise disjoint networks, or connects and appropriately translates arrays between two otherwise disjoint networks, can be called a gateway.

[0095] The controller may contain a rules engine that associates certain inputs with certain outputs. Inputs can be one or more arrays, originating from sources outside the controller and LED illuminators or nodes, or originating from multiple LED illuminators or nodes within the controller. Outputs generated by the rules engine can be sent to sources outside the controller via a network interface, or to multiple LED illuminators or network nodes via one or more network interfaces. The execution of the rules engine on the controller (which can be a gateway between different networks) allows it to associate inputs from one data network with outputs to be sent to that data network, or vice versa.

[0096] A rule engine can adapt to auxiliary inputs and thus change so that a given input from one or more networks is associated with another output from a previous instance of the rule engine. Adaptation can make the rule engine fully or approximately satisfy the objective. The objective can be encoded as an objective function that creates a goodness-of-fit value that the rule engine can achieve. This objective function can then be used with a meta-rule engine to adjust the internal parameters of the rule engine, thereby increasing the likelihood of a better goodness-of-fit value.

[0097] Rule engines and meta-rule engines can be implemented as logical instructions stored in digital memory and executed by the microprocessor of the controller. Rule engines can be implemented using methods such as, but not limited to, decision trees, support vector machines, linear discriminators, neural networks, convolutional neural networks, Naive Bayes classifiers, linear regression, logistic regression, or various ensemble methods such as, but not limited to, random forests, gradient boosting of decision trees, and bagging of decision trees. Meta-rule engines can be implemented using the same methods or optimization methods, such as, but not limited to, zero-order optimization methods such as genetic algorithms, random walks, Metropolis-Hastings Monte Carlo methods, simulated annealing, or higher-order optimization methods such as gradient descent, quasi-Newton methods, and Levenberg-Marquardt methods.

[0098] Some or all of the logical instructions of the rule engine and meta-rule engine can typically be stored and executed externally to the controller and LED illuminators or network nodes. This execution can occur on a separate computer, smartphone, or computing device that receives input from the controller via a network interface, evaluates the output according to the rule engine, and then transmits the output back to the controller via the network interface. In these cases, the controller may include additional logical instructions to ensure that the input it receives is authentic and not generated by external sources that should not have access to the controller.

[0099] Rule engines, typically executed externally to controllers and LED illuminators or network nodes, offer the advantage of controlling multiple otherwise separate data networks. This design allows for the construction of controllers with fewer, smaller, or cheaper components, increasing the practicality of a particular implementation. However, this design is vulnerable to attack if the network interface with external computing devices is temporarily or permanently disabled. Communication with external computing devices can also increase the time between array transfers and their processing to generate output. Therefore, the optimal implementation of the controller and rule engine can depend on the use case and a cost and risk analysis for the intended application. However, in relation to this invention, the exact location relative to the LED illuminators or network nodes (where the rule engine is evaluated) is generally not critical, and any variations listed above are conceivable. Therefore, any description of the controller and the commands executed on the controller can generally refer to one or more local or remote devices relative to multiple LED illuminators or network nodes, or some combination of some devices being local and some being remote.

[0100] The rules engine can be instructed to create an array of optical outputs for an LED illuminator on any given instance. See [link to relevant documentation]. Figure 1 In embodiments that include multiple LED illuminators, multiple arrays are thus created, designed to indicate all specific subsets or portions of the optical output to be generated from each individual LED illuminator. These multiple arrays can be generated from another source, such as manually created via a command line, a touchscreen user interface, or voice commands. Regarding the invention, the method of creating the multiple arrays and the manner in which the multiple data arrive at the controller are not critical, and any of the methods described above or others can be used.

[0101] Therefore, the method described in detail below relates to how a given set of arrays, typically received by, stored in, or generated by the controller, are transferred from the controller to an LED illuminator or network node. The method described also relates to how a given set of arrays, typically stored or generated by multiple LED illuminators or network nodes, are transferred to the controller. The logical instructions executed by the LED illuminator to convert the given array into a light output, or by the network node to convert the given array into a changing state, can be as described above, or by any other method. The network and transport protocols can be independent of how the arrays are generated and how the logical instructions of a given type of network node interpret the arrays. This is an example of a layered design principle that is often considered when dealing with public and proprietary communication protocols.

[0102] Reference Figure 3In an exemplary embodiment of the LED components, there are four interconnected LED illuminators 200 of the same type, with multiple of them connected to a controller 211. Each LED illuminator can be independently configured with respect to the luminous flux from red, green, blue, and white LED chip types, where these fluxes are encoded as arrays 201. Therefore, the arrays between the LED illuminators can be different at any given time.

[0103] Figure 3 Each LED illuminator in the exemplary embodiments has four distinct network interfaces 103, which can be connected 104 to another LED illuminator, controller, or are unoccupied. Within a given LED illuminator, the network interface 103 is uniquely identified in a particular embodiment by identifiers a, b, c, and d. Other embodiments may make the network interfaces within a given LED illuminator identifiable. In some embodiments, each LED illuminator 200, as part of an interconnect component, is uniquely associated with identifier 202 by Roman numerals I, II, III, and IV in a particular embodiment. Different means may also be used to identify LED illuminators. The identifiers of LED illuminators or network interfaces may be static throughout the product's lifecycle or may be changed in some way during the product's lifecycle. In various embodiments, the first order provided herein refers to the order of network interfaces on any node feature. A lexicographical order, a>b>c>d, is provided. Figure 3 The specific example is correct. However, other orders can be considered, including those established by clockwise and counterclockwise traversal, since in various implementations they are the same as the lexicographical order portion in the specific example.

[0104] The first order can be considered a "first-order relation," which is the order in which the network interface of any given node is located. This means that the first order makes statements such as "selecting the first network interface" or "selecting the next network interface" explicit and consistent for any particular data network installation. As described below, it is possible to base decisions on the first order (e.g., regarding...). Figure 6 Establish the second order.

[0105] The device connecting 104 LED luminaires can be either a short wire or a rigid connector, enabling communication within the array. Examples of such methods are given in the paragraphs above. In the case of wires or rigid connectors, the connection method of the LED luminaires reflects their relative spatial arrangement in the installation space. Connections can also be made via long, flexible wires or wirelessly. Examples of such methods are given in the paragraphs above. In these cases, Figure 3 Connection 104 in the diagram does not need to reflect the relative spatial arrangement of the LED luminaire in its installation space. Data Networks and Topology

[0106] Can Figure 3 Connection 104 in the diagram is understood as an abstract representation of available paths for data transmission between LED illuminators or between an LED illuminator and a controller via their respective network interfaces, regardless of their physical form or the physical characteristics of the communication medium. Under this abstract understanding, multiple LED illuminators are typically network nodes, and multiple connections include data networks.

[0107] In a data network invariant under certain continuous transformations, the qualitative geometric aspect of multiple node-to-node connections is called the network topology, or simply topology. This topology is fully defined through an exhaustive enumeration of the connections 104 between network interfaces 103. Figure 3 The exemplary data network topology is as follows: LED illuminator I is connected to the controller, and LED illuminators II and III are connected to LED illuminator IV. The network topology can be represented as a mathematical graph. This representation can be embodied in an array, which will be discussed further below.

[0108] Several types of network topologies have been described in the graph theory literature. These include: 1. Linear Topology. In a network, every node is connected to two other nodes, except for two nodes that are connected to only one other node. This can be viewed as a line where there is only one shortest path for data to travel from one node to another, which may involve intermediate nodes. In the case of a network with only two nodes, a particular linear topology can be called a point-to-point topology. 2. Ring Topology. Each node in the network is connected to two other nodes. This topology means that the nodes are connected in a ring, so there are two possible paths for an array to be transmitted from any node to any other node, either clockwise or counterclockwise, and both paths may involve intermediate nodes. 3. Bus Topology. Each node is connected to a common network backbone, which serves as the communication medium for transmitting arrays. This topology differs from the previous two in that arrays can be sent between any two nodes without involving other nodes. Since all array transmissions are done through the network backbone, contention for this resource may occur if multiple arrays are sent simultaneously. 4. Star Topology. Each node connects to only one other node, except for one node that connects to all other nodes. This topology means that there is a central node through which all data packets must be transmitted without the need for all other nodes to assist in the transmission. In a typical implementation, the central node is the network controller. 5. Tree Topology. Nodes are connected in a hierarchical structure, where a given node is connected at each level of the hierarchy to a node above itself in the hierarchy, and to zero or more nodes below itself in the hierarchy, and to zero nodes at the same level in the hierarchy. Therefore, a tree hierarchy contains a root node, which can be the controller. There is only one shortest path for data packets to travel between nodes closer to the root (including the root itself) or farther from the root. It can be proven that a tree topology contains fewer node-to-node connections than the number of nodes in the network. In a special case of a tree topology (where each level contains only one node), a linear topology is obtained. In a special case of a tree topology (where there is only one level below the root node), a star topology is obtained. 6. Fully connected topology. Every node is connected to all other nodes. Packet transmission from one node to any other node is conceptually simple because a direct connection is guaranteed, and no other node is needed as an intermediary. 7. Mesh Topology. Each node can connect to one, all, or a moderate number of other nodes in the network. This is the least constrained topology. A network in this topology can contain some nodes that are more connected than others, but not all, allowing arrays to be transferred between nodes involving multiple other nodes. There may be multiple transmission paths, including loops where the array can return to its source. Fewer constraints mean many special cases exist, thus requiring more complex logical instructions than most other network topologies to handle array transfers. 8. Hybrid Topology. This topology is a combination of other topologies, which allows the network to be completely divided into interconnected subnets, where each subnet has a topology of one of the above categories, but not necessarily the same category.

[0109] therefore, Figure 3 The network in the diagram is a tree topology, where the controller is the root node, and other nodes are ordered in three levels below the root node. An LED illuminator with identifier I is one level higher in the hierarchy than LEDs with identifiers II and III. An LED illuminator with identifier IIV is lower in the hierarchy than all other LEDs and is connected only to the one LED illuminator above it, namely the LED with identifier III.

[0110] Because data networks are constructed by connecting multiple devices, the properties of a data network topology may be advantageous for applications with certain performance requirements related to operational variables (e.g., but not limited to data transfer speed, power consumption, ease of installation), and disadvantageous for applications with similar performance requirements (e.g., but not limited to data transfer speed, power consumption, ease of installation). Tree topologies can be used to connect multiple devices via multiple node-to-node connections, where each connection has a relatively short physical length, but the multiple devices, once connected, form a component with a larger physical size.

[0111] The advantage of relatively short physical length connections is reduced signal loss or interference due to resistance or other processes. Thus, one device or node among multiple devices or nodes can transmit a signal to an adjacent device or node via a given medium, where relatively small differences in the physical signal represent specific symbols in a given data encoding. In some implementations, the difference between two symbols is encoded as a voltage difference in the signal. The shorter physical length of the connection thus allows for relatively small differences between the two voltages, or in other words, a relatively small voltage swing. This, in turn, allows for higher data rates across the entire data network. Another benefit of small voltage swings and short physical length connections is that unwanted electromagnetic interference can be reduced more easily without the need for complex materials or electrical engineering. Unwanted electromagnetic interference is regulated globally.

[0112] These characteristics suggest that physically large components with multiple devices can be constructed by connecting devices through physically short connections in a nested tree topology. Therefore, despite the large size of the entire component, the advantageous operating variables described above can still be obtained. Thus, a method for efficiently handling data transmission in a data network with an entire tree topology is useful and can enable many industrial applications. Main methods of data transmission

[0113] One way to transmit an array is via network broadcast. Network broadcast is defined as the controller sending the same array to every other node in the network. Figure 3 The logical instructions for performing broadcasting in a data network according to an exemplary implementation are as follows.

[0114] First, the array is transmitted from controller 211 via network interface 103. LED illuminators with identifier I are programmed to monitor activity on each of their network interfaces at a set frequency. This process, known as polling, is controlled by logical instructions executed by the microprocessor. When an array is found at its network interface a, the entire array is retrieved and placed into memory. In this case, the node continues to transmit the array via b, c, and d to each network interface from which it has not received the array. Other LED illuminators are programmed in the same way as the first LED illuminator, so they will also retrieve the array via one of their respective network interfaces after a set waiting time and continue transmitting via each of their other network interfaces. These steps continue recursively until all nodes in the data network have received the array. Because the network is a tree topology, any given node in the network can only receive data packets in one way. Due to the tree topology property, any other node connected to a network interface other than the one from which a given node receives its array is strictly below the given node in the tree hierarchy. In the described steps, each LED illuminator is capable of receiving and forwarding the array.

[0115] In some implementations, if the network interface receives an array, it can issue a network interrupt request to the microprocessor. This request instructs the microprocessor to seize a lower-priority ongoing activity and initiate the execution of a logical instruction routine. The advantage of the interrupt method over the polling method is that the microprocessor only cooperates with the network interface when an array is present. The interrupt method may have the following disadvantage: additional logical instructions must be provided on the microprocessor and, if applicable, the network interface to ensure proper interrupt handling without disrupting other ongoing processes. Regarding the ability to receive and forward arrays via LED illuminators, either the network interrupt method or the polling method can be used.

[0116] To send an array of instructions to a specific LED illuminator in the network, such as adjusting its red, green, blue, and white optical outputs, another set of logical instructions can be executed. This method should be applicable to any tree topology, therefore it cannot be assumed that the controller generating the array is in direct contact with a specific node. For illustrative purposes, the instructions to be sent are targeted at… Figure 3 The LED illuminator with identifier III is configured to set the red, green, blue, and white optical outputs to their maximum value of 255. The logic instructions are as follows.

[0117] First, the controller is created as follows: Figure 4 The array shown in (a) consists of payload 1001 and header 1002. Payload 1001 and header 1002 are arrays encoded using a certain number system, such as, but not limited to, binary, hexadecimal, or base-10. In an exemplary embodiment, payload 1001 is... Figure 1 This is a similar or identical array to the one described above, and has the same properties. It is an array of payloads that, once received by the intended LED illuminator, generate instructions for optical output, as described above. The purpose of the array in the header can be partly or entirely for achieving correct transmission, as described below.

[0118] Secondly, through the above series of logical instructions, broadcasting over the network... Figure 4 (a) The array. Third, in addition to the broadcast logic instructions executed by the microprocessor of each LED illuminator, logic instructions are also executed, wherein the array in the header is compared with an array encoding the identifier of the given LED illuminator. If the two arrays in the comparison are not equal, no other instructions are executed except those required for broadcasting. If the two arrays in the comparison are equal, a unique set of logic instructions is executed, which may at least include the following steps: retrieving the payload array and inputting it into a logic program, which then proceeds to set the optical output illuminator of the LED accordingly. In the described steps, each LED illuminator is able to receive, forward, and consume the given array.

[0119] For instructions Figure 3 In the exemplary embodiment, two LED illuminators change the light output, and a set of logic instructions will execute two of the commands described above sequentially. Another option for the controller is to append the second array, payload 1005, and header 1006, to the first array, payload 1003, and header 1004, and broadcast it as a single but larger array; see [link to relevant documentation]. Figure 4 (b). In this case, the logical instructions to be executed can be as follows.

[0120] First, the controller is Figure 4 An array is created in (b). Next, the array is broadcast as described above. Third, the microprocessor of each LED illuminator or network node performs a comparison between the array in the first header 1004 and the array containing the given node identifier. If a match is found, a component of the array following the first header, having a known size and containing the associated payload 1003, is retrieved and used to set the optical output. If no match is found, a second header 1006 is compared with the array containing the given node identifier. If a match is found, a component of the array following the second header, having a known size and containing the associated payload 1005, is retrieved and used to set the optical output.

[0121] To reduce the number of instructions required to execute on the microprocessor of the data network, the third step of the above method can be modified as follows. For a given LED illuminator or network node, if a match exists in the comparison between the array in the first or second header and the node identifier, the associated payload is retrieved as described above. However, the array is further edited so that the matching header and its associated payload are removed from the array forwarded to other network interfaces. If the data packet after the removal is empty, nothing is sent to the network interface. The result of this addition of logical instructions is that the probability of fewer logical instructions having to be executed when sending the array to the data network is not zero. For example, an LED illuminator with identifier IV will not perform a comparison involving the array containing header 1004 with identifier III, because that portion of the original array from the controller will be removed by the LED illuminator above the tree topology. In the described steps, each LED illuminator is able to receive, forward, consume, and edit the given array.

[0122] So far, these methods have been described, in which the entire array is stored in memory upon receipt via the network interface. Logical instructions, such as, but not limited to, comparing the array in the header, adjusting the light output of the LED chip, and forwarding the array to other network interfaces, are executed only after the entire array has been received. All network and transport methods can be modified to begin transmitting bits of the array before the entire array is received. This can be referred to as pass-through switching. Exemplary implementations of the steps involved are as follows.

[0123] First, the network interface of a given node begins receiving the individual elements or bits of the incoming array. Second, once the first header has been fully received, the microprocessor performs a comparison of the array in the first header with the node identifier. Third, if a match is found, the array payload is stored in memory and then used to set the optical output. The remainder of the incoming array (if any) can be directly switched to another network interface since the associated data packet payload has been consumed. In this implementation, the microprocessor can also be programmed to remove a portion of the received array containing the consumed data packet payload. If no match is found, the logical instruction is to switch the array to another network interface until the next header is received, and then compare again.

[0124] Other variations of cut-through switching can be considered, in which the switching of an array to another network interface begins immediately upon receiving data. The array can be transmitted over the network much faster. Another variation could receive and store the first part of the array, namely the header and payload, compare them before forwarding anything, and consume these parts of the entire array as appropriate. Other methods can be considered that instruct the processing of some parts of the input array via logical commands executed on a microprocessor, and then transmit some of the array to another network interface.

[0125] The advantage of pass-through switching is reduced latency, especially for very long arrays transmitted in very large data networks. In large data networks receiving long data packets with instructions for many nodes, the likelihood that a specific array element or bit processed at any given node will be consumed by that node is reduced. Therefore, reducing the number of logical instructions specifically executed for forwarding the array is effective. Another advantage is the reduction in the required amount of available memory per node. Components with bulk memory arrays can be more expensive than components with smaller memory arrays. Therefore, reduced material costs improve the practicality of the product and the data network.

[0126] In the above embodiments, the controller sends instructions to the nodes or LED illuminators to change their light output, which is defined as an array for red, green, blue, and white luminous flux or intensity. In some embodiments, instead, the controller is instructed to determine the current optical output of one or more LED illuminators; in other words, the controller needs to receive an array from the data network. In an exemplary embodiment, the array encoding the current light output can be... Figure 4 The same applies to (b). The logic instructions on the controller interpret the array as information about the current light output, rather than instructions to change the light output.

[0127] This task can be accomplished via a data network in several different ways. Exemplary implementations are given below.

[0128] In some implementations, each node or LED illuminator is programmed to determine the value of its light output at a set frequency and stored as such Figure 1 The array shown has a specific color space and digital system representation. The microprocessor retrieves an array of coded node identifiers from memory. These two arrays are appended to a larger array, such as... Figure 4 As shown in (a). The array is then forwarded to all network interfaces of a given node or LED illuminator. The tree topology means that one of these network interfaces will be connected to a higher node or LED illuminator in the hierarchy, and thus closer to the controller.

[0129] When another node receives the resulting array through one of its network interfaces, that node processes it using one of the methods described above. This means that the node forwards the array to at least its other network interfaces. Since the header will not match the identifier of any other node, the array will not be consumed and can be forwarded upon receipt. Because the tree topology guarantees that one of the network interfaces is connected to a higher node in the network hierarchy, and thus closer to the root, the array is closer to the root. The forwarding process will continue recursively until the controller receives the array through its network interface, and once the array reaches an end node in the network (i.e., an end node connected only to a higher node in the hierarchy (in which case the array will no longer be forwarded)), the forwarding process will continue. The controller's memory and microprocessor can be instructed to process the received data packets to generate new instructions, which are typically sent to the network of LED illuminators or nodes, or to external targets via another network interface of the controller.

[0130] In other implementations, the controller initiates array creation at the node. The controller can generate arrays, such as... Figure 4 As shown in (c), as in the previous embodiments, the array consists of a header 1102 including a node identifier 1201. Additionally, the header contains a portion that can be understood as a message type identifier 1202. This identifier is a key in a dictionary that maps given key-value pairs to interpretations of the payload array 1101. Figure 4 In (c), the message type identifier is 1, and in the dictionary, this integer maps to a logical instruction set that, once executed, interprets payload 1101 as a command to generate an array of the current optical output or not to generate such an array. The logical instructions may be as follows.

[0131] The network interface of a given node receives an array. The header is split into two parts, and the portion containing the array with node identifier 1201 is compared with the node identifier of the given node. If they do not match, the array is forwarded using any method (e.g., the method described above). Pass-through switching can be used. If they match, the header portion containing the array with message type identifier 1202 is compared with the keys of a dictionary. If the array or value equals the array or value encoded for reporting the current optical output, payload 1101 is retrieved and interpreted. Figure 4 In implementation (c), the payload is a Boolean value, but other representations of the instructions can be used. If the array or values ​​of the payload generate an appropriate comparison, the above-described logical instructions are executed, and the array is created and forwarded as described above, for example... Figure 4 The array in (a).

[0132] In some implementations, the message type identifier is not related to, for example... Figure 4The payload in (c) is associated. Logical instructions can associate the presence of a given message type identifier in the received array with a certain set of logical instructions. The absence of the message type identifier in the received array is associated with not executing the same set of logical instructions. Among these logical instructions, Figure 4 (c) The payload is implicit, which avoids explicit encoding.

[0133] In the steps described in the recent implementation, each LED illuminator or node is typically able to receive, forward, consume, edit, and create arrays.

[0134] In some implementations, the data network can report both the current optical output or other states of nodes, typically encoded as arrays, and changes in the optical output or other states of nodes, typically encoded as arrays. Combinations of implementations may require the message type identifier 1204 to be assigned to instructions adjusting optical output, see, for example, see... Figure 4 (d). The reason this was not necessary in earlier implementations was that the payload had only one meaning.

[0135] In some implementations, additional message type identifiers are used to establish additional associations between logical instruction sets and payload arrays. A data network that can actuate nodes in ways other than adjusting its light output is one example. A data network that processes and transmits light output and sensed ambient temperature is another example. Other exemplary implementations are described below, and the implementations described so far are intended to illustrate the logical concepts of array transmission rather than to provide an exhaustive list of applications.

[0136] In data network implementations where nodes can create, receive, forward, consume, and edit messages, additional logic instructions can be added to support acknowledgment. In data networks where the communication medium, network interface, or certain other components or functions cannot guarantee fault-free operation every time, each node can be programmed to acknowledge and update its optical output or other status after receiving and consuming a payload for this purpose. In such implementations, the controller can be programmed to execute a set of logic instructions based on conditions regarding whether an acknowledgment has been received within a certain time threshold. Time can be measured using an internal clock.

[0137] The node is created to confirm that it has updated the array defining its state (e.g., light output), as shown below. Figure 4 As shown in (c). The difference from before is that the message type indicator 1202 in header 1102 should correspond to an acknowledgment from at least the dictionary available to the controller. The generated array for acknowledgments can be as follows: Figure 4As shown in (d). The difference from before is that the message type indicator 1204 in header 1104 should correspond to an acknowledgment from at least the dictionary available to the controller. Other arrays can be expected to define acknowledgments.

[0138] If a suitable acknowledgment array is not received within a specified time, the controller can recreate the original array used for the instruction, or retrieve it from memory if available, and then forward it again via the appropriate network interface. The controller can continue doing this until an acknowledgment is received or the number of attempts exceeds a set value (whichever happens first).

[0139] In cases where the array is not used correctly due to unreliable communication media caused by random fluctuations in interference or noise, repeated attempts increase the likelihood of receiving at least one array. Wireless connections can rely on radio, optical, or audio signals propagating in the ambient space, and such signals can be interfered with, extinguished, or otherwise modified by objects in the space or other signals propagating through the same space. Wired connections, which rely on conductive or optical signals via fiber optics, are expected to be less susceptible to interference. However, noise can be caused by other conductive parts of the data network or individual devices, which couple or interfere with the wires, thus introducing a certain level of noise into a given communication medium. Increasing the signal amplitude is one way to overcome signal loss caused by interference noise. This is a method that exceeds a threshold and generates electromagnetic radiation outside the given device, which can affect the performance of other nearby devices, including but not limited to audio distortion of sound generated by speakers. Other noise sources can be considered, but regardless of the noise source, repeated transmissions increase the likelihood of receiving an array.

[0140] If the controller still does not receive an acknowledgment after repeated attempts, it can be programmed under this condition to generate an error message, which will be sent via a separate network interface to warn the user or machine of the messaging failure. The controller can be programmed under this condition to update its internal array representation of the data network, effectively assuming that the failure to receive an acknowledgment indicates a change in network topology.

[0141] Other applications of data networks that require confirmation to select between logical instruction sets can be anticipated.

[0142] Some communication media can partially reflect the signal encoded in the array. As mentioned above, objects in the space through which wireless signals are transmitted can modify the signal so that it is reflected, possibly with a reduced amplitude. In wired communication media, reflections can occur at interfaces with impedance mismatches. In implementations where reflections occur rarely or with a high probability of amplitudes much lower than the original signal, no additional logic instructions are required. In implementations where this is not the case, each node can execute logic instructions to ensure that if a second data set identical to the first array is received within a certain threshold duration of the first array, the second array is discarded. Alternatively, an amplitude threshold can be introduced, which reduces the risk of receiving the same array twice due to defects in the communication medium. Other methods for addressing this problem can be considered.

[0143] The implementations to date have been described using an array that at least contains a payload, and in some cases a header, which is further described as containing a node identifier or a message type identifier. Several exemplary implementations of methods for transmitting data and executing logical instructions have been described using these components of the array. In some implementations, the header will contain additional arrays that can be used for purposes other than the efficient transmission of data within the network. Examples of other arrays include, but are not limited to: a dot counter, which increments by an integer each time a data packet is forwarded; a checksum field, the value of which can be used to determine whether the array has been corrupted during transmission; a version identifier, a value that enables a node to ensure that the version of the logical instruction that generated the array is compatible with the version of the logical instruction that is consuming or forwarding the array; a header length specification, a value that specifies how long the array containing the header should last; a message priority identifier, which prioritizes the payload so that, in the event of contention on the network interface, higher-priority messages are processed first, followed by lower-priority arrays; a data source identifier, which specifies which node generated the array; a security type identifier, which can be used if the payload is encrypted and the security type allows the node to decrypt the message in an appropriate manner; and an unspecified array, which may be part of the header but may not contain any data to be interpreted. Instead, it is an array used to implement future functionality or custom functionality without changing the total size of the header array. Including other arrays in the header does not change any important aspects of the transmission method described above. Therefore, the exemplary implementation should be understood as describing what the minimum array can be to enable transmission, rather than as a complete specification of what the array can contain. Topology-based data transmission methods

[0144] The implementation described so far has implicitly used a tree topology. When receiving and forwarding messages, arrays are never forwarded through the network interface that receives data packets. In a tree topology, this ensures that data packets move only down or up the node hierarchy, without bidirectional propagation. This relationship also implies that arrays can only be received at any given node via a single path. Due to the described topology and logical conventions, the event of a node receiving an array forwarded by the controller via two different paths at two different times is eliminated. Therefore, no logical instructions are needed on each node to determine whether an array has been received and potentially consumed.

[0145] In some implementations, tree topology can be explicitly used to make the transmission of arrays in the network more efficient. These implementations of the method require representing the network topology as an array, which in some implementations can be used by logical instructions executed on the controller, and in other implementations can be used by logical instructions executed on the controller and one or more network nodes. These implementations of the method require a method to create the representation of the network topology as an array. These two aspects will be described in detail below.

[0146] An array of ordered pairs with node identifiers can be used to represent a tree topology as an array. For example... Figure 3 The implementation of the data network shown is generated under this convention as follows. Figure 5 The array shown in (a) represents a higher node in the tree, with the top controller identifier being C. In this representation, nodes II and IV are easily identified as terminal nodes, having no connection to lower nodes in the hierarchy, since identifiers II and IV only appear as the second identifier in the pair list.

[0147] Alternatively, an array of node identifiers and network interface identifiers associated with another node identifier can be used. For example... Figure 3 The implementation of the data network shown is generated under this convention as follows. Figure 5 The array shown in (b) includes, in addition to the previous representation, information about the network interfaces that are forming any given node-to-node connection. Since network interfaces may not be occupied, the array must be able to represent... Figure 5 (b) has arbitrarily chosen the empty set symbol.

[0148] In some implementations, unused network interfaces are not explicitly encoded in the array, but are instead omitted. Figure 5 The corresponding response in (b) is also possible. The logical instructions in these implementations can be constructed such that if no pair exists at execution time, it is inferred that the relevant network interface is not occupied.

[0149] In some implementations, network interface identifiers are not explicitly encoded in an array; instead, their order is a known constant in any logical instruction. For Figure 3 In a data network, the order of network interfaces can be lexicographically ordered, i.e., a before b, b before c, and c before d. Other orders can be considered. Following this convention, we can obtain... Figure 5 The array shown in (c)

[0150] Alternatively, an array of connections that includes only connections to lower nodes in the tree hierarchy can be used. Figure 5 The array in (b) redundantly represents a node with identifier I connected to a node with identifier II. This redundancy is removed according to the convention of listing only connections to lower-level nodes. Following this convention, we can obtain, for example,... Figure 5 The array shown in (d)

[0151] Alternatively, an array of connections can be used, which includes only the number of lower nodes in the tree hierarchy and the connections made through the network interface. Figure 5 The array in (e) is an example. It does not specify node identifiers, but instead represents the topological connections of ordered network interfaces. Figure 5 A variation of the array implementation in (e) may discard node identifiers and represent only the topology of unspecified nodes and their node-to-node connections via ordered network interfaces. Figure 5 The array in (f) is an example.

[0152] In some implementations, the array encodes the tree using a combination of the above conventions. Other implementations of the tree representation in the array can be considered, where multiple node-to-node connections are traversed in an ordered order as network interfaces. This includes, but is not limited to, methods in graph theory, which typically use adjacency matrices and adjacency lists as algebraic representations of graphs, especially trees.

[0153] A complete array representing a tree topology can be stored in the controller's memory. A complete array can also be stored in the memory of nodes in the data network or a subset thereof. Alternatively, an array can be partially stored in the memory of nodes in the data network. Figure 5 The arrays in (b), 5(c), and 5(e) consist of multiple arrays, each of which can be stored in the memory of the node associated with the given array. In some implementations, a node may only have access to an array representing connections to neighboring nodes. Figure 3In the data network and the transmission method described so far, the node with identifier II does not participate in any transmission of arrays between nodes with identifiers I and III or III and IV. Therefore, the array stored on any given node can be a subset of the complete tree representation, thus reducing the required memory and the number of logical instructions that must be executed for data transmission.

[0154] A necessary characteristic of any array implementation of this representation is that it enables logical instructions to infer the network topology, including how node-to-node connections are arranged on ordered network interfaces. Some array implementations enable logical instructions to infer additional information about the data network. Figure 5 Exemplary array implementations are shown and should not be construed as exhaustive.

[0155] For example, but not limited to, the method for constructing the topology array in the above-described embodiments can be as follows: The controller generates an array containing message type identifiers. The array may contain other data, such as, but not limited to, Boolean values. The message type identifiers are mapped to a set of logical instructions. This set may be called layout detection instructions. The message type identifiers may be integers in a binary number system, integers in a 10-base system, ASCII characters, or multiple ASCII characters.

[0156] The controller broadcasts the array it creates to the data network using the broadcast method described above. When the first node in the data network receives the array through one of its network interfaces, it interprets the message type identifier and executes layout detection logic instructions. For illustrative purposes, the array with the message type identifier can be referred to as L. After the general description, let's first discuss... Figure 3 The following exemplary implementations are used to describe the layout detection logic instructions.

[0157] The first node selects a first network interface from the ordered set of network interfaces, instead of the network interface through which it receives array L. The first node then continues to forward array L through said network interface. (See reference) Figure 3 That is, network interface b. The first node starts its internal clock.

[0158] The second node receives array L and executes the same set of logical instructions as the first node; that is, the second node attempts to forward array L through its first network interface. (See reference) Figure 3 This refers to network interface a. Since no node is connected to this network interface, the logical instructions executed on the second node will create a second array, reflecting the fact that the second node has no other nodes attached to it through its first network interface. For illustrative purposes, the second array may be referred to as D.

[0159] The logical instructions executed on the second node continue, and array L is forwarded through its second network interface. (See reference) Figure 3 This refers to network interface b. Similarly, since no node is connected to this network interface, the logical instructions executed on the second node edit array D, thus reflecting the fact that the second node is not connected to any other node through its second network interface. Editing can be done by appending one array to another.

[0160] Continue executing logical instructions in this manner until the ordered set of network interfaces has been completely traversed. Figure 3 In this exemplary implementation, this means that the array D created by the second node reflects the fact that the second node is not connected to any other nodes; in other words, the second node is a terminal node in the tree topology. Logical instructions executed on the second node terminate by forwarding array D upwards in the tree hierarchy (i.e., via network interface d).

[0161] The first node receives array D from the second node, and its internal clock can be stopped. The logic instructions executing on the first node continue, and a new array is created as is done for the second node. This array can be created to reflect the fact that only one lower-level node exists in the tree hierarchy attached through the first node's first network interface. This array can also be created to reflect the precise nature of the second node's network interface. In either case, the first node's array is created by concatenating all, part, or aggregated versions of the received array D to the first node's array.

[0162] The execution of logical instructions on the first node is performed in the same manner as the execution of logical instructions on the second node, wherein array L is forwarded through the second network interface of the first node. (See reference) Figure 3 This refers to network interface c. See also... Figure 3 The third node receives the array, which initiates the execution of logical instructions consistent with those of the first two nodes. In short, this means that the third node both forwards array L to the fourth node, determines the unoccupied state of network interfaces c and d, reflects these facts in array D, and then forwards it back to the tree hierarchy, i.e., through network interface a, to the first node.

[0163] refer to Figure 6The flowchart in the diagram shows that the logical instructions for the general data network are performed recursively. The controller initiates the creation of array L 601, which is forwarded 602 to the first node. Array L is received by a node in the network, and after being read, logical instructions 603 are executed to both initialize a new array D and begin iteration over an ordered set of network interfaces of the node. If, at a specific step of the iteration, the given network interface connects to another node, the given node starts its internal clock 604 and forwards 605 array L through the given network interface. At this point, the given node suspends further execution. Instead, another node receives array L through step 605, thus beginning the execution of logical instructions. In other words, step 603 is taken. Therefore, step 605 means moving one step further down the recursion in the tree of interconnected nodes.

[0164] If a given network interface at a given iteration step on an ordered set of network interfaces of a given node is unoccupied, a different subset of logical instructions is executed. Array D is edited to record information about unoccupied given network interfaces (606). The logical instructions then determine whether this is the last network interface included in the iteration that began in step 603. If not, the iteration proceeds to the next network interface 607. Depending on whether the given network interface is occupied, one of the two subsets of the above logical instructions is selected (i.e., 604 and 605 or 606). If it is unoccupied, the recursion moves one step further down in the interconnected node tree.

[0165] If the iterations on the ordered set of network interfaces for a given node have been exhausted, array D is forwarded through a network interface of the given node leading to a higher node in tree level 608. Therefore, the recursion in the interconnected node tree moves up one step. If the node receiving array D is a controller, then array D contains the complete specification of the data network topology. Execution then ends. If the node receiving array D is not a controller, the internal clock of that given node, which started during the recursion downwards (604), is stopped. In some implementations, if the clock exceeds a set limit at any time, execution stops and error 609 is reported.

[0166] The node editor 610 receives the current version of its own layout array of array D from one of its network interfaces leading to lower nodes in the tree hierarchy, thus including the information contained in the received array in some complete, partial, or summarized manner. This yields an updated version of array D for the given node. The logic instruction then determines for the given node whether this is the last network interface included in the iteration initiated in step 603. If not, the iteration proceeds to the next network interface 607, and the previously described logic instruction is executed.

[0167] The updated version of the array includes an update order and a second order, which is similarly the order of nodes in any given data network relative to the first order. As noted in various implementations herein, the second order is established based on two other properties of the data network: the exact tree topology of the data network and the first order used to constitute the nodes of the data network.

[0168] The transmission of composite arrays according to various implementation methods utilizes a determined second order for effective transmission, as follows: Figure 7 , 8 The different methods shown in Figure 9 are described in detail.

[0169] Due to the tree topology, these steps determine the properties of the network interface by traversing a given branch as deep as possible until reaching the terminal node, and then forwarding an array containing the information determined so far back up the tree. It is guaranteed that the controller can receive an array with a complete specification of the data network topology. The described method shares some functionality with depth-first search algorithms used for maze solving and other applications.

[0170] The layout detection method can be modified regarding how to iterate over network interfaces. As described above, the method described so far results in traversing the network as deeply as possible through the first network interface before traversing a portion of the network connected via the second network interface. Some implementations can instead execute logical instructions where, in each iteration, the network is traversed only one level deeper at the network interface, and iteration only begins through the network interfaces of the second node connected to the first node after the entire ordered set of network interfaces of the first node has been exhausted. Due to the tree topology, these steps determine the properties of the network interfaces by traversing the network interfaces of a given node as wide as possible until all its interfaces have been characterized, and then further add an array containing the information determined so far to the nodes below the given node in the tree hierarchy. It is guaranteed that the controller can receive an array with a complete specification of the data network topology. The array implementation may differ from that obtained by the method described above and Figure 6 The array implementation shown is illustrated. However, both implementations provide a complete and geometrically equivalent representation of the network. The described method has some of the same functionality as the breadth-first search algorithm used in maze solving and other applications.

[0171] In some implementations, a combination of depth-first search and breadth-first search methods can be used. A subset of nodes can use one method, while another subset can use a different method. The choice of method can be encoded as an array or integers and then stored in memory. The method used is important for how the layout array is interpreted in the logical instructions of the transfer method described below.

[0172] In the above Figure 6 In the layout detection method shown, only one node is executing logic instructions at any given time. A node that has forwarded array L to another node 605 will pause its execution while waiting to receive array D from the same network interface 608. In some implementations, a given node continues to forward array L to its other network interface while a node below it in the tree hierarchy is executing its logic instructions, as described above. This implementation allows the layout array to return to the controller more quickly. In these implementations, the execution of logic instructions is performed in parallel on multiple microprocessors in the data network, rather than sequentially. Parallel processes create additional conditions to handle, such as how multiple events are synchronized, since their respective output arrays must be concatenated together. Therefore, these implementations of logic instructions lead to additional complexity in execution, such as handling events, such as, but not limited to, receiving arrays from two or more network interfaces simultaneously. There are methods to handle these types of conditions, which can be organized under the name of concurrency control. Methods that adequately address the additional complexity of concurrent processes can be used in the implementation.

[0173] In the above and in Figure 6 In the layout detection method shown, the layout relates only to the topology of multiple nodes; otherwise, each node is considered identical. In some implementations, the data network may include nodes with different functionalities. In these implementations, a device type identifier may also be retrieved during the execution of layout detection. Figure 6 In step 603, the layout detection array is initialized by a given node for subsequent filling, and a fully filled array is obtained once the recursion 608 reaches the controller. Part of the initialization may include node type identifiers in the array. Node type identifiers may be represented as an array stored in the memory of the respective device. The node type identifiers are thus obtained by the controller, and their position in the network topology is fully defined. Therefore, the rule engine or other set of logical instructions may include information about the available node types, which in turn can be used to control the type of array transmitted to these devices by any method (including but not limited to the methods described below). In some implementations, multiple power sources are identified as different types of nodes in the data network. In some implementations, sensors are identified as different types of nodes in the data network. Other types of sensor or actuator portions of the network may similarly be represented by arrays.

[0174] One method is to construct an array representing the topology via manual input through a user interface. This might involve a person entering the array during installation via a command-line interface, or creating a visual representation on the installed touchscreen and then inferring the connections from that representation. Other methods for manually entering the array are conceivable.

[0175] In embodiments where the controller has an array representation stored in memory of a tree topology, such as, but not limited to, those described above and Figure 5 Those shown are obtained through methods and techniques such as, but not limited to, those described above. Figure 6 As shown, other methods for transmitting arrays besides those described above can be used. A characteristic of tree representation is that all nodes are ordered according to some convention. The controller can infer the position of any node in the order based on the array describing the tree topology.

[0176] The following describes how this feature will be used. Figure 3 An exemplary implementation of an LED illuminator network. The use case involves batch updating the optical output of all LED illuminators. As described above, this can be accomplished by providing each LED illuminator with an array containing the required luminous flux for each of a plurality of LED chip types. The first step in batch updating is the creation of these arrays by the controller. Specific values ​​can be created using any of the methods described above, such as, but not limited to, the output of an external rules engine or manual input via a user interface.

[0177] The second step is for the controller to concatenate multiple arrays into a large composite array. The order of the arrays is a result of a tree topology, as further described below. At the beginning of the composite array, a message type identifier is added, which maps in a dictionary to a specific set of logical instructions to be executed on the node. This set of instructions can be called a batch update. The controller then continues to forward the composite array.

[0178] The first node in the receiving array interprets the message type identifier and begins executing the associated set of logical instructions. The first step in these instructions is for the first node to retrieve from memory the total number of lower nodes in the tree hierarchy via the first network interface (rather than the network interface of the receiving array). As described above, the first node can be derived from the tree representation embodied in the array (e.g., but not limited to...). Figure 5 (Those in the tree) or retrieve the value from a subset of the tree representation. In Figure 3 In this implementation, the value is 1.

[0179] The logic instructions executed on the first node continue to forward the first component array of the composite array, including the message type identifier, through its first network interface. The second node receives the array. The logic instructions executed on the second node interpret the message type identifier and retrieve information from the zero nodes attached to its other network interfaces. For the first node, this information is already reflected in the array after the layout detection method is executed. Therefore, the received array is not edited or forwarded. The size of the array is exactly the size required as input to the logic instruction set used to adjust the optical output of the LED illuminator, which is the operation that the second node continues to perform. The second node creates the array to confirm that it has successfully adjusted the light output and forwards the array to the network interface connected to the first node.

[0180] Upon receiving an acknowledgment, the logical instructions on the first node resume, and information regarding the presence of a total of two nodes or LED lights attached via the second network interface is retrieved. The logical instructions executed on the first node continue to forward the second and third component arrays of the composite array, including the message type identifier, via the second network interface of the composite array.

[0181] The third node receives an array containing message type identifiers and an array twice the size of the first node, used as input to a set of logic instructions for adjusting the optical output of the LED illuminator. Like the first node, the third node initiates iteration on its ordered network interface. Figure 3 In an exemplary implementation, its ordered network interface means network interface b. For this network interface, a total of one node is attached, which is information that can be retrieved from the memory of the third node.

[0182] The logical instructions executed on the third node continue to forward the first component of the array received from the first node via the first network interface of the first node, including the message type identifier. The fourth node receives the array. The logical instructions executed on the fourth node interpret the message type identifier and retrieve information for any nodes attached to its other network interfaces. For the third node, this information is already reflected in the array after the layout detection method is executed. Therefore, the received array is not edited or forwarded. The size of the array is exactly the size required for the input of the logical instruction set used to adjust the optical output of the LED illuminator, which is the operation that the fourth node continues to perform. The fourth node creates an array to confirm that it has successfully adjusted the light output and forwards the array to the network interface connected to the third node.

[0183] The logic instructions executed on the third node resume upon receiving an acknowledgment, and the remaining portion of the array it receives from the first node (i.e., the portion not sent to the fourth node) is exactly the size of the input to the logic instruction set used to adjust the optical output of the LED illuminator. No other nodes are attached to the remaining network interface of the third node. Therefore, the remaining array is used as input to the logic instructions to set the optical output of the third LED illuminator. For the second and fourth nodes, the third node creates an array to acknowledge this operation and forwards it to the first node.

[0184] The logic instructions executed on the first node are resumed upon receiving confirmation. Regarding the steps taken by the third node mentioned above, the first node uses the remaining array as input to the logic instructions to set the optical output of the first LED illuminator. The confirmed array is sent to the controller. Upon receiving the array, the controller can interpret it as a successful batch update.

[0185] A key feature of these logic instructions for batch updates is that the composite array is ordered in a specific manner. In the described implementation, the arrays in the composite array are ordered as follows: first, the array for the second LED illuminator; second, the array for the fourth LED illuminator; third, the array for the third LED illuminator; and finally, the array for the first LED illuminator. With this order, the logic instructions for batch updates can omit comparisons of the arrays, which include node identifiers in the header, as required by the communication protocol described above. With this order, the logic instructions for batch updates can achieve significant effects using pass-through switching, thus eliminating the need to store large arrays in memory, or to perform logic instructions for authentication, complex editing, and similar tasks as described above. Similar to the above description, pass-through switching of forwarding arrays can utilize smaller data units in the forwarding. The exemplary implementations above use... Figure 1 The data unit represents the entire array size. Logic instructions can also forward individual elements or bits in the array upon receipt, provided the node receiving the data bit correctly forwards a subset of multiple elements or bits, and compile the required array input into logic instructions to set the optical output.

[0186] In the example case, the logical instructions for batch updates are in Figure 7 The explanation is followed by a description. The controller creates a composite array 701, which consists of a message type identifier and one or more arrays with the format or encoding required to adjust a certain state of the node, wherein the number of arrays equals the number of nodes in the data network. The controller forwards the composite array to the first node 702.

[0187] A given node initiates iteration 703 on its occupied network interface. Each node can access at least the necessary information about the topology so that only the occupied network interface is part of the iteration. If the iteration has not yet ended, the total number M of nodes connected to the given network interface is determined 704, which can be done by retrieving that number from the given node's memory. The internal clock starts 705. The node's microprocessor continues to forward message type identifiers and the first M of the composite arrays that the given node has received or is receiving to the given network interface 706.

[0188] At this point in the execution, another lower node in the tree hierarchy receives an array that is composed of the array received by the previous node, but smaller in size, and that node initiates its iteration 703 on the ordered network interface. Therefore, the logical instructions of this sequence divide the composite array into smaller parts and execute recursion to the lower nodes in the tree hierarchy.

[0189] At some point during execution, a given node will reach the end of an iteration on the network interface it started in an earlier step. This can happen because the node lacks occupied nodes (as is the case with terminal nodes), or because the iteration has exhausted the ordered set of network interfaces. At this step, the remaining arrays should consist of only one array to set the node's state. The logic instructions guarantee this as long as the representation of the topology corresponds to the actual topology, since the rest of the arrays have been forwarded to other nodes or multiple nodes. If discrepancies exist, the logic execution can end with an error 707.

[0190] On the other hand, if only one appropriately encoded array remains, it is used as input to a set of logical instructions that set the state of a given node (708), specified by the array. An array containing confirmations of the set state is created on the same node, and this array is forwarded via a network interface that navigates upwards in the tree hierarchy (709). Therefore, this step implies moving one step up in the node hierarchy.

[0191] A given node that has already forwarded a portion of the composite array to a lower node 706 in the hierarchy can be idle while waiting to receive an acknowledgment array from the same interface. Execution can terminate with error 710 if the internal clock exceeds a threshold. This step ensures that communication failures in the data network do not result in the execution of indeterminate batch update logic instructions. If the internal clock does not exceed the threshold, execution can continue with the next step 711, iterating over the ordered set of network interfaces of the given node.

[0192] If the iteration of the occupied network interface has ended, the logic instruction returns to test. Otherwise, the steps described above can be taken to further partition the remaining composite array and perform another recursion downwards in the hierarchy 706. If the endpoint is reached, the steps described above can be taken to set the node state 708, create another confirmation array 709, and move one step up in the hierarchy.

[0193] Nodes that are not terminal nodes proceed to the next stage after completing iterations on their occupied network interfaces. Logical instructions ensure that a given non-terminal node, with a total of K nodes connected through multiple network interfaces, receives a composite array consisting of K+1 arrays from the nodes above it. Therefore, after completing iterations on its occupied network interface, a non-terminal node will have an array used to set the state of the given node.

[0194] Once the confirmation array reaches the controller, logical instructions that move up and down the tree hierarchy reach the end. At that stage, the composite array initially created by the controller (701) has been divided into smaller composite arrays at each of the multiple nodes in the data network. The confirmation array can be used to create confirmation on the user interface that a batch update has been completed, or through another adjustment of the controller's operating parameters. Conversely, if the controller fails to receive the confirmation array within the set time, it may result in the generation of an error message or lead to another adjustment of the controller's operating parameters.

[0195] A key characteristic of these logical instructions for batch updates is that the composite array consists of arrays ordered in a specific manner. From a known tree topology, the appropriate order can be inferred using the representation embodied in some arrays, the ordered set of array network interfaces, and the logical instructions for splitting the arrays in a predictable way. For example, the first array in the composite array should be the array intended for node Z, which connects to the first occupied network interface of node Z-1 above node Z in the hierarchy; node Z-1 connects to the first occupied network interface of node Z-2 above node Z-1 in the hierarchy, and so on, until the recursion ends at the controller.

[0196] Following this sequence, logical instructions for batch updates can omit comparisons of arrays containing node identifiers in the header. With this sequence, logical instructions for batch updates can generate significant effects using pass-through switching, thus omitting the need to store large arrays in memory, or to perform logical instructions for authentication, complex editing, and similar tasks as described above. Similar to the above description, pass-through switching of forwarding arrays can utilize smaller data units in the forwarding process. This can be reinterpreted. Figure 7An earlier description of this was to partition a composite array on a unit of individual elements or bits, rather than setting the node state of an array on a unit of array size.

[0197] exist Figure 7 In the illustrated implementation, each node pauses its execution while forwarding the array to a lower node in the hierarchy. In some implementations, there is no pause. Instead, after a node has forwarded the array through a network interface, it continues executing logical instructions related to subsequent network interfaces in that ordered set. In these implementations, each node can receive the acknowledgment array through one of its network interfaces while the microprocessor of a given node is busy executing other logical instructions. This allows for faster batch updates. Therefore, the execution of logical instructions is performed in parallel across multiple microprocessors in the data network, rather than sequentially. Parallel processes create additional conditions to handle, such as how multiple events are synchronized, since their respective output arrays must be concatenated. Thus, this implementation of logical instructions can lead to additional complexity in execution, such as handling events, for example, receiving arrays simultaneously from two or more network interfaces. Known methods exist for handling these types of conditions and can be organized under the name of concurrency control. In the implementation, any method sufficient to address the additional complexity of concurrent processes can be used.

[0198] In the above logical instructions, no step references a unique node identifier. Figure 3 In this context, it corresponds to not retrieving the Roman numeral 202 from memory. This means that in a data network where batch updates are performed as described above, node identifiers are not necessary, and in some implementations, node identifiers are not present. In other words, node identifiers are not assigned during manufacturing or during the initialization of one or more nodes in the data network. This characteristic of the data communication method can imply simplified manufacturing, fewer logical instructions to be executed, and a more compact representation of the control array. These are all advantageous characteristics because they respectively allow for reduced manufacturing costs, reduced command execution time, and faster data transfer throughout the data network.

[0199] Batch update methods can be used to update one or a subset of nodes in a data network. An array corresponding to nodes that should not be updated can be set to an array equal to the current state. Alternatively, an array corresponding to nodes that should not be updated can be set to a dummy value, which, when used as input to logical instructions executed on a given microprocessor, will cause the set of logical instructions to update the node state to never be executed. Dummy values ​​can be negative, such as, but not limited to, -1 or -99. Similarly, if only one type of node needs to be updated, dummy values ​​can be used in a composite array at the relevant positions for another type of node, obtained from previous layout detection.

[0200] Tree topology and its explicit representation can be used in logical instructions different from batch update methods to update the state of individual nodes. The following describes how this feature is used... Figure 3 An exemplary implementation of a network of LED luminaires. The use case involves a single update of the optical output of all LED luminaires.

[0201] First, the controller creates a composite array containing message type identifiers that map in a dictionary to a single set of logical instructions to be described for an update. Furthermore, the composite array consists of arrays that can be used as inputs to logical instructions that set the optical output of the LED illuminator. The composite array also includes arrays containing values ​​that can be called target indices. The target index corresponds to a single LED illuminator in the data network. The target index uniquely maps to a position within an ordered set of LED lighting devices in a tree-structured topology representation. For example, if an update should be performed... Figure 3 If the light output of the third LED illuminator is used, the target index can be 2. If a node identifier exists in a given implementation, the target index can be different from the node identifier. The composite array also contains an integer initialized to zero by the controller. This integer can be called a node counter.

[0202] The controller forwards the composite array to the first node or LED illuminator. Message type identifiers are interpreted and mapped to a set of logical instructions for a single update. The first LED illuminator retrieves the total number of LEDs attached to its network interface from an ordered set of its network interfaces. Figure 3 In an exemplary implementation, this value is equal to 1. This value is added to the current value of the node counter, resulting in a new integer, which can be called a temporary counter. Figure 3 In an exemplary implementation, it is assumed that the node counter is zero during the execution phase, and the temporary counter is 1.

[0203] The temporary counter is compared with the target index of the received array. If the target index is strictly less than the value of the temporary counter, the array is forwarded through the given network interface. Note that forwarding does not change the node counter. On the second LED illuminator, the message type identifier is interpreted, and a set of logical instructions for a single update is executed. The second LED illuminator is an end node, so the temporary counter is equal to zero in this case. This is compared with the target index of the array received by the second LED illuminator. If the target index equals the temporary counter, i.e., both are zero in this case, the remainder of the array is used as input to a set of logical instructions that, when executed, will update the optical output of the given LED illuminator. An acknowledgment array can be created and forwarded via the network interface to the first LED illuminator, and then via the network interface to the controller.

[0204] Conversely, if the temporary counter obtained by the first LED illuminator is found to be greater than or equal to the target index, no content is forwarded through the first network interface. Instead, in this exemplary embodiment, the node counter array is edited to be equal to the temporary counter, i.e., equal to 1. After this operation, a similar subset of logical instructions is executed for the second network interface of the first LED illuminator, as is done for the first network interface of the first LED illuminator. In other words, a temporary counter is created from the value of the current node counter by incrementing the value of the current node counter by the total number of nodes attached through the second network interface of the first LED illuminator. Figure 3 In this exemplary implementation, the increment is equal to 2, so the temporary counter at this stage is equal to 3. As mentioned above, if the target index is strictly less than the temporary counter, the composite array will be forwarded through the second network interface of the first LED illuminator. Note that forwarding does not change the node counter.

[0205] Assuming the inequality between the target index and the temporary counter is true, the third LED illuminator receives the composite array and executes the set of logical instructions associated with a single update message type identifier. In one exemplary implementation, the target index is equal to 2. The temporary counter is created by summing the node counter (which is 1 in this execution phase) and the total number of nodes attached through the first network interface of the third LED illuminator (i.e., 1). Therefore, the temporary counter is 2. This value is not strictly less than the target index. Therefore, nothing is forwarded to the network interface. As mentioned above, the node counter is also edited to be equal to the value of the temporary counter.

[0206] The third LED illuminator is not attached to any other LED illuminators on any of its other network interfaces. The node counter has reached a value of 2, which is exactly equal to the target index. This equality results in an array containing instructions for the desired optical output being used as input to the logical instructions for setting the optical output of the third LED illuminator. As previously mentioned, an acknowledgment array can be created and recursively forwarded to the controller.

[0207] In general, logical instructions for a single update are in Figure 8 The diagram is shown and described below. The controller creates a composite array 801, which consists of a message type identifier, a first integer that can be called the target index, a second integer initialized to zero (which can be called a node counter), and an array that can be used as input to nodes in the data network to set their state. The composite array is forwarded 802, and the first node in the data network receives it.

[0208] A given node initiates an iteration on its occupied network interface 803. Each node has at least access to the necessary information about the topology so that only the occupied node is part of the iteration. If the iteration has not yet ended, determine the total number of nodes connected to the given network interface M, which can be done by retrieving that number from the memory of the given node. Retrieve the node counter N from the received composite array. Add the two integer values, i.e., M + N = 805. This sum can be assigned to another integer, which can be called a temporary counter V.

[0209] The temporary counter is compared with the target index, which is retrieved from the received composite array. If the target index is strictly less than the temporary counter, the composite array received by the given node is forwarded through the given network interface 806. The node receiving the composite array begins executing the same set of logical instructions as the previous node, i.e., initiating an iteration on the ordered set of occupied network interfaces 803.

[0210] On the other hand, if the value of the temporary counter makes the target index not strictly less than the temporary counter, then another subset of logical instructions is executed for the given node. First, the node counter in the current composite array is edited to be equal to the value of the temporary counter, 807. In any subsequent step of executing logical instructions, once the value of the current node counter is retrieved from the composite array, it will be equal to this new value until step 807 is encountered again, at which point the value is edited again. After this, iteration over the ordered set of occupied network interfaces for the given node will select the next network interface, 808.

[0211] At some point during execution, a given node will reach the end of an iteration initiated in an earlier step. This can occur because the node lacks a network interface to occupy (as is the case with terminal nodes), or because the iteration has exhausted the ordered set of network interfaces. In this case, the node counter should equal the target index. This is a result of the logical instruction; the only reason it cannot be retained is because the topology representation is inconsistent with the actual topology. If the target index and the node counter are equal, the array used to set the state of the given node will be used as input 809 to the logical instruction for setting the node state. Once complete, an acknowledgment array can be created and forwarded to the network interface 810 of the node in the hierarchy. These forwards can be done recursively until the controller receives the acknowledgment array. The acknowledgment array can be used to create confirmation on the user interface that a batch update has been completed, or for another adjustment of the controller's operating parameters. Conversely, if the controller fails to receive the acknowledgment array within the set time, it may result in the generation of an error message or another adjustment of the controller's operating parameters.

[0212] A key feature of some implementations of methods for single updates is that the topology of the data network and the order it defines for multiple nodes are used to create efficient transmissions. (See above regarding...) Figure 7 As described, batch updates rely on this ordering of nodes to efficiently split their composite array so that the correct instructions reach the specified node. Instead of splitting, a single update method uses a target index and a temporary counter to test whether the path to the specified node passes through any given network interface of the given node. Path testing, performed through simple incremental and integer comparisons, can thus efficiently discard paths, thereby reducing the number of logical instructions that each node must execute.

[0213] By executing the above on multiple nodes and in Figure 8The set of logical instructions shown demonstrates path testing for a single update method across the entire data network. In some implementations, path testing can be performed on the controller. In implementations where the controller has complete information about the tree topology, logical instructions where temporary counters, target indices, and node counters are incremented and compared as described above can be executed on the controller. Therefore, the controller can infer the path that should be used for a single updated array. In these implementations, the controller can alternatively generate a composite array comprising message type identifiers, an array for updating node states, and an ordered array of multiple network interface identifiers. For example, an array such as [c, b] can be interpreted by logical instructions executed on a node of the data network as meaning that the given array should be processed by network interface c of the first node and then by network interface b of the second node, thus reaching the specified node. Since the network interfaces are ordered, an array such as [1, 1, 3] can be interpreted by logical instructions executed on a node of the data network as meaning that the given array should be processed by the first network interface or the first node, then by the first network interface of the second node, and then by the third network interface of the third node, thus reaching the specified node.

[0214] Other arrays representing paths through multiple network interfaces can be conceived. A key feature of all implementations of the single update method is that the known tree topology implements logical instructions that ensure a valid route to the target node at execution time, with few logical steps performed on the path, and no logical steps performed for nodes not on the path.

[0215] As described in the previous section, a data network can include sensors as well as actuators. Batch update and single update methods are means of transmitting instructions from the controller throughout the data network. This can include, but is not limited to, changing the optical output of multiple LED lights, changing the audio intensity from multiple speakers, changing the intensity of climate control devices (such as fans and radiators), and changing the spatial configuration of a robotic arm. Known tree topologies can be used to retrieve sensor data generated by multiple nodes and transmit it to the controller for further processing.

[0216] Example scenarios for logical instructions used in batch extraction methods are in Figure 9As shown in the diagram. First, the controller generates an array of batch fetch message identifiers, which is mapped to a set of logical instructions 901 for batch fetching node states. The controller forwards this array 902. The first node receives the array and interprets the message identifiers as batch fetches, and executes the following set of logical instructions. The given node initializes an empty array 903. As execution progresses, this array will be filled with one or more node state arrays. Execution of the logical instructions then begins iterating over the occupied network interfaces 904. As in the other methods described above, the occupied network interfaces are known from the topology.

[0217] If a network interface is occupied, the given node starts its internal clock 905. Subsequently, an array with bulk request message identifiers is forwarded through the given network interface 906. In this step, the second node in the logical instructions begins execution of this operation 903 by initializing an instance of its empty array, which is then filled with one or more node state arrays.

[0218] If the given node is an end node without any network interfaces in use, or if the ordered list of network interfaces has been exhausted, then the iteration on the ordered set of ordered network interfaces has ended, and execution continues to retrieve an array 907 representing the current state of the node. This array can be a single integer, multiple integers, or a large and complex array, depending on how the state of the given node is represented. The entity representing the current state of the given node can be described as a state array. The first array of the given node, initially initialized in the earlier step 903, is edited such that the state array is added to the first array of the given node 908. The resulting composite array is then forwarded to the nodes 909 above the given node in the hierarchy.

[0219] If the node receiving the array is not the controller, the internal clock stops. To ensure that the execution of batch fetch does not exceed a reasonable time, it may be necessary that the duration between forwarding the array with message identifier for batch fetch 906 and receiving the composite state array 909 from the same network interface is below a threshold. Failure to meet this condition may be due to an error somewhere in the data network, thus guaranteeing that the batch fetch execution is not indefinite.

[0220] If a composite state array is received within the threshold duration, the composite array of the given node is edited such that composite arrays received from one or more nodes below it in the hierarchy are added to it (910). In this way, the composite array of the given node contains all the state arrays of the nodes lower in the hierarchy via the given network interface, where the order of the state arrays in the composite array follows a convention. Then, execution on the given node will attempt another step of iterative processing on the ordered set of network interfaces (911).

[0221] If a given node has another occupied network interface, the same recursion down the tree as described above, steps 905 and 906, is performed. Ultimately, this recursion results in the creation of a composite array, which is received through the given network interface once the corresponding step for upward recursion in the tree (step 909) is reached. Thus, the composite array for the given node is further expanded. This continues until the given node has no other occupied network interfaces to iterate over. At this stage, the given node retrieves its own state array 907 and adds it to the composite array. These steps continue until the upward recursion reaches the controller. The composite array thus received by the controller contains the state arrays of all nodes in the data network, ordered by convention.

[0222] The sorting convention is a result of the tree topology and its representation in an array. Therefore, any other logical instruction to be executed on the controller can determine which node in the data network generated which state array. This determination does not require header comparisons or other logical interpretations; such information is explicitly encoded as an array. Thus, this communication method implements an implementation without explicitly encoded node identifiers set during manufacturing or network initialization. Furthermore, the array used to encode control instructions is compact, allowing for relatively fast transmission between nodes and throughout the network. This means, as mentioned above, a higher data rate than methods that do not explicitly consider and utilize the tree topology.

[0223] Similar to the other methods mentioned above, Figure 9 The logical instructions shown can be modified in certain aspects without departing from the scope and spirit of the invention. In some embodiments, the use of the internal clock is modified or completely removed, so that error checking is ignored or performed in other ways. In some embodiments, the composite array, which expands progressively during the execution of batch fetching, is forwarded down the tree hierarchy along with the message type identifier and edited by another microprocessor in multiple nodes, rather than by a single microprocessor. Figure 9 The logical instruction definition shown is edited. This means moving the task in 910 to an earlier position in execution.

[0224] In some implementations, instead of waiting to receive the array from a given network interface after forwarding the bulk fetch array, a given node continues to forward bulk fetch requests to its other occupied network interfaces. This implementation allows composite arrays to return to the controller more quickly. Therefore, the execution of logical instructions is performed in parallel across multiple microprocessors in the data network, rather than sequentially. Parallel processes create additional conditions to be handled, such as how multiple events are synchronized, since their respective output arrays must be concatenated. Therefore, this implementation of logical instructions can lead to additional complexity in execution to handle events, such as, but not limited to, receiving arrays simultaneously from two or more network interfaces. Several methods exist to handle these conditions, which can be organized under the name of concurrency control. Methods that adequately address the additional complexity of concurrent processes can be used in various implementations.

[0225] The methods described above can be combined to perform a single extraction. That is, the controller should receive an array of states for a specific node in the data network. The single update method can be modified to send a message identifier to request the array for the specific node, rather than sending the array to set the state of the specific node. Once the array with the message identifier is received by the specific node, and subsequently executed (similar to or equivalent to...) Figure 9 If we interpret the logical instruction set in step 907 as a logical instruction set, then the state array is recursively forwarded upwards in the tree hierarchy (similar to or equivalent to in...). Figure 8 (Logic instruction set in step 810). Through this combination of the logic instructions already described, the controller will receive a given array of states.

[0226] A set of logical instructions for layout detection, batch updates, single updates, batch fetches, and single fetches has been described using composite arrays containing a specific number and type of constituent arrays. These arrays may contain necessary information about the data network and the expected operations to enable transmission according to specifications. In some implementations, the composite array may include additional arrays that can be used for purposes other than efficient data transmission within the network. Examples of other arrays include, but are not limited to: a dot counter, which increments by an integer each time a data packet is forwarded; a checksum field, the value of which can be used to determine if the array has been corrupted during transmission; a version identifier, a value that enables a node to ensure that the version of the implemented method that generates the array is compatible with the version of the implemented method that uses or forwards the array; a header length specification, a value used to specify how long the array containing the header should be; a message priority identifier, which prioritizes the array so that in the event of contention on the network interface, higher-priority messages are processed first, followed by lower-priority arrays; a data source identifier, which specifies which node generated the array; a security type identifier, which can be used if the payload is encrypted and the security type allows the node to decrypt the message in an appropriate manner; and an unspecified array, which may be part of a composite array but may not contain any data to be interpreted. Instead, it is used to implement future or custom functions without changing the overall size of the array containing the header. Composite arrays composed of other arrays do not change any significant aspects of the method. Therefore, the exemplary implementation of the above set of logical instructions should be understood as well as Figure 6 , 7 The flowcharts in 8 and 9 describe what the minimum array and logical instructions can be, which enables the execution of the specified command and the transfer of the array, rather than the complete specification of what the array can contain or the complete specification of the logical instructions that can be executed. Inferring tree topology from assembly

[0227] In some implementations, data networks are typically constructed through mechanical connections of individual LED illuminators or nodes. In these implementations, the means forming the mechanical attachments can completely or partially overlap with the means forming the communication medium for data network connections. This can be achieved by a movable object of one LED illuminator or node extending into the recess of another LED illuminator or node through a magnetic attraction exceeding a certain threshold. This can be achieved through interlocking teeth that lock individual units into a certain physical configuration through friction. This can be accomplished through separate connectors composed of a solid material (e.g., plastic or metal) and a communication medium, enabling data transmission typically between LED illuminators or nodes. Other methods for establishing mechanical and communication connections can be considered. In these implementations, multiple node-to-node connections may not be a tree topology, nor any subset of such topologies, such as linear or star topologies. In particular, multiple node-to-node connections can form loops, such that there is more than one path between two nodes. Without further modifications, some of the above-described transport methods may encounter difficulties or become inoperable.

[0228] exist Figure 3 In the illustrated embodiment, if a mechanical attachment is desired during installation between the LED illuminator with identifier II and the LED illuminator with identifier IV, network interfaces c and a are connected respectively. This results in the formation of a loop, as the array from the controller to the LED illuminator with identifier IV can pass through both the LED illuminator with identifier II and the LED illuminator with identifier III.

[0229] The above set of multiple logical instructions includes iterations on network interfaces, or specifically includes occupied network interfaces. If, during initialization, network interface c of the LED illuminator with identifier II and network interface a of the LED illuminator with identifier IV are removed from the ordered set of occupied network interfaces, then the process will be restored. Figure 3 The tree topology. This removal operation can be implemented as an operation on an array stored in memory and processed by a microprocessor, without requiring mechanical changes to the mounting. Note that if the aforementioned pair of network interfaces are kept in the corresponding ordered set of network interfaces, then removing network interface c of the LED illuminator with identifier I and network interface a of the LED illuminator with identifier III from the ordered set of occupied network interfaces will result in another tree topology. The latter tree topology is a linear topology, which, as mentioned above, is a subset of the tree topology. As before, this removal operation can be implemented as an operation on an array, without requiring mechanical changes to the mounting.

[0230] The technical problem of constructing a tree topology from a set of nodes and their node-to-node connections can be termed finding one or more spanning trees. According to graph theory, a set of nodes connected by a second or more node-to-node connections in a grid-topological, fully connected, or hybrid topology network can be transformed into the same set of nodes connected by a third or more node-to-node connections in a tree-topological network, where the third or more node-to-node connections consist of an appropriate subset of the node-to-node connections of the second or more node-to-node connections. Furthermore, in some cases, a fourth or more node-to-node connections, different from the third or more node-to-node connections, can exist that, when applied to the first or more nodes, also generate a tree topology. Additionally, in some cases, a fifth, sixth, or seventh, up to a finite number of other node-to-node connections, may exist that, when applied to the first or more nodes, also generate a tree topology. In other words, in some cases, for any given data network, multiple different spanning trees may exist.

[0231] There are methods for discovering spanning trees, typically by executing logical instructions. These methods can be used to make it possible to obtain a tree-like topology from any given data network, and then apply the aforementioned transmission methods to that tree-like topology. Thus, the above set of logical instructions can be used to set or sense the state of multiple nodes in a given data network. Methods such as depth-first search and breadth-first search of mathematical graphs can be used to find one of the many possible spanning trees of a given network. An important feature of these two methods is that, while traversing the network, they sort all node-to-node connections and can remove any such connections from the set of node-to-node connections that link two traversed nodes. Variations of these methods can be employed, including methods developed for weighted graphs, such as, but not limited to, Kruskal's algorithm. Therefore, methods for creating at least one spanning tree can be used to edit the ordered set of network interfaces in a given component of a node, thereby allowing connections to form a tree-like topology network without requiring mechanical changes to the components. Data transmission methods in multi-level networks

[0232] So far, logical instructions for transmission methods in a network of nodes in a tree topology have been described using a controller and one or more nodes, which may be actuators or sensors. The controller initiates batch updates or batch fetches and other instructions. In some implementations, the network includes first-type nodes that can control one or more second-type nodes. In these implementations, the first-type nodes can act as controllers for the second-type nodes. The first-type nodes are in turn controlled by the controller. This is a multi-level network or a network of networks.

[0233] In an implementation of a network of networks, batch updates may include the following steps. (See reference...) Figure 7 As described above, the controller creates the composite array. Figure 7 As shown, the composite array is transmitted to each of the first-type nodes. Each first-type node receives the array to set its state. The first-type node then assumes the role of controller and creates the composite array. This array can be a copy of the array received by a given first-type node from its controller. The array can be created or derived by some other logical instructions executed on the microprocessor of the first-type node, taking the received array as input. Regardless of the source, the execution of the aforementioned logical instructions (such as...) Figure 7 (As shown) After that, the composite arrays of the first type of nodes will be transmitted through their second type of node network. The second type of nodes receive the relevant arrays and execute some logical instructions with the arrays as input. The acknowledgment array of the second type of node (if created) arrives at the relevant first type of node, which can initiate the execution of a logical instruction set that will create a version of the acknowledgment array to be sent to the controller.

[0234] In some implementations, the sets of nodes of the second type are disjoint, so only one node of the first type can act as the controller for any given node of the second type. In some implementations, nodes of the second type can act as the controller for nodes of the third type. Additional levels of nodes and networks can be considered.

[0235] Multiple levels may be advantageous for use cases where the size or granularity of units created by the aggregation of the smallest units of nodes (which may be referred to as atomic node types) is more suited to the intended purpose. In some implementations, LED lights connected mechanically and electrically in the mesh can be controlled individually. However, it is preferable to group them into larger units that may correspond to the size of a room, a desk space, a kitchen countertop, an entrance near a door, or other groupings suitable for the functional purpose of a given space. In these implementations, the controller may actually instruct a change in light output at an entrance near a door, which is then transmitted to a node, which in turn interprets the corresponding array as instructions to change the light output of multiple LED lights with certain identifiers and spatial arrangements. The controller in these implementations does not need access to the identifiers of multiple LED lights. This information is delegated to another node. This simplifies the messages and their transmission across the network, which can be simplified through the grouping of atomic nodes.

[0236] Grouping of atomic nodes can be obtained from manual input via a user interface. Therefore, a user of a space where atomic nodes are installed can decide which nodes should be grouped together, and then an atomic node can be assigned to simultaneously act as the controller for said group. Grouping of atomic nodes can also be obtained from automatic grouping derived from functional data. The network can initially consist only of atomic nodes. The controller tracks how the atomic nodes are used or certain characteristics of the environment they sense, and infers functional grouping based on multiple characteristics that change over time. Other methods of automatic grouping and subsequent control can be considered. Regardless of the grouping method used, the transmission method described above can be used, where the properties of the nodes and controller can vary, but where the network levels are connected by one of multiple nodes bridging two or more network levels.

[0237] Program code is applied to input data to perform the functions described herein and generate output information. The output information is applied to one or more output devices. In some embodiments, the communication interface may be a network communication interface. In embodiments where the elements can be combined, the communication interface may be a software communication interface, such as those used for inter-process communication. In other embodiments, there may be combinations of communication interfaces implemented as hardware, software, or a combination thereof.

[0238] In the preceding discussion, extensive references will be made to servers, services, interfaces, portals, platforms, or other systems formed by computing devices. It should be understood that the use of such terms is considered to represent one or more computing devices having at least one processor configured to execute software instructions stored on a computer-readable tangible, non-transitory medium. For example, a server may include one or more computers that act as a web server, database server, or other type of computer server in a manner that fulfills the described roles, responsibilities, or functions.

[0239] The technical solution for this implementation can be in the form of a software product. This software product can be stored in a non-volatile or non-transitory storage medium, such as an optical disc read-only memory. (CD-ROM), USB flash drive, or removable hard drive. The software product includes multiple instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided by the implementation methods.

[0240] The embodiments described herein are implemented using physical computer hardware, including computing devices, servers, receivers, transmitters, processors, memory, displays, and networks. The embodiments described herein provide useful physical machines and specially configured computer hardware arrangements.

[0241] Although the implementation methods have been described in detail, it should be understood that various changes, substitutions, and modifications can be made to this document.

[0242] Furthermore, the scope of this application is not intended to be limited to the specific embodiments of the processes, machines, manufacturing, material composition, means, methods and steps described in the specification.

[0243] It is understood that the above descriptions and examples are intended to be illustrative only. Exemplary implementation of lighting control

[0244] As described above, the protocol for communicating between sensors and actuators via an array of multiple data connections can be applied to a lighting control system as described below. These examples are exemplary and not limiting, and are intended to illustrate how the protocol can overcome lighting control problems in home and office applications.

[0245] In one exemplary embodiment, a plurality of forty interconnected light-emitting panels are mounted in the kitchen ceiling, see [link to relevant documentation]. Figure 10 The panels are each shaped like a square, with sides measuring 15 centimeters. Each panel can emit light with variable intensity, hue, and saturation. Each panel is connected to at least one other panel. The geometric pattern formed by the multiple panels is separately selected by the person installing them. Figure 10 In this design, the pattern can be described as a set of interconnected strips, each strip comprising two to ten interconnected panels. The lighting panels are installed to cover an area of ​​the kitchen ceiling, but are irregularly shaped to enhance the aesthetic or functional quality of the kitchen. The shape can also be altered by a user of the kitchen. This user can climb a ladder, pull one or more panels from the current installation, and attach one or more panels to different sides of one or more panels in the installation; the operation lasts no more than one minute.

[0246] exist Figure 10 In one exemplary implementation, one of the panels is connected to the power grid via wires. In addition to containing light-emitting components, the panel includes hardware and software components that act as a network controller. Each panel in the installation is interconnected via a small conductive circuit board, meaning that current can be supplied to all panels to drive the LEDs and other electrical components of a given panel.

[0247] Figure 10 Each panel in the installation can be controlled individually. That is, the intensity, hue, and saturation of its light output can take values ​​different at any given time than any other panel in the installation. However, in some relevant applications, the intensity, hue, and saturation of a given panel's light output are optimally set to properties of the output of other panels, or otherwise make the installation appear as a unit rather than a collection of individual light sources. Basic-level control involves communication of arrays throughout the installation, where each array is used for a specific panel in the installation, and where the array instructs the panel to output specific light intensity, hue, and saturation.

[0248] exist Figure 10 In one exemplary embodiment of the lighting control for the installation, all panels are constrained to output the same light as all other panels in the installation. Each panel also includes a motion sensor (e.g., passive infrared, microwave, ultrasound, tomographic motion detector, posture detector). The controller includes at least a set of executable instructions that define a portion of a rules engine such that motion detected in the morning should trigger all panels to turn on and emit high-intensity white light. The controller also includes a set of executable instructions that define a portion of the rules engine such that if no motion is detected for more than three minutes, a gradual dimming of the light intensity is initiated, reaching zero intensity after another two minutes, unless motion is detected again during the intermediate time. To implement this control scheme, the innovative protocol for data communication of the present invention can be used as follows.

[0249] Assuming all light panels are off and no movement is occurring, the controller creates a batch fetch request array once per second, as mentioned earlier. Figure 9 As described in the previous section. The array thus created contains at least one integer representing an instruction to the mounting panel to report the status of its motion sensors. The batch extraction of the array is forwarded to a panel directly adjacent to the controller in the data communication network. In this exemplary embodiment, this is the panel that physically houses the controller components. As described above regarding... Figure 9 As described, the first panel initializes an empty array before it begins iterating through the interface it connects to. Figure 10 In an exemplary implementation, there are two such connection interfaces, which are uniquely ordered. The first panel continues to forward the bulk fetch request array to the panel connected to its first network interface. (As mentioned above regarding...) Figure 9 The process continues, transmitting the array across multiple panels, until it reaches the terminal light panel, which is the panel that is only connected to another installed panel.

[0250] During the execution phase, the panel reports its motion sensor status. The motion sensor status can consist of a single binary or a more complex array. In one exemplary implementation, it consists of an array with sixteen elements, each element including a floating-point number corresponding to the magnitude of a certain frequency in the sensed electromagnetic signals from the surrounding kitchen space closest to the given panel. (See above regarding...) Figure 9 As described in the previous section, this array is added to the previously created array and then sent back up the network hierarchy. Thus, a composite array is gradually created, comprising an array of motion sensor values ​​from all panels installed in a specific order. The controller receives the final composite array.

[0251] In this exemplary embodiment, communication is performed to retrieve a batch of request arrays and a composite array of motion sensor values ​​without any explicit comparisons of network addresses or other overhead. This protocol enables rapid retrieval with modest power consumption. Figure 10 The installation shown depicts the status of the motion sensor, which is desirable for lighting systems, as they are often intended to remain off for extended periods, such as at night or during normal operating hours. Due to the low overhead of this protocol, the controller can frequently poll the motion sensor's status, enabling a rapid response to motion when it eventually occurs, such as when someone enters the kitchen to use it. Figure 10 The lighting fixtures inside will turn on quickly.

[0252] exist Figure 10 In an exemplary implementation within a kitchen, a person moves into the space towards the stove. Motion sensors on the panel closest to the entrance point where people use the kitchen generate an array that deviates significantly from the array generated in the previous example. Therefore, the controller receives a composite array containing values ​​that deviate from the baseline. The controller's rules engine thus generates a binary output indicating that motion has been detected at a sensor in the network. Relative to Figure 7 This is a non-limiting example, and the output then initiates the execution of the aforementioned instructions. Given the constraints of the exemplary implementation, namely that all panels should output the same light intensity, hue, and saturation, the composite array controller creates a series of identical arrays for all installed lighting panels. The same array can correspond to the light output of a single panel with 200 lumens of white light and a correlated color temperature (CCT) of 6500K.

[0253] As mentioned above Figure 7 As described in the section, the composite array is distributed throughout the panel network. Each panel, except for the terminal panel, forwards consecutive sub-parts of the composite array it receives, and each panel consumes the last array of the composite array it receives after all other sub-parts have been forwarded through the occupied network interface. Therefore, the LEDs of each panel receive a drive current corresponding to 200 lumens of luminous intensity, hue, and saturation at a color temperature of 6500K. Thus, within milliseconds of a person entering the kitchen, the kitchen is... Figure 10 All forty panels are illuminated.

[0254] When a person moves around the kitchen, performing actions such as, but not limited to, opening and closing the refrigerator, opening and closing cabinet doors, operating kitchen utensils, frying pans, baking or boiling food, and moving food from a plate to their mouth at the kitchen table, one or more sensors in the lighting installation will detect the movement. The controller receives these movement states, and the lighting remains on for the entire duration.

[0255] When a person leaves the kitchen space, the controller receives a composite array from the rules engine that it associates with no movement. The controller initializes a timer, which begins to increment. While the timer is counting, an indicator light remains on. If movement is detected again in a similar manner to that described above, the timer resets and restarts only after the movement has ceased. In an exemplary implementation, if the timer reaches three minutes, the controller constructs a composite array comprising an array corresponding to the light output of 198 lumens of white light from a single panel with a CCT of 6500K. As described above, because the composite array is distributed throughout the data network and in conjunction with… Figure 7 In the relevant section, all the light panels in the installation dim the output light intensity to a small amount that is almost invisible to the human eye. Therefore, the amount of lighting in the kitchen is moderately reduced, and the energy consumption of the lighting equipment is also lowered.

[0256] exist Figure 10 In an exemplary implementation, dimming continues as the timer continues to count upwards from a three-minute threshold, and is performed by creating a composite array corresponding to the light output of each panel from 196 lumens of white light at a CCT of 6500K, and distributing the arrays across the entire lighting installation by the protocol of the present invention. Instructions on the controller continue in such a manner that after four minutes of no motion detection, each panel emits 100 lumens of white light at a CCT of 6500K. After five minutes of no motion detection, the controller creates a composite array corresponding to the zero light output of all panels. The lighting installation is thus turned off.

[0257] If, at any time during the three-minute and five-minute intervals of the exemplary implementation, someone enters the kitchen space and movement is detected, the controller creates the same synthetic array as in the previous example above, causing each panel to again generate 200 lumens of white light with a CCT of 6500K.

[0258] In Adoption Figure 10 In another exemplary implementation of the lighting installation, the CCT is not constant at 6500K, but depends on the time of day. In some lighting applications, a high CCT of 5000K or higher is suitable in the morning and at midday; in the evening, a low CCT of 3000K, 2700K, or 2200K is suitable. In these applications, the controller is connected to a clock that records the time of day. This clock can be internal to the controller or accessed via a connection to an external network. This exemplary implementation works for both active and inactive environments, as in the previous exemplary implementations, with the key difference being that the composite array depends on the time of day; for example, between 5 AM and 4 PM, the light output (if any) is CCT 6500K, while between 4 PM and 5 AM, the light output is CCT 2700K.

[0259] In Adoption Figure 10 In another exemplary embodiment of the lighting installation, the light intensity during movement is not 200 lumens, but depends on the ambient light conditions in the kitchen. For example, on a sunny summer day, the ambient light from the window can already provide ample illumination for kitchen use, thus requiring less artificial lighting, and ideally, this lighting can be provided, thereby saving energy. Conversely, on a rainy winter night, the ambient light from the window may be close to zero, thus requiring a large amount of artificial lighting.

[0260] In this exemplary embodiment, the controller can access an ambient light sensor external to the lighting network. The ambient light sensor may be installed somewhere in the kitchen and connected to the home Wi-Fi. The controller acts as a gateway and is also connected to the home Wi-Fi. With appropriate permission configuration, the controller can therefore query the external ambient light sensor for its value. Using certain data communication protocols required by the home Wi-Fi (e.g., TCP / IP), after proper routing and interpretation and decryption of the address header, the controller retrieves the ambient light value and uses it as follows. If the value returned by the ambient light sensor is between zero and 200 lux, the protocol of the present invention... Figure 10 The array of composite arrays transmitted throughout the entire lighting fixture shown corresponds to a luminous intensity of 200 lumens. Between 200 lux and 5000 lux, the controller will create a composite array corresponding to a luminous intensity of less than 200 lumens from each panel. Since humans perceive changes in light better at low intensities than at high intensities, the decrease in luminous intensity can be non-linear, rather than a linear change between 200 lux and 5000 lux. At 5000 lux or higher brightness, even if motion is detected, the controller can create a composite array corresponding to zero luminous intensity from the fixture panels. This corresponds to a state where there is sufficient ambient lighting for the kitchen.

[0261] In Adoption Figure 10 In another exemplary embodiment of the installation of the lighting panels, the light output from one panel can differ from the light output from another panel. This difference can be created for both functional and aesthetic purposes. In adopting... Figure 10 In an exemplary embodiment of the installation, the panel near the geometric center of the installation is configured to output CCT white light close to 6500K, while the panel near the geometric periphery of the installation is configured to output light that is a mixture of CCT white light close to 6500K and saturated violet light. The intensity of the violet light in the mixture depends on the position of the light panel between the geometric center and the periphery.

[0262] The controller can use the installed geometry information through the network topology representation stored in memory. Figure 5The middle and above are relative to Figure 5 The description presents different methods for representing network topology. From the network topology representation, the controller uses Euclidean geometry to infer the position of the panel relative to the geometric center and periphery of the device.

[0263] In this exemplary embodiment, when motion is sensed when a person enters the kitchen, the controller executes the following instructions. As described in previous exemplary embodiments, motion is detected and transmitted to the controller using an innovative protocol. The controller then continues to create, according to the protocol, and... Figure 7 The composite array to be transmitted is shown in the figure. Unlike the previous exemplary implementation, the arrays constituting the composite array are different. Instead, each array corresponds to a certain mixture of CCT 6500K white light and saturated purple, wherein the number of saturated purples in the mixture depends on the geometric relationship between the corresponding panel and the geometric center and periphery of the mounting.

[0264] The innovative protocol defines the position of a panel in a composite array based on its location within the network topology. It should be noted that while the network topology can be used to infer the geometry of the installation in the physical space, it is not obvious which panel in the composite array should correspond to more or less purple. Instead, the construction of the composite array relies on innovation to generate arrays that can be transmitted without explicit address comparisons throughout the installation and still produce geometrically accurate output. Therefore, the composite array created by the controller is a non-random combination of different arrays, where the creation method uses the network topology information and its correspondence with the geometry of the installation. As described above relative to... Figure 7 The composite array is transmitted throughout the installation, and light output is obtained within milliseconds of the detected motion, wherein the light from the installation is mainly white light located at 6500K at the center of the installation, and different mixtures of white light at 6500K and saturated purple light are directed toward the periphery of the installation.

[0265] In another exemplary implementation, such as Figure 11 As shown, multiple panels are installed on the wall of a child's bedroom. Each panel is shaped as a square with sides of 15 cm. Each panel can emit light with variable intensity, hue, and saturation. Each panel is attached to at least one other panel. Alternatively, the geometric pattern formed by the multiple panels is chosen by the person installing them. Thus, the installation of lighting panels covers an area of ​​the wall but has an irregular shape, which can provide or enhance the aesthetic or functional quality of the bedroom. The shape can also be changed by pulling one or more panels out of the current installation and attaching those panels to the other side of one or more panels in the installation, an operation lasting no more than one minute.

[0266] exist Figure 11In an exemplary implementation, in addition to providing light output, at least one panel includes hardware and software components that function as a network controller. Each panel in the installation is interconnected via a small conductive circuit board, meaning that current can be supplied to all panels to drive the light-emitting diodes and other electrical components of a given panel.

[0267] This implementation illustrates another use case where an efficient protocol for array transmission is beneficial or necessary. In some implementations, the panels are equipped with components to detect whether they are touched. That is, if a person presses one, several, or their entire palm against the surface of a panel, the action changes the measured capacitance, which is reflected as an array at the specific panel that was touched.

[0268] The controller creates a batch fetch request array every 100 milliseconds, as mentioned earlier. Figure 9 As described in the previous section. The array thus created contains at least one integer representing a command to report the status of its capacitive touch sensor to the mounting panel. The batch array is forwarded to the panel directly adjacent to the controller in the data communication network. In this exemplary embodiment, this is the panel that physically houses the controller components. As mentioned above regarding... Figure 9 As described, the first panel initializes an empty array before it begins iteration on the interface it connects to. The first panel then continues to forward the batch fetch request array to the panels connected to its first network interface. This process continues as described above. Figure 9 The process continues until the terminal light panel is reached, which is the panel that is only connected to another panel that is installed.

[0269] During that phase of execution, the panel reports the status of its capacitive touch sensors. The capacitive touch sensor status can consist of a single binary number or a more complex array. (As mentioned above...) Figure 9 As described in the previous section, this array is added to the previously created array and sent back up the network hierarchy. Thus, a composite array is gradually created, comprising an array of capacitive touch sensor values ​​from all panels installed in a specific order. The controller receives the final composite array.

[0270] In this exemplary embodiment, communication between the batch retrieval request array and the composite array of capacitive touch sensor values ​​is performed without any explicit comparison of network addresses or other overhead. This protocol enables rapid retrieval with modest power consumption, as is desirable in lighting systems that are not touched in many applications. Figure 11 The example installation shows the status of a capacitive touch sensor. Because of the low overhead of the protocol, the controller can frequently poll the status of the capacitive touch sensor, thus enabling rapid touch response.

[0271] In an exemplary embodiment, touch sensing is used for the following lighting control purpose. Assuming... Figure 11 The installation outputs a specific light at a given time point with a certain intensity, hue, and saturation. The output of each individual panel can differ from other panels in terms of intensity, hue, and saturation, such as... Figure 11 The illustration shows a specific lighting situation. A person in the room touches a panel with their index finger and holds it pressed against the panel. Within 100 milliseconds, the controller receives a composite array corresponding to the specific panel being touched. The rules engine executing on the controller generates a binary output corresponding to the state of the touch installation.

[0272] The binary output of the rules engine initiates the execution of the logic instructions as follows. The variable "Dim Down" is set in memory. The controller constructs a composite array corresponding to the same hue and saturation for each panel under the current lighting condition, and the intensity of each panel, which is reduced by a linear transformation of the light intensity under the current lighting condition.

[0273] As mentioned above Figure 7 As described in the section, the composite array is distributed throughout the panel network. Each panel, except for the terminal panel, forwards consecutive sub-sections of the composite array it receives, and each panel consumes the last segment of the composite array it receives after all other segments have been forwarded through the occupied network interface. Therefore, the LEDs of each panel receive a drive current that correspondingly has the same hue and saturation as before the touch, but with reduced intensity.

[0274] At this stage, the controller again polls the states of the different capacitive touch sensors and, assuming the person is still pressing the panel, infers the state via array transmission through the innovative protocol and rule engine described above. The variables in memory have been set to "down-tuned" and remain unchanged. A linear transformation is applied again to derive... Figure 11 The intensity of all panels installed in the center was reduced. A new composite array was reassigned using an innovative protocol, and a new lighting state was achieved by reducing the light intensity, hue, and saturation as before.

[0275] The reduction process continues until the panel is pressed 30 times consecutively during the polling event, or in other words, for 3 seconds (the parameter is provided as a non-limiting example). In that case, the linear transformation reducing the panel intensity is designed to reach zero, and all light is turned off. If someone continues to press the panel, this state is inferred by the controller as described above; however, it does not cause the controller to create a new composite array, and the light output remains zero.

[0276] If, at some point during the gradual decrease in light intensity described above, a person removes their finger from the panel, the controller receives a composite array inferred to indicate the absence of touch. The changed state results in the execution of the following instructions: The current intensity, hue, and saturation of each panel are recorded as the current state, and the variables in memory are switched to "up." Therefore, the light from each panel remains unchanged compared to the state just before the finger was removed from the panel. In other words, as the finger leaves, the dimming of light intensity ceases, and a new current illumination state is obtained.

[0277] If the person touches again at this time Figure 11 The panels in the installation shown are sensed as before, the composite array is transmitted to the controller via the innovation protocol as before, and the state is inferred and represented as binary by the rule engine executed on the controller. At this point, the variable in memory is set to "upscale," so a linear transformation is applied to the intensity of each panel to increase it to a value greater than its current value. Hue and saturation remain unchanged as before. The controller follows the aforementioned innovation protocol (especially regarding...). Figure 7 The instructions describe constructing a composite array and distributing it throughout the network. The light intensity of each panel is slightly dimmed.

[0278] At this stage, the controller again polls the states of the different capacitive touch sensors and, assuming the person is still pressing the panel, infers the state through array transmission by evaluating the data using the innovative protocol and rule engine described above. The variables in memory have been set to "up" and therefore remain unchanged. A linear transformation is applied again, making... Figure 11 All panels installed in the system achieve increased intensity. A new composite array is then assigned using the innovative protocol, and a new lighting state is obtained by increasing light intensity, hue, and saturation as before.

[0279] The process of increasing light intensity continues until the panel is pressed thirty times in a row, or in other words, for three seconds. In that case, the linear transformation of the intensity increase is designed to reach the maximum permissible light intensity, and the panel generates maximum output for a given hue and saturation. If the person continues to press the panel, this state is inferred by the controller as described above; however, this does not cause the controller to create a new composite array, and the light output remains at maximum.

[0280] If, at some point during the gradual increase in light intensity as described above, a person removes their finger from the panel, the controller receives a composite array inferred to indicate no touch. The changed state results in the following instructions: The current intensity, hue, and saturation of each panel are recorded as the current state, and the variables in memory are switched to "down." Therefore, the light from each panel remains unchanged compared to the state just before the finger was removed. In other words, as the finger leaves, the dimming of light intensity stops, and a new current illumination state is obtained.

[0281] The exemplary embodiments described above illustrate how lighting installations incorporating rapid and efficient sensing and actuation enable flexible devices to control their output. Therefore, Figure 11 The installation is its own light switch. If the capacitive touch sensor is polled infrequently (e.g., once every second), or only applied to a small portion of the touch surface (e.g., a single button near a controller), the overhead and energy consumption of the lighting installation can be reduced, but at the cost of functionality. Capacitive touch sensors can be polled at higher frequencies at multiple locations within the installation using efficient and fast array transmission protocols.

[0282] In another exemplary embodiment, the sensing of capacitive touch and the data from Figure 11 The transmission from the installation panel to the controller is the same as described above, that is, it uses the information about... Figure 9 The innovative protocol described above. However, in this exemplary embodiment, precise information about which panel was touched is used in the creation of the actuation command. Therefore, in this exemplary embodiment, the controller receives a composite array, wherein the arrays constituting the composite array indicate that a panel is being touched. Due to the innovative protocol and its order of application to the network topology, the position of an array within the composite array corresponds to... Figure 11 This refers to a known panel that is being installed. For illustrative purposes, it is assumed that it is being pressed. Figure 11 The leftmost panel.

[0283] Assuming the controller has inferred from the batch fetch array that the leftmost panel is being touched, the controller continues to build a single updated composite array, as described above, especially regarding... Figure 8The leftmost array has a unique, known position in the network topology. The controller accordingly sets the target index integer in the composite array. The composite array is also constructed to include an array corresponding to a random hue and saturation at maximum light intensity. This constructed composite array is transmitted according to the innovation protocol. In short, the first panel directly adjacent to the controller determines which network interface to send the received composite array through. The other lower panels in the hierarchical network topology perform similar calculations to select which of their occupied network interfaces to send the received composite array through. This continues until the equality condition between the target index and the node counter is met, at which point the corresponding panel is set to output a randomly selected hue and saturation at maximum light intensity. Through the design of the innovation protocol, this panel is the one that is touched.

[0284] As mentioned above, the method of changing the light output can be replaced by batch commands, as described above, especially regarding... Figure 7 As described above. In this case, the composite array is composed of... Figure 11 The installation consists of arrays of all panels. However, only one of these arrays represents a light output that is different from the current light output, i.e., the light panel that is being touched.

[0285] The agreement will effectively Figure 11 The precise location of the touch panel within the installation is transmitted to the controller, and a modification of the light output is performed at that precise location. The time required to perform this sensing and actuation can be very short and depends on the frequency of the microcontroller. However, since the operations required for precise sensing and actuation do not include explicit address comparisons or other transmission overhead, array transmission is very efficient, and the delay between touch and light adjustment can be in milliseconds or less.

[0286] Visualization of music or sound is another exemplary implementation, where, for the intended application, the latency between the sensed signal and geometrically precise actuation must be low. (See application number PCT). The patent / CA2017 / 050500 describes methods in which mechanical waves sensed by a transducer diaphragm are mapped onto a spatially distributed light output. In other words, speech, music, or other ambient sounds at a given point in time can cause light output emitted from a lighting installation, such as... Figure 11 As shown, this leads to an increase in subjective perception, aesthetics, or other effects in the audiovisual configuration. Given the lack of coordination between sound and visual output, the significant latency between sensed sound signals (such as drumbeats, crescendos, and vibrato) and the corresponding light output reduces or even attenuates the amplification of subjective perception. Therefore, this innovative protocol is suitable because it enables the rapid transmission of spatially precise sensing and photoactuation arrays.

[0287] In another exemplary implementation, such as Figure 10 and 11 The lighting panels shown are installed on the ceiling of a 3,000-square-foot office space. The panels thus form a very extensive network across the space. The exact configuration of the panels may vary, and as long as all the panels are interconnected via network interfaces, no installation is required to cover the entire area of ​​the ceiling. In an exemplary embodiment, the installation includes clusters of connecting panels near workstations, and strips of panels connecting these clusters and positioned above corridors or other elongated transport areas within the office space.

[0288] As in Figure 10 In an exemplary embodiment, the panel is equipped with a motion sensor. Therefore, the controller can determine which areas of the office are in motion. In an exemplary embodiment, if motion is detected at a panel at one end of a corridor in the office, the controller associates this state with the activation of all light panels assigned to that corridor. In other words, a light panel can be activated without the light panel itself sensing motion, as long as at least one panel in a set of panels in the device senses motion. Thus, the light panel is activated based on where light is expected to be applied.

[0289] Similarly, one or more clusters of panels in an office space can be activated based on certain movements within a given space, not just movements on the activated clusters. Furthermore, since the clusters of light panels are associated with a specific desk located at a particular location within the office space, the hue, saturation, and intensity of the clusters can be adjusted for the person working at that workstation. For example, in an exemplary embodiment, office workers set their preferred hue, saturation, and intensity via a graphical user interface. These values ​​are transmitted to a database via a local office network (e.g., office Wi-Fi). The controller of the light panel network, following the necessary permission configuration, has access to this database, as it acts as a gateway. When movement is detected near the associated light panel cluster, the controller activates the cluster's light panels. The activation process involves the following steps: retrieving the preferred light output from the database; constructing a composite array corresponding to the location of the panel clusters in the network topology and the personalized lighting output; and transmitting the composite array throughout the network according to an innovative protocol.

[0290] For spatially extended networks like those spanning entire office spaces, efficient data transmission is beneficial. For personalized spaces where lighting is a functional purpose, precise and event-driven lighting control is advantageous. Current innovative protocols greatly facilitate both of these functions.

[0291] Figure 11 The panel is rectangular and can include modular panels, each with four sides. In this example, each side may include interface ports, but this can vary.

[0292] For example, other numbers of interface ports are also possible, and can vary, for example, depending on the number of sides of the modular electronic component (e.g., an LED illuminator). Such a modular electrical component may include triangular, rectangular, pentagonal, hexagonal, heptagonal, octagonal, off-diagonal, decagonal, etc., panels, and a portion or each of the sides of such a panel may include interfaces that need to be assigned a sequence to improve data transport. In some embodiments, there may also be one or more sides without interfaces (e.g., a hexagonal module does not necessarily have six interfaces).

[0293] Figure 12 This is an example illustration of an implementation of a sequential sequence according to some implementation methods.

[0294] In this example, the first composite array consists of ordered contents, in this case, characters A, B, C, and so on, up to Z. The first node receives this composite array. Using this protocol, the first continuous sequence of the composite array is created.

[0295] The meaning of the word "continuous" is (1) that the sequence is ordered, and (2) that the sequence overlaps with an extension of the contents of the first composite array. From the perspective of minimal set operations, the first continuous sequence can be obtained by simply defining a lower bound and an upper bound to be applied to the contents of the first composite array.

[0296] Therefore, the sequence constructed, for example, by combining [A, C, D, X, Z], will be sorted, but it will not be a continuous sequence of the first composite array. This process continues recursively. That is, a second continuous sequence is constructed from the first continuous sequence by applying the same type of minimum set operation.

[0297] This will effectively decompose the first composite array (or the ordered contents constituting the first composite array) into a continuous sequence. For descriptive purposes, these are represented as minimal setup operations that create new sequences, "splitting" the sequences.

[0298] Furthermore, these multiple consecutive sequences are targeted at a given node and are non-overlapping. In other words, any single content unit (called content unit Ω) of the first composite array that has been received through the first network interface of a given node will be sent only through at most one other network interface of the same given node. It is possible that it will not be sent through any network interface because the content unit may be intended for use by a given node.

[0299] In some implementations, "non-overlapping" is an implicit property. A given data sequence is segmented so that nodes are divided into smaller blocks in the manner described above.

[0300] Therefore, any single content unit will exist only in one such sequence. In non-overlapping implementations, data transmission becomes more efficient, but strictly speaking, this is unnecessary.

[0301] An alternative implementation would be to add common units of content to all sequences and ignore those common units in any further calculations. Strictly speaking, the sequences are overlapping, but some innovative aspects of the implementation still apply.

Claims

1. A method for transmitting multiple arrays in a data network comprising multiple nodes, a controller, and multiple connections between the nodes. Its features are: in, The nodes among the plurality of nodes include multiple network interfaces for sending and receiving arrays, and The connections between the nodes are formed by linking multiple network interfaces of the nodes, making the network topology of the connection a tree topology, and each node includes multiple network interfaces. The method includes: The controller assigns a first order individually and locally to all of the plurality of network interfaces for each of the plurality of nodes; The controller recursively traverses the tree topology and determines a second order for the multiple nodes based on the network topology and the first order of the multiple network interfaces. The controller generates a first composite array by cascading multiple arrays, such that the first and second arrays in the first composite array serve as corresponding node pairs for the second order, and are in the same order; and The contents of a first composite array are transmitted in the data network such that each node receives a first consecutive sequence of the first composite array from at least one other node connected via a first network interface and a number of nodes reachable from the first network interface pre-stored in the node's memory, and that each node sends a second consecutive sequence of the first composite array to other nodes connected to it via a second network interface, wherein the second consecutive sequence is constructed based on the first sequence, the second sequence, the number of nodes reachable from the first network interface, and the first consecutive sequence.

2. The method according to claim 1, characterized in that, in, Functions associated with the first and second consecutive sequences of the first composite array include: dividing the first consecutive sequence into a number of overlapping or non-overlapping sequences, and assigning the second consecutive sequence as an overlapping or non-overlapping sequence to other network interfaces in the first order as a second network interface, in a corresponding order to other overlapping or non-overlapping sequences; or, wherein functions associated with the first and second consecutive sequences of the first composite array include: aggregating the number of overlapping or non-overlapping sequences of the array, wherein the second consecutive sequence is an overlapping or non-overlapping sequence with the same order as other overlapping or non-overlapping sequences of second network interfaces to other network interfaces in the first order, and assigning the aggregated second consecutive sequence as the first consecutive sequence.

3. The method according to claim 1, characterized in that, Also includes: After all consecutive sequences of transmissions via the connected second network interface are completed, an acknowledgment message is created and transmitted via the node's first network interface. Specifically, after sending the second consecutive sequence through the second network interface, a node suspends further transmission until it receives at least one acknowledgment message through the same second network interface, such that further transmission is conditional upon successful transmission to the node with the highest sequence among the multiple nodes. If a node in the data network fails to receive at least one acknowledgment message caused by sending a second consecutive sequence within a time threshold, the method further includes generating an error message.

4. The method according to claim 1, characterized in that, in, For a data network, a determined second order is obtained once and stored in memory, such that during the creation and transmission of the first composite array, the determined second order is retrieved from memory, wherein for the data network, the determined second order is obtained at a frequency of less than or equal to four times per second and stored in memory, such that during the creation and transmission of the first composite array, the currently determined second order is retrieved from memory.

5. The method according to claim 1, characterized in that, in, The network interface includes a network interface arranged geometrically on each of the plurality of nodes, wherein the network interface represents an available path for data array transmission between the nodes of the plurality of nodes, and can be serialized based on the geometric traversal, wherein the order of the network interfaces of the nodes in the tree topology corresponds to a clockwise or counterclockwise traversal of the geometric relationship of the network interfaces.

6. The method according to claim 1, characterized in that, in, The node further includes digital or analog sensors to sense one or more states of the node or the environment of the node, and wherein the sensed states are digitally represented as an array-forming portion of the first composite array transmitted in the data network, wherein the state sensed by the node is whether there is an object in the immediate vicinity of the node, or wherein the state sensed by the node is the movement of an object through the air within a 20-meter path from the digital or analog sensors.

7. The method according to claim 1, characterized in that, in, The node also includes an actuator that is actuated to set one or more states of the node based on a portion of the contents of the first composite array received by the node through one or more of its network interfaces, wherein the actuation of the node is a setting of the drive current for a plurality of light-emitting diodes.

8. The method according to claim 1, characterized in that, in, The tree topology of the network topology is determined as the spanning tree of all network interface connections, such that the connections of the spanning tree are a subset of all network interface connections.

9. The method according to any one of claims 1 to 8, characterized in that, The second order is the order of nodes in any given data network relative to the first order, wherein the second order is established based on two other properties of the data network: the exact tree topology of the data network, and the first order used to constitute the nodes of the data network.

10. A method for transmitting an array in a data network comprising multiple nodes and including multiple connections between the nodes, characterized in that, in, The array transfer is from a source node to a target node from one of the plurality of nodes; Among them, each of the plurality of nodes includes multiple network interfaces for sending and receiving arrays, and The connections between the nodes are formed by linking multiple network interfaces of the nodes, resulting in a tree-like network topology. The method includes: For all nodes among the plurality of nodes, a first order is assigned to the plurality of network interfaces; Based on the network topology and the first order of the plurality of network interfaces, a second order is determined for the plurality of nodes; A first composite array is generated using a first array, a first integer, and a second integer, wherein the first integer is set according to the position of the source node or the target node within a determined order; and The contents of the first composite array are transmitted in the data network such that a node receives the first composite array through a first network interface, and sends the first composite array through the second network interface only when the sum of the second integer of the first composite array and the number of nodes contained in the branches of the tree-shaped data network topology connected to the node through the second network interface of the node exceeds the value of the first integer of the first composite array. The second network interface is selected iteratively from a first order of multiple network interfaces of the node, and if the composite array is not sent through the second network interface, the second integer of the first composite array is incremented by the number of nodes contained in the branches of the tree-like data network topology connected to the node through the second network interface.

11. The method according to claim 10, characterized in that, Also includes: After the first composite array is sent via the second network interface, an acknowledgment message is created and sent via the first network interface of the node. After sending the first composite array via the second network interface, the node suspends further transmission until at least one acknowledgment message is received via the same second network interface. Further transmission is conditional upon successful transmission to the first node in the sequence among multiple nodes. If a node in the data network fails to receive at least one acknowledgment message caused by sending the first composite array within a time threshold, the method generates an error message.

12. The method according to claim 10, characterized in that, in, For a data network, a determined second order is obtained once and stored in memory, such that during the creation of the first composite array and its transmission, the determined second order is retrieved from memory; or, for a data network, a cell is obtained at a frequency of less than four times per second and stored in memory, such that during the creation of the first composite array and its transmission, the currently determined second order is retrieved from memory.

13. The method according to any one of claims 10 to 12, characterized in that, The second order is the order of nodes in any given data network relative to the first order, wherein the second order is established based on two other properties of the data network: the exact tree topology of the data network, and the first order used to constitute the nodes of the data network.

14. A data network comprising multiple nodes and multiple connections between the nodes, characterized in that, Multiple nodes of the data network are adapted to transmit arrays throughout the data network using the method described in any one of claims 1 to 13; Each of the plurality of nodes includes a plurality of network interfaces for sending and receiving arrays, and each node includes a programmable integrated circuit and a memory; The connections between nodes are formed by linking multiple network interfaces of the nodes, resulting in a tree-like network topology. and The transmission of the array throughout the data network utilizes the programmable integrated circuit, which is configured to: For all nodes among the plurality of nodes, a first order is assigned to the plurality of network interfaces; Based on the network topology and the first order of the plurality of network interfaces, a second order is determined for the plurality of nodes; A first composite array is generated by cascading multiple arrays, such that the first array and the second array in the first composite array serve as corresponding node pairs for the second order, and are in the same order. and The contents of a first composite array are transmitted in the data network such that each node receives a first continuous sequence of the first composite array from at least one other node connected via a first network interface, and each node sends a second continuous sequence of the first composite array to other nodes connected to it via a second network interface, wherein the second continuous sequence is constructed based on the first continuous sequence according to the first and second orders.

15. The data network according to claim 14, characterized in that, in, The functions associated with the first and second consecutive sequences of the first composite array include: dividing the first consecutive sequence into overlapping or non-overlapping sequences of a number equal to or greater than the number of network interfaces of the connected nodes, and assigning the second consecutive sequence as an overlapping or non-overlapping sequence to other network interfaces in the first order as second network interfaces, in a corresponding order to other overlapping or non-overlapping sequences, wherein the functions associated with the first and second consecutive sequences of the first composite array include: aggregating overlapping or non-overlapping sequences of an array of a number equal to or greater than the number of network interfaces connected to the nodes, wherein the second consecutive sequence is an overlapping or non-overlapping sequence of the same order as other overlapping or non-overlapping sequences of second network interfaces as other network interfaces to the first order, and assigning the aggregated sequence as the first consecutive sequence, wherein the determined second order is obtained once for the data network and stored in memory, such that the determined second order is retrieved from memory during the creation and transmission of the first composite array.

16. A data network comprising multiple nodes and multiple connections between the nodes, characterized in that, The multiple nodes of the data network are adapted to transmit arrays throughout the data network; Each of the plurality of nodes includes a plurality of network interfaces for sending and receiving arrays, and each node includes a programmable integrated circuit and a memory; The connections between nodes are formed by linking multiple network interfaces of the nodes, resulting in a tree-like network topology. and The transmission of the array throughout the data network, from one source node to one destination node across multiple nodes, utilizes a programmable integrated circuit configured as follows: For all nodes among the plurality of nodes, a first order is assigned to the plurality of network interfaces; Based on the network topology and the first order of the plurality of network interfaces, a second order is determined for the plurality of nodes; A first composite array is generated by using a first array, a first integer, and a second integer, wherein the first integer is set according to the position of the source node or the target node within a determined order; and The contents of the first composite array are transmitted in the data network such that a node receives the first composite array through a first network interface. The first composite array is sent through the second network interface only if the sum of the second integer of the first composite array and the number of nodes contained in the branches of the tree-shaped data network topology connected to the node through the second network interface of the node exceeds the value of the first integer of the first composite array. The second network interface is selected iteratively from a first order of multiple network interfaces of the node, and if the composite array is not sent through the second network interface, the second integer of the first composite array is incremented by the number of nodes contained in the branches of the tree-like data network topology connected to the node through the second network interface.

17. The data network according to claim 16, wherein, Each of the plurality of nodes is an illuminator or illuminator controller circuit, and the transmission of the composite array is utilized during the propagation of control messages across the plurality of nodes, wherein the control messages control at least the optical output characteristics of each of the plurality of nodes, the optical output characteristics including hue, saturation, and intensity.

18. A set of interconnected illuminators, each illuminator serving as a node in a data network according to any one of claims 14 to 17.

19. A set of interconnected illuminators and at least one controller, each illuminator and controller serving as a node in a data network according to any one of claims 14 to 17.

Citation Information

Patent Citations

  • Array mesh apparatus, system & methods

    US20070083289A1

  • Use of decision trees for automatic commissioning

    US20090045971A1

  • Server backup method and backup system using the method

    US20170168901A1

  • Lighting strip

    WO2017102419A1