Over the last decade datacenters have become larger and larger and may house tens of thousands of racks. These racks need power, networking, and other types of services which are delivered via cables/wires. Currently, racks are cabled and patched manually, requiring a large number of cables to be routed to those racks and between those racks. The cable installation process may be time-consuming and may lead to installation errors. Thus, it may be advantageous to guide cable installers within the datacenters between start points and end points for installing cables. Currently available technologies (e.g., mapping technologies) are not helpful in many cases because datacenters may be shielded from receiving/sending GPS and other signals to/from devices within those datacenters. Accordingly, a different mechanism is required for guiding cable installers during cable installation and notifying those installers when there may be an error with the installation.
Accordingly, methods and systems are described herein for facilitating installation of cables within datacenters without signals being sent/received from outside the datacenter buildings. In particular, the mechanism for facilitating installation of cables within datacenters may include the use of a scanning device for scanning codes (e.g., QR codes, bar codes, near field communication (NFC) codes, radio frequency identification (RFID) codes, etc.). In some embodiments, the scanning device may be a scanner that is enabled to scan a code (e.g., a QR code) and send that code to a connected/paired computing device. In some embodiments, the scanning device may be a combination of a scanner that is able to scan a code (e.g., a QR code) and a computing device that is able to process data as described in this disclosure. For example, a scanning device may be a wearable device (e.g., in a form of glasses, on-wrist device, or another suitable wearable device). In some embodiments, the scanning device may be a handheld device (e.g., a smart phone, an infrared scanner, or another suitable device).
A scanning device may scan a cable code associated with a cable to be installed. For example, an installer may be preparing to install one or more cables within the datacenter and may open a box with a multitude of different cables or the installer may enter an area that houses those cables. Each cable may have an attached cable code (e.g., a bar code, a QR code, or another suitable code identifying the cable). The installer may have a scanning device that is able to scan the cable code. In some embodiments, the scanning device may be a wearable device such as a form of glasses with a scanner/camera mounted onto the glasses. In some embodiments, the wearable device may be in a form of a wrist-wearable device with a camera and a screen. In yet some embodiments, the scanning device may be an infrared code scanner or another suitable scanner.
When the scanning device scans the cable code, the scanning device may request and receive path information associated with the cable code. The scanning device may detect, through a wireless connection, a datacenter device that stores the path information for running the cable and other path information for running other cables. The wireless connection may be a Wi-Fi connection, a near field communication connection or another suitable connection. In some embodiments, the connection may be a point-to-point connection. The scanning device may then transmit a cable install request to the datacenter device through the wireless connection. The cable install request may include the cable code. In response, the scanning device may receive path information from the datacenter device. The path information may be used by the installer to run the cable and may include (i) a plurality of location identifiers associated with locations (e.g., locations within the datacenter) and (ii) an order of the locations through which the cable is to be run. The order may include a start location identifier, an end location identifier, and other location identifiers that are part of the path. For example, the path information may include a plurality of locations within the datacenter for the cable to be run through from the start location to the end location.
In some embodiments, based on scanning the code, the scanning device may provide a graphic to the installer showing where within the datacenter the cable should be installed. Thus, in response to scanning the cable code, the scanning device may retrieve one or more instructions for installing the cable from a start location associated with the start location identifier to an end location associated with the end location identifier through locations associated with other location identifiers. The scanning device may then generate for display those locations over the map of the datacenter. That is, the scanning device may generate for display, overlaid over a map of the datacenter, the start location identifier, the end location identifier, and the other location identifiers.
As the installer moves around the datacenter installing the cable, the scanning device may be active and may scan the environment around the user. Thus, the scanning device may continuously monitor an environment of the user (e.g., the installer) for a code corresponding to a path identifier associated with the indoor datacenter path. For example, the scanning device may be in a form of wearable glasses. As the user moves around the datacenter and/or moves his or her head, a camera or another recording device built into the glasses may monitor for a code corresponding to a path identifier. The code may be a portion of a QR code that can be easily detected (e.g., without decoding the full QR code) or may be a shape and/or color that indicates an existence of a path. Not having to decode the full code may enable the scanning device to process images faster and save processing power and battery power by not having to decode full codes. In some embodiments, the scanning device may be on the installer's wrist and may include a camera or another type of scanner, and thus the scanning device may be moving with the installer's wrist to scan codes that will enter the camera's field of view.
The installer may start installation from the start location and continue to other locations in order as indicated in the cable install instructions. In some embodiments, as mentioned above, the scanning device may be a wearable device (e.g., in the form of glasses). The scanning device may identify a path identifier based on a portion of a code (e.g., a portion of a QR code) so that the full code does not have to be decoded. Thus, the scanning device may scan a detected code and attempt to locate within the detected code a predetermined portion (e.g., a predetermined pattern). The scanning device may then determine, based on the predetermined portion of the detected code, whether the detected code corresponds to the path identifier associated with the indoor datacenter path.
In some embodiments, the scanning device may detect a predetermined symbol, color, or color combination to detect a path identifier. The detection of the symbol enables the scanning device to save resources and not decode the full path identifier. Thus, the scanning device may detect an instance of a predetermined symbol indicating presence of a cable path. For example, the scanning device may detect a blue circle, a blue triangle, or another shape, color, or shape/color combination. The scanning device may determine that the instance of the predetermined symbol corresponds to the path identifier. For example, the scanning device may determine that a blue circle corresponds to the path identifier. The scanning device may then scan the code associated with the instance of the predetermined symbol.
The scanning device may continue monitoring the installer's environment until a code corresponding to the path identifier is located. Thus, in response to detecting, via continuous monitoring, a first code corresponding to the path identifier, the scanning device may extract a first location identifier from the first code. For example, the scanning device may detect a blue triangle on a sign on a wall or a beam support of the datacenter and determine that the blue triangle corresponds to the path of the cable. The scanning device may then detect a QR code (or another suitable code) in association with the blue triangle (e.g., on the same sign, below, above, next to, or in another suitable position with respect to the blue triangle). When the QR code is detected, the scanner may extract location information from the QR code.
The scanning device may then determine a next location for running the cable based on the order of the locations through which the cable is to be run. The next location may be associated with a next location identifier within the path. For example, the installer may be running the cable from a start location to an end location through a multitude of other location points within the datacenter. The scanning device may store in memory those locations and may flag locations as the installer gets passed each location. The scanner may then move to the next location once a particular location has been flagged.
When the scanning device detects a path identifier and a particular location identifier, the scanning device may compare that location with the next location for the cable install. Thus, in response to determining that the first location identifier fails to match the next location identifier, the scanning device may generate for display an indication that installation of the cable may be incorrect. For example, the scanning device may originally display the path of the cable installation overlaid over the map of the datacenter and then update the display based on the order. For example, the display may include the start location identifier, the first location identifier, and one or more location identifiers between the start location identifier and the first location identifier and instructions for moving from a first location associated with the first location identifier to a next location associated with the next location identifier.
In some embodiments, the scanning device may determine that multiple cables may need to be run between the same locations as the scanned cable and may recommend to the installer to run those cables as well. Thus, the scanning device, based on scanning the cable code, may determine that one or more other cables are to be installed between the start location and the end location. For example, the scanning device may perform a lookup of all cables that need to be run from the start and the end location associated with the scanned cable. The scanning device may then generate for display a prompt instructing the user to adjust the wearable device for scanning an area having a plurality of cables. For example, the installer may be located in a room where a multitude of cables is staged before installation. The installer may be wearing a scanning device (e.g., glasses with a built-in camera). The scanning device may detect other cables (e.g., based on associated cable codes) to be installed in the same location. Thus, the scanning device may detect the one or more cables within the scanning area and generate for display one or more indicators, indicating the one or more other cables. For example, the scanning device may be coupled with glasses that are able to display augmented reality content. Thus, the glass may indicate to the installer the appropriate cables on the glass surface.
Various other aspects, features, and advantages of the invention will be apparent through the detailed description of the invention and the drawings attached hereto. It is also to be understood that both the foregoing general description and the following detailed description are examples and not restrictive of the scope of the invention. As used in the specification and in the claims, the singular forms of “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. In addition, as used in the specification and the claims, the term “or” means “and/or” unless the context clearly dictates otherwise.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It will be appreciated, however, by those having skill in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other cases, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention.
Data node 104 may store various data, including different cable paths and/or datacenter maps. Data node 104 may include software, hardware, or a combination of the two. For example, data node 104 may be a physical server, or a virtual server that is running on a physical computer system. In some embodiments, cable tracking system 102 and data node 104 may be connected via a network (e.g., a wireless network). Network 150 may be a local area network, a wide area network (e.g., the Internet), or a combination of the two.
Cable tracking system 102 may scan a cable code associated with a cable to be installed. Cable tracking system 102 may scan the cable code via a scanning device. For example, a scanning device may be a camera, a bar code scanner, or another suitable scanning device. The code may be a quick response (QR) code, a bar code, or another suitable code. The scanning device may be coupled with scanning subsystem 110. Scanning subsystem 110 may include software components, hardware components, or a combination of both. For example, scanning subsystem 110 may receive scanning data from a scanning device (e.g., as described above) and store that scanning data in memory. Scanning subsystem 110 may then use one or more processors to interpret the scanning data and/or extract a code from the scanning data. In some embodiments, the cable code may be a QR code, a bar code, or another suitable code.
When scanning subsystem 110 receives the cable code from, for example, the scanning device, scanning subsystem 110 may initiate an operation to retrieve the datacenter path associated with the cable code. In some embodiments, in response to (or based on) scanning the cable code, communication subsystem 112 may attempt to connect to a datacenter device. Communication subsystem 112 may detect through a wireless connection of a wearable device (e.g., a user device being worn by a cable installer) a datacenter device. Communication subsystem 112 may detect the datacenter device through, for example, a Wi-Fi network or a peer-to-peer wireless connection. The datacenter device may store the path information for running the cable and other path information for running other cables. The datacenter device may be data node 104.
Furthermore, scanning subsystem 110 may pass the cable code (or a pointer to the cable code) to communication subsystem 112. Communication subsystem 112 may include software components, hardware components, or a combination of both. For example, communication subsystem 112 may include a network card (e.g., a wireless network card) that is coupled with software to drive the card. Communication subsystem 112 may generate a cable install request for the indoor datacenter cable path. The cable install request may include the cable code or an indication of the cable code. When the request has been generated, communication subsystem 112 may transmit the cable install request along with the cable code (or an indication of the cable code) to the datacenter device (e.g., data node 104). In some embodiments, the indication of the cable code may be a numeric (or alphanumeric) string representing the code. In some embodiments, communication subsystem 112 may transmit the request in response to (or based on) receiving the cable code.
Communication subsystem 112 may receive, from the datacenter device, (e.g., from data node 104) path information for running the cable. The path information may include a plurality of location identifiers associated with locations of an indoor datacenter path. The path information may also include an order of the locations through which the cable is to be run, the order including a start location identifier and an end location identifier and other location identifiers of the plurality of location identifiers.
In some embodiments, the path may be displayed using a device that is hosting cable tracking system 102.
In some embodiments, tracking system 102 may, in response to scanning the cable code, retrieve one or more instructions for installing the cable from a start location associated with the start location identifier to an end location associated with the end location identifier through location associated with other location identifiers. For example, when tracking system 102 (e.g., via scanning subsystem 110) retrieves location identifiers associated with the path of the cable, tracking system 102 may retrieve (e.g., from data node 104) a map of the datacenter. The map may include location identifiers for various locations within the datacenter. Tracking system 102 may determine the location on the map matching the path locations and generate for display, overlaid over a map of the datacenter, the start location identifier, the end location identifier, and the other location identifiers. For example, tracking system 102 may generate for display a map shown in
In some embodiments, scanning subsystem 110 may determine, based on the path of the cable, that other cables should be run together with the scanned cable. For example, each cable to be run may be associated with a path identifier. The path identifier may be unique to each path. Thus, scanning subsystem 110 may transmit an additional request to the datacenter device (e.g., data node 104) for any other cable identifiers (e.g., cable codes) that would have to be run on the same path. Scanning subsystem 110 may receive one or more cable codes in response to the request. Thus, based on scanning the cable code, scanning subsystem 110 may determine that one or more other cables are to be installed between the start location and the end location.
Based on the determination that one or more other cables are to be installed between the start location and the end location, scanning subsystem 110 may generate for display a prompt instructing the user to adjust the wearable device for scanning an area having a plurality of cables. For example, if the user (e.g., cable installer) is using smart glasses 303 (e.g., as shown in
In some embodiments, scanning subsystem 110 (e.g., via output subsystem 116) may generate for display one or more indicators, indicating the one or more other cables. For example, scanning subsystem 110 may generate for display cable identifiers associated with the one or more cables to be run together with the originally scanned cable and, as those cables are located, scanned, and pulled out of inventory, scanning subsystem 110 may remove those cable identifiers from the display.
Cable tracking system 102 may start to continuously monitor an environment of a user of the wearable device for a code corresponding to a path identifier associated with the indoor datacenter path. In some embodiments, the user may be the cable installer that is wearing, for example, glasses 303. Glasses 303 may be equipped with a camera or another scanning device that is enabled to scan codes (e.g., QR codes, bar codes, near field communication (NFC) codes, radio frequency identification (RFID) codes, etc.), or other suitable types of codes). Thus, as the user is moving his/her head around, the camera and accompanying software may be monitoring for a particular code. In some embodiments, the code may be a QR code, a bar code, an alphanumeric code, and/or a combination of those. In some embodiments, another suitable code may be used with cable tracking system 102.
In some embodiments, the enclosing shapes (e.g., circles, triangles, squares, etc.) may be used to identify presence of the code without decoding the code. For example, location detection subsystem 114 may scan a detected code (e.g., an image of the code or another suitable representation of the detected code). The location detection subsystem 114 may decode a predetermined portion of the detected code and determine, based on the predetermined portion of the detected code, whether the detected code corresponds to the path identifier associated with the indoor datacenter path. In some embodiments, the predetermined portion of detected code may be the enclosing shape. For example, the datacenter path for the cable may be a path that includes locations associated with an enclosing circle. Thus, location detection subsystem 114 may detect the enclosing circle within the image to determine that the detected code corresponds to the path identifier associated with the indoor datacenter path. In some embodiments, location detection subsystem 114 may detect a portion of the QR code to indicate the datacenter path.
In some embodiments, instead of or in addition to the enclosing shapes, location detection subsystem 114 may use a predetermined symbol or symbols to detect path identifiers. A symbol may be a stand-alone symbol in the vicinity of the code or may be part of the code (e.g., part of a QR code). Thus, location detection subsystem 114 may detect an instance of a predetermined symbol corresponding to any path identifier. In some embodiments, the symbol may be an encircling shape or a shape of a particular color. Location detection subsystem 114 may scan the code associated with the instance of the predetermined symbol.
Location detection subsystem 114 may, in response to detecting, via continuous monitoring, a first code corresponding to the path identifier, extract a first location identifier from the first code. Location detection subsystem 114 may include software components, hardware components, or a combination of both. For example, location detection subsystem 114 may include software components that access data in memory and/or storage, and may use one or more processors to perform its operations.
In some embodiments, when the installation of the cable has started, location detection subsystem 114 may determine that the first location identifier does not match the start location. In that case, location detection subsystem 114 may direct the cable installer to the start location of the cable install (e.g., location 206). In some embodiments, location detection subsystem 114 may ask the cable installer to confirm (e.g., via user input) whether the cable installer is in the correct location.
Location detection subsystem 114 may determine a next location for running the cable based on the order of the locations through which the cable is to be run. The next location may be associated with a next location identifier of the plurality of location identifiers. For example, by previously scanning a code at location 212 of
In response to determining that the first location identifier fails to match the next location identifier, cable tracking system 102 may (e.g., via output subsystem 116) generate for display an indication that installation of the cable may be incorrect. Output subsystem 116 may include software components, hardware components, or a combination of both. For example, output subsystem 116 may include software components that access data in memory and/or storage, and may use one or more processors to display information onto a display. In some embodiments, output subsystem 116 may generate a particular display and transmit that display to another device. For example, location detection subsystem 114 may generate for display an error message indicating, to the cable installer, that the cable installation may not be proceeding correctly. In some embodiments, the error message may indicate an expected location, determined based on the prior scanned code, and the actual location, based on the newest scanned code). In some embodiments, location detection subsystem 114 may generate an audio message indicating, to the cable installer, that the cable installation may not be proceeding correctly.
In some embodiments, output subsystem 116 may update a displayed map based on the scanned location and the expected location. For example, when the cable code was scanned, output subsystem 116 may have generated for display a map shown in
In another scenario, cable tracking system may detect location 209 (e.g., based on scanning the corresponding code) followed by location 215 (based on scanning the next corresponding code). Thus, cable tracking system 102 may determine that the installer somehow skipped a location. Cable tracking system 102 may prompt the cable installer to indicate whether the location was skipped or whether the code associated with that location was not scanned. In response to detecting that the cable installer indicated that the code was not scanned, cable tracking system 102 may update the installation tracking process to indicate that the skipped location was not skipped.
Computing system 600 may include one or more processors (e.g., processors 610a-610n) coupled to system memory 620, an input/output I/O device interface 630, and a network interface 640 via an input/output (I/O) interface 650. A processor may include a single processor, or a plurality of processors (e.g., distributed processors). A processor may be any suitable processor capable of executing or otherwise performing instructions. A processor may include a central processing unit (CPU) that carries out program instructions to perform the arithmetical, logical, and input/output operations of computing system 600. A processor may execute code (e.g., processor firmware, a protocol stack, a database management system, an operating system, or a combination thereof) that creates an execution environment for program instructions. A processor may include a programmable processor. A processor may include general or special purpose microprocessors. A processor may receive instructions and data from a memory (e.g., system memory 620). Computing system 600 may be a uni-processor system including one processor (e.g., processor 610a), or a multi-processor system including any number of suitable processors (e.g., 610a-610n). Multiple processors may be employed to provide for parallel or sequential execution of one or more portions of the techniques described herein. Processes, such as logic flows, described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating corresponding output. Processes described herein may be performed by, and apparatus can also be implemented as, special purpose logic circuitry (e.g., an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit)). Computer system 600 may include a plurality of computing devices (e.g., distributed computer systems) to implement various processing functions.
I/O device interface 630 may provide an interface for connection of one or more I/O devices 660 to computer system 600. I/O devices may include devices that receive input (e.g., from a user) or output information (e.g., to a user). I/O devices 660 may include, for example, a graphical user interface presented on displays (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor), pointing devices (e.g., a computer mouse or trackball), keyboards, keypads, touchpads, scanning devices, voice recognition devices, gesture recognition devices, printers, audio speakers, microphones, cameras, or the like. I/O devices 660 may be connected to computer system 600 through a wired or wireless connection. I/O devices 660 may be connected to computer system 600 from a remote location. I/O devices 660 located on remote computer systems, for example, may be connected to computer system 600 via a network and network interface 640.
Network interface 640 may include a network adapter that provides for connection of computer system 600 to a network. Network interface 640 may facilitate data exchange between computer system 600 and other devices connected to the network. Network interface 640 may support wired or wireless communication. The network may include an electronic communication network, such as the Internet, a local area network (LAN), a wide area network (WAN), a cellular communications network, or the like.
System memory 620 may be configured to store program instructions 670 or data 680. Program instructions 670 may be executable by a processor (e.g., one or more of processors 610a-610n) to implement one or more embodiments of the present techniques. Instructions 670 may include modules of computer program instructions for implementing one or more techniques described herein with regard to various processing modules. Program instructions may include a computer program (which in certain forms is known as a program, software, software application, script, or code). A computer program may be written in a programming language, including compiled or interpreted languages, or declarative or procedural languages. A computer program may include a unit suitable for use in a computing environment, including as a stand-alone program, a module, a component, or a subroutine. A computer program may or may not correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one or more computer processors located locally at one site, or distributed across multiple remote sites and interconnected by a communication network.
System memory 620 may include a tangible program carrier having program instructions stored thereon. A tangible program carrier may include a non-transitory computer readable storage medium. A non-transitory computer readable storage medium may include a machine-readable storage device, a machine-readable storage substrate, a memory device, or any combination thereof. Non-transitory computer readable storage medium may include non-volatile memory (e.g., flash memory, ROM, PROM, EPROM, EEPROM memory), volatile memory (e.g., random access memory (RAM), static random access memory (SRAM), synchronous dynamic RAM (SDRAM)), bulk storage memory (e.g., CD-ROM and/or DVD-ROM, hard drives), or the like. System memory 620 may include a non-transitory computer readable storage medium that may have program instructions stored thereon that are executable by a computer processor (e.g., one or more of processors 610a-610n) to cause the subject matter and the functional operations described herein. A memory (e.g., system memory 620) may include a single memory device and/or a plurality of memory devices (e.g., distributed memory devices).
I/O interface 650 may be configured to coordinate I/O traffic between processors 610a-610n, system memory 620, network interface 640, I/O devices 660, and/or other peripheral devices. I/O interface 650 may perform protocol, timing, or other data transformations to convert data signals from one component (e.g., system memory 620) into a format suitable for use by another component (e.g., processors 610a-610n). I/O interface 650 may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard.
Embodiments of the techniques described herein may be implemented using a single instance of computer system 600, or multiple computer systems 600 configured to host different portions or instances of embodiments. Multiple computer systems 600 may provide for parallel or sequential processing/execution of one or more portions of the techniques described herein.
Those skilled in the art will appreciate that computer system 600 is merely illustrative, and is not intended to limit the scope of the techniques described herein. Computer system 600 may include any combination of devices or software that may perform or otherwise provide for the performance of the techniques described herein. For example, computer system 600 may include or be a combination of a cloud computing system, a data center, a server rack, a server, a virtual server, a desktop computer, a laptop computer, a tablet computer, a server device, a client device, a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a vehicle-mounted computer, or a Global Positioning System (GPS), or the like. Computer system 600 may also be connected to other devices that are not illustrated, or may operate as a stand-alone system. In addition, the functionality provided by the illustrated components may, in some embodiments, be combined in fewer components, or distributed in additional components. Similarly, in some embodiments, the functionality of some of the illustrated components may not be provided, or other additional functionality may be available.
At 704, cable tracking system 102 receives path information for running the cable. For example, cable tracking system 102 may receive the path information from a data node 104. Cable tracking system 102 may receive the path information over network 150 using network interface 640. At 706, cable tracking system 102 continuously monitors an environment of a user of the wearable device for a code corresponding to a path identifier associated with the indoor datacenter path. Cable tracking system 102 may instruct a camera or another suitable scanner (e.g., I/O device 660) to continually scan the environment. Cable tracking system 102 may use one or more processors 610a, 610b, and/or 610n to process results of the scanning.
At 708, cable tracking system 102 extracts a first location identifier from the first code. Cable tracking system 102 may receive the first code from a scanning device (e.g., I/O device 660 via I/O interface 630) and store that first code in system memory 620. Cable tracking system 102 may use one or more processors (e.g., processor 610a) to perform the extraction operation. At 710, cable tracking system 102 determines a next location for running the cable based on the order of the locations through which the cable is to be run. Cable tracking system 102 may use one or more processors (e.g., processor 610a) to perform this operation. At 712, cable tracking system 102 generates for display an indication that installation of the cable may be incorrect. Cable tracking system 102 may use one or more processors (e.g., processor 610a) to generate a display and send the generated display to a display device. For example, the display device may be connected via I/O device interface 630. Thus, cable tracking system 102 may use I/O device interface 630 to send the display.
Although the present invention has been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred embodiments, it is to be understood that such detail is solely for that purpose and that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the scope of the appended claims. For example, it is to be understood that the present invention contemplates that, to the extent possible, one or more features of any embodiment can be combined with one or more features of any other embodiment.
The above-described embodiments of the present disclosure are presented for purposes of illustration, and not of limitation, and the present disclosure is limited only by the claims which follow. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.
The present techniques will be better understood with reference to the following enumerated embodiments: