OPTIMIZING ACCESS POINT DEVICE ONBOARDING COMPLETION TIME USING MOBILE APP
A client device for use with an access point device, a gateway device, and an external server having stored therein firmware version information indicating a most recent firmware version number, n, associated with the access point device. The access point device having a loaded firmware version number, m, loaded thereon. The client device includes a memory and a processor, which may cause the client device to: connect to the access point device; obtain, from the access point device, the loaded firmware version number, m; obtain, from the external server, the most recent firmware version number, n; disconnect from the access point device; and wait a predetermined period of time and then connect to the gateway device, wherein the predetermined period of time is a first period of time when m=n, and wherein the predetermined period of time is a second period of time when m<n.
This application is a continuation of U.S. application Ser. No. 17/346,467, filed Jun. 14, 2021, which claims priority to U.S. provisional Application No. 63/054,342, filed Jul. 21, 2020, the entire contents of which is fully incorporated herein by reference.
BACKGROUNDEmbodiments of the invention relate to onboarding an access point device onto a gateway.
SUMMARYAspects of the present invention are drawn to a client device for use with an access point device, a gateway device, an external network, and an external server. The gateway device is configured to provide a wireless local area network. The access point device is configured to onboard onto the gateway device. The external server has, stored therein, firmware version information indicating a most recent firmware version number, n, associated with the access point device. The access point device has a loaded firmware version number, m, loaded thereon. The client device includes a memory and a processor configured to execute instructions stored on the memory to cause the client device to: connect to the access point device; obtain, from the access point device, the loaded firmware version number, m; obtain, from the external server via the external network, the most recent firmware version number, n; disconnect from the access point device; and wait a predetermined period of time and then connect to the gateway device, wherein the predetermined period of time is a first period of time when m=n, and wherein the predetermined period of time is a second period of time when m<n.
In some embodiments, the processor is further configured to cause the client device to obtain the most recent firmware version number, n, from a uniform resource locator (URL) of the Internet. In some of these embodiments, the URL of the Internet is obtained from the access point device.
In some embodiments, the second predetermined period is longer than the first predetermined period.
Other aspects of the present disclosure are drawn to a method of operating a client device for use with an access point device, a gateway device, an external network, and an external server. The gateway device is configured to provide a wireless local area network. The access point device is configured to onboard onto the gateway device. The access point device has unique access point device information stored thereon and the external server having stored therein firmware version information indicating a most recent firmware version number, n, associated with the access point device. The access point device has a loaded firmware version number, m, loaded thereon. The method includes: connecting, via a processor configured to execute instructions stored on a memory and from the access point device, to the access point device; obtaining, via the processor, the loaded firmware version number, m; obtaining, via the processor and from the external server via the external network, the most recent firmware version number, n; disconnecting, via the processor, from the access point device; and waiting, via the processor, a predetermined period of time and then connecting to the gateway device, wherein the predetermined period of time is a first predetermined period of time when m=n, and wherein the predetermined period of time is a second predetermined period of time when m<n.
In some embodiments, the method includes obtaining, via the processor, the most recent firmware version number, n, from a URL of the Internet. In some of these embodiments, the method includes obtaining the URL of the Internet from the access point device.
In some embodiments, the second predetermined period is longer than the first predetermined period.
Other aspects of the present disclosure are drawn to a non-transitory, computer-readable media having computer-readable instructions stored thereon, the computer-readable instructions being capable of being read by a client device for use with an access point device, a gateway device, an external network, and an external server. The gateway device is configured to provide a wireless local area network, and the access point device is configured to onboard onto the gateway device. The access point device has unique access point device information stored thereon. The external server has stored therein firmware version information indicating a most recent firmware version number, n, associated with the access point device, and the access point device has a loaded firmware version number, m, loaded thereon. The computer-readable instructions are capable of instructing the client device to perform the method including: connecting, via a processor configured to execute instructions stored on a memory and from the access point device, to the access point device; obtaining, via the processor, the loaded firmware version number, m; obtaining, via the processor and from the external server via the external network, the most recent firmware version number, n; disconnecting, via the processor, from the access point device; and waiting, via the processor, a predetermined period of time and then connect to the gateway device, wherein the predetermined period of time is a first predetermined period of time when m=n, and wherein the predetermined period of time is a second predetermined period of time when m<n.
In some embodiments, the method includes obtaining, via the processor, the most recent firmware version number, n, from a URL of the Internet. In some of these embodiments, the method includes obtaining the URL of the Internet from the access point device.
In some embodiments, the second predetermined period is longer than the first predetermined period.
The accompanying drawings, which are incorporated in and form a part of the specification, illustrate example embodiments and, together with the description, serve to explain the principles of the invention. In the drawings:
A conventional system and method for onboarding an APD to a gateway device will now be described with reference to
As shown in the figure, communication network 100 includes a service provider 102, a residence 104, a gateway device 108, a APD 110, a client device 112, physical media/wiring 114, an external network 116, e.g., the Internet, a backhaul 120, and a wireless local area network (WLAN) 122.
A gateway device, such as gateway device 108, functions as a gateway, and additionally as a router. A router is a networking device used to perform traffic directing functions on the internet. Gateway device 108, also referred to as a gateway, residential gateway, or RG, is an electronic device that is to be located so as to establish a local area network (LAN) at a consumer premises. The consumer premises can include a residential dwelling, office, or any other business space of a user. The terms home, office, and premises may be used synonymously herein.
Gateway device 108 may be any device or system that is operable to allow data to flow from one discrete network to another, which in this example is from WLAN 122 in
Gateway device 108 establishes, or is part of, WLAN 122, using Wi-Fi for example, such that client device 112 and APD 110 are able to communicate wirelessly with gateway device 108. In particular, gateway device 108 is able to communicate wirelessly directly with client device 112 and APD 110. The term Wi-Fi as used herein may be considered to refer to any of Wi-Fi 4, 5, 6, 6E, or any variation thereof.
Further, it should be noted that gateway device 108 is able to communicate with service provider 102 via physical media/wiring 114, which may optionally be a wireless communication system, such as 4G, or 5G, and further is able to connect to external network 116, e.g., the Internet, via service provider 102.
Consider the situation where a user (not shown) using client device 112 has just purchased APD 110 for residence 104, and would like to connect APD 110 to gateway device 108. The conventional method for onboarding APD 110 to gateway device 108 using client device 112 will now be described with reference to
As shown in the figure, algorithm 200 starts (S202), and a backhaul is configured (S204). For example, returning to
Returning to
Returning to
Returning to
Returning to
Returning to
Returning to
Returning to
Returning to
Returning to
However, if it is determined that the ADP was active in previous host table checks (Yes at S216), then the onboarding of the ADP was a success (S222). For example, returning to
What is needed is a system and method for optimizing the time taken to onboard an APD using a client device.
A system and method in accordance with the present disclosure optimizes the time taken to onboard an APD using a client device.
In accordance with the present disclosure, a client device determines the current firmware version of an APD. The client device also determines the firmware upgrade URL address of the APD. The client device receives the contents of the URL and distributes it to the APD. The client device then will compare the current APD firmware version to the firmware upgrade contents taken from the URL to determine the upgrade status. This in turn will eliminate the fixed wait time if the APD already is programmed with the updated firmware.
An example system and method for optimizing APD onboarding completion time using a client device in accordance with aspects of the present disclosure will now be described in greater detail with reference to
As shown in
Service provider 102 is arranged to communicate with gateway device 108 via physical media/wiring 114. Gateway device 108 is arranged to communicate with APD 310, as well as client device 312. Client device 312 is also able to communicate with cellular network 118. External network 116 is arranged to communicate with service provider 102 as well as cellular network 118.
Consider the situation where a user (not shown) using client device 312 has just purchased APD 310 for residence 104, and would like to connect APD 310 to gateway device 108. The method for optimizing the onboarding of APD 310 to gateway device 108 using client device 112 will now be described with reference to
As shown in the figure, algorithm 400 starts (S402), and a backhaul is configured (S204). This is performed in the same manner as discussed above in reference to
Returning to
As shown in
In this example, controller 502, memory 504, radio 508, and interface circuit 512 are illustrated as individual devices. However, in some embodiments, at least two of controller 502, memory 504, radio 508, and interface circuit 512 may be combined as a unitary device. Whether as individual devices or as combined devices, controller 502, memory 504, radio 508, and interface circuit 512 may be implemented as any combination of an apparatus, a system and an integrated circuit. Further, in some embodiments, at least one of controller 502, memory 504 and interface circuit 512 may be implemented as a computer having non-transitory computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transitory computer-readable recording medium refers to any computer program product, apparatus or device, such as a magnetic disk, optical disk, solid-state storage device, memory, programmable logic devices (PLDs), DRAM, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired computer-readable program code in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Disk or disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc. Combinations of the above are also included within the scope of computer-readable media. For information transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer may properly view the connection as a computer-readable medium. Thus, any such connection may be properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.
Example tangible computer-readable media may be coupled to a processor such that the processor may read information from, and write information to the tangible computer-readable media. In the alternative, the tangible computer-readable media may be integral to the processor. The processor and the tangible computer-readable media may reside in an integrated circuit (IC), an application specific integrated circuit (ASIC), or large scale integrated circuit (LSI), system LSI, super LSI, or ultra LSI components that perform a part or all of the functions described herein. In the alternative, the processor and the tangible computer-readable media may reside as discrete components.
Example tangible computer-readable media may be also be coupled to systems, non-limiting examples of which include a computer system/server, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
Such a computer system/server may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Further, such a computer system/server may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
Components of an example computer system/server may include, but are not limited to, one or more processors or processing units, a system memory, and a bus that couples various system components including the system memory to the processor.
The bus represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
A program/utility, having a set (at least one) of program modules, may be stored in the memory by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. The program modules generally carry out the functions and/or methodologies of various embodiments of the application as described herein.
Controller 502 may be a hardware processor such as a microprocessor, a multi-core processor, a single core processor, a field programmable gate array (FPGA), a microcontroller, an application specific integrated circuit (ASIC), a digital signal processor (DSP), or other similar processing device capable of executing any type of instructions, algorithms, or software for controlling the operation and functions of gateway device 108 in accordance with the embodiments described in the present disclosure. Interface circuit 512 can include one or more connectors, such as RF connectors, or Ethernet connectors, and/or wireless communication circuitry, such as 5G circuitry and one or more antennas.
Memory 504 can store various programming, and user content, and data.
Radio 508 (and preferably two or more radios) may also be referred to as a wireless communication circuit, such as a Wi-Fi WLAN interface radio transceiver and is operable to communicate with client device 312 and with APD 310. Radio 508 includes one or more antennas and communicates wirelessly via one or more of the 2.4 GHz band, the 5 GHz band, and the 6 GHz band, or at the appropriate band and bandwidth to implement any IEEE 802.11 Wi-Fi protocols, such as the Wi-Fi 4, 5, 6, or 6E protocols. Gateway device 108 can also be equipped with a radio transceiver/wireless communication circuit to implement a wireless connection in accordance with any Bluetooth protocols, Bluetooth Low Energy (BLE), or other short range protocols that operate in accordance with a wireless technology standard for exchanging data over short distances using any licensed or unlicensed band such as the CBRS band, 2.4 GHz bands, 5 GHz bands, or 6 GHz bands, RF4CE protocol, ZigBee protocol, Z-Wave protocol, or IEEE 802.15.4 protocol.
Interface circuit 512 can include one or more connectors, such as RF connectors, or Ethernet connectors, and/or wireless communication circuitry, such as 5G circuitry and one or more antennas. Interface 512 receives content from service provider 102 (as shown in
As shown in
In this example, controller 514, main memory 516 and radio 520 are illustrated as individual devices. However, in some embodiments, at least two of controller 514, main memory 516 and radio 520 may be combined as a unitary device. Further, in some embodiments, at least one of controller 514 and main memory 516 may be implemented as a computer having tangible computer-readable media for carrying or having computer-executable instructions or data structures stored thereon.
Controller 514 can include a dedicated control circuit, CPU, a hardware processor such as a microprocessor, a multi-core processor, a single core processor, a field programmable gate array (FPGA), a microcontroller, an application specific integrated circuit (ASIC), a digital signal processor (DSP), or other similar processing device capable of executing any type of instructions, algorithms, or software for controlling the operation and functions of the APD 310 in accordance with the embodiments described in the present disclosure. Memory 516 can store various programming, and user content, and data. Radio 520, such as a Wi-Fi WLAN interface radio transceiver, is operable to communicate with client device 312 and with gateway device 108, as shown in
Memory 516 can store various programming, and user content, and data.
Radio 520 (and preferably two or more radios) may also be referred to as a wireless communication circuit, such as a Wi-Fi WLAN interface radio transceiver and is operable to communicate with client device 312 and with gateway device 108. Radio 520 includes one or more antennas and communicates wirelessly via one or more of the 2.4 GHz band, the 5 GHz band, and the 6 GHz band, or at the appropriate band and bandwidth to implement any IEEE 802.11 Wi-Fi protocols, such as the Wi-Fi 4, 5, 6, or 6E protocols. APD 310 can also be equipped with a radio transceiver/wireless communication circuit to implement a wireless connection in accordance with any Bluetooth protocols, Bluetooth Low Energy (BLE), or other short range protocols that operate in accordance with a wireless technology standard for exchanging data over short distances using any licensed or unlicensed band such as the CBRS band, 2.4 GHz bands, 5 GHz bands, or 6 GHz bands, RF4CE protocol, ZigBee protocol, Z-Wave protocol, or IEEE 802.15.4 protocol.
As shown in
In this example, controller 522, main memory 524, radio 528, interface 530 and display 532 are illustrated as individual devices. However, in some embodiments, at least two of controller 522, main memory 524, radio 528, interface 530 and display 532 may be combined as a unitary device. Further, in some embodiments, at least one of controller 522 and main memory 524 may be implemented as a computer having tangible computer-readable media for carrying or having computer-executable instructions or data structures stored thereon.
Controller 522, which can include a dedicated control circuit, CPU, microprocessor, etc., controls the circuits of client device 312.
Memory 524, as will be described in greater detail below, includes onboarding program 526 which has instructions therein to enable client device 312 to: connect to APD 310; obtain, from APD 310, the loaded firmware version number, m; obtain, from an external server in service provider 102 via the external network, the most recent firmware version number, n; disconnect from APD 310; and wait a predetermined period of time and then connect to gateway device 108, wherein the predetermined period of time is a first period of time when m=n, and wherein the predetermined period of time is a second period of time when m<n.
Memory 524, in some embodiments as will be described in greater detail below, includes onboarding program 526 which has additional instructions thereon to enable client device 312 to obtain the most recent firmware version number, n, from a URL of the Internet. In some embodiments, the URL is obtained from APD 310.
In some embodiments, the second predetermined period is longer than the first predetermined period.
Radio 528, may include a Wi-Fi WLAN interface radio transceiver that is operable to communicate with APD 310 and with gateway device 108, as shown in
Interface 530 can include one or more connectors, such as RF connectors, or Ethernet connectors, and/or wireless communication circuitry, such as 5G circuitry and one or more antennas. Interface 530 receives content from service provider 102 (as shown in
Display 532 is operable to display images associated with the connection status of gateway device 108 and APD 310.
With respect to reading the current firmware version number of an APD, client device 312 may obtain the current firmware version number, m, of APD 310. In an example embodiment, controller 522 instructs radio 528 to request APD 310 to provide the most current firmware version number, m, of APD 310. Radio 530 of APD 310 receives the request which is provided to controller 514. Controller 514 obtains the most current firmware version number, m, as indicated in onboarding program 518 of APD 310. This most current firmware version number, m, corresponds to the most current firmware version that would likely have been installed at the factory before distribution of APD 310 to a store, from where the user had purchased APD 310.
In some cases, the time from which APD 310 had been shipped from the factory, to when the user had actually purchased APD 310, may be on the order of months. Therefore, there is a likelihood that the firmware version for operating APD 310 may have been updated to a more current version. Whether or not APD 310 has the most current version of the firmware loaded within onboarding program 518 is an issue that is addressed with the present disclosure.
Returning to
With respect to reading the firmware download URL address of a location of the most current available firmware version of APD 310, client device 312 may obtain the URL address from APD 310. In an example embodiment, controller 522 instructs radio 528 to request APD 310 to provide the URL address. Radio 530 of APD 310 receives the request which is provided to controller 514. Controller 514 obtains the URL address of the location of the most current available firmware version of APD 310 as indicated in onboarding program 518 of APD 310. This URL address is the location of the most current available firmware version APD 310.
Returning to
In some embodiments, APD 310 may retrieve the contents of the firmware download URL from external network 116 by way of cellular network 118. In other embodiments, APD 310 may retrieve may retrieve the contents of the firmware download URL from external network 116 by way of service provider 102, via physical media/wiring 114 and gateway device 108. The content of the firmware download URL are then parsed to determine the most current firmware version number, n, that is available to APD 310.
Returning to
On the contrary, if m<n, then APD 310 will not have the most current firmware version that is available already loaded thereon in onboarding program 518. In such a case, APD 310 will therefore ultimately have to download the most current firmware version from the URL, update onboarding program 518 with the most current firmware version, reboot, and re-associate with gateway device 108. Therefore, in the case that m<n, APD will take a relatively long time to show up on the host table of gateway device 108.
Returning to
Returning to
As discussed above (S408) the case where the current firmware version number of the firmware on APD 310, m, is less than the newest firmware version number, n, that is available to APD 310 (m<n, such that the upgrade status is FALSE), then APD 310 will not have the most current firmware version number available already loaded thereon in onboarding program 518. In such a case, APD 310 will need to upgrade its firmware, reboot, and re-associate with gateway device 108 before it will show up on the host table of gateway device 108. If APD 310 needs to upgrade its firmware, then client device 312 waits X1 seconds. In a non-limiting example embodiment, X1 is 50, which should provide ample time for APD 310 to upgrade its firmware, reboot and re-associate with gateway device 108.
As discussed above (S408) the case where the current firmware version number of the firmware on APD 310, m, is the same as the newest firmware version number, n, that is available to APD 310 (m=n, such that the upgrade status is TRUE), then APD 310 will have the most current firmware version number available already loaded thereon in onboarding program 518. In such a case, APD 310 does not need to upgrade its firmware, then client device 312 waits X2 seconds. It should be noted that X2 seconds is shorter than X1 seconds. In a non-limiting example embodiments X2 is 10.
After client device 312 waits (S412), client device 312 reads the host table on gateway device 108 (S212). It is then determined whether or not APD 310 is currently active in the router's network (S214). If it is determined that APD 310 is not currently active in the router's network (No at S214), client device 312 checks if the wait period has timed out (S218). If client device 312 determines that the wait period has timed out (Yes at S218), then the onboarding of APD 310 has failed (S220) ending algorithm 400 (S414). If client device 312 determines that the wait period has not timed out (No at S218), then client device 312 once again reads the host table on gateway device 108 (return to S212). If it is determined that APD 310 is currently active in the router's network (Yes at S214), client device 312 determines if APD 310 was active in a previous host table check (S216). If it is determined that APD 310 was not active in a previous host table check (No at S216), then client device 312 once again determines if the wait period has timed out (S218). If it is determined that APD 310 was active in previous hosts table check (Yes at S216), then the onboarding of APD 310 was a success (S222), ending algorithm 400 (S414).
The operations disclosed herein may constitute algorithms that can be effected by software, applications (apps, or mobile apps), or computer programs. The software, applications, computer programs can be stored on a non-transitory computer-readable medium for causing a computer, such as the one or more processors, to execute the operations described herein and shown in the drawing figures.
Conventionally, when an APD is purchased, it might need to update its software before it joins a gateway device's network. This process causes the APD to reboot. This updating of software and rebooting of the APD increases the time before the APD shows up on the host table of the gateway, onto which the APD is onboarding. A client device that is monitoring this onboarding process will wait a relatively long duration of time before checking the host table of the gateway to determine whether the APD as onboarded correctly to account for the time required for the software update and reboot of the APD. Occasionally, this wait time is meaningless as the APD may already have the most recent version of its software.
In accordance with the present disclosure, a client device determines the current firmware version of an APD. The client device also determines the firmware upgrade URL address of the APD. The client device then will compare the current APD firmware version number of the firmware loaded on the APD with the most recent firmware version number, identified at the URL and that is available to the APD, to determine whether the APD has the most recent firmware version available. In the event that the APD has the most recent firmware version available, then the client device may more quickly read the host table of the gateway device to determine whether the APD has onboarded correctly.
The present disclosure as disclosed optimizes the time taken to complete APD onboarding. The client device does not have to wait aimlessly for APD to appear on the host table of the gateway device. The client device prioritizes the firmware upgrade status of the APD, which potentially leads to the elimination of the wait period.
The foregoing description of various preferred embodiments have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The example embodiments, as described above, were chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
Claims
1. A first controller for use with a second controller, a third controller, an external network, and an external server, the first controller comprising:
- a processor connected to a memory, the processor configured to execute instructions stored on the memory to cause the first controller to: connect to the second controller; instruct a radio connected to the first controller to request, from the second controller, the loaded firmware version number, m, wherein m is a most current firmware version of the second controller; receive m from the second controller; obtain, from the external server via the external network, a most recent firmware version number, n, associated with the second controller; disconnect from the second controller; and
- wait a predetermined period of time and then connect to the third controller, wherein the predetermined period of time is a first period of time when m=n,
- and wherein the predetermined period of time is a second period of time when m<n.
2. The first controller of claim 1, wherein the processor is further configured to cause the first controller to obtain the most recent firmware version number, n, from a uniform resource locator of the Internet.
3. The first controller of claim 2, wherein the uniform resource locator of the Internet is obtained from the second controller.
4. The first controller of claim 1, wherein the second predetermined period is longer than the first predetermined period.
5. A method of operating a first controller for use with a second controller, a third controller, an external network, and an external server, the method comprising:
- connecting to the second controller;
- instructing a radio connected to the first controller to request the loaded firmware version number, m, from second controller, wherein m is a most current firmware version of the second controller;
- receiving m from the second controller;
- obtaining, from the external server via the external network, a most recent firmware version number, n, associated with the second controller;
- disconnecting from the second controller; and
- waiting a predetermined period of time and then connecting to the third controller, wherein the predetermined period of time is a first predetermined period of time when m=n, and wherein the predetermined period of time is a second predetermined period of time when m<n.
6. The method of claim 5, further comprising obtaining the most recent firmware version number, n, from a uniform resource locator of the Internet.
7. The method of claim 6, wherein obtaining the most recent firmware version number, n, from the uniform resource locator of the Internet comprises obtaining the uniform resource locator of the Internet from the second controller.
8. The method of claim 5, wherein the second predetermined period is longer than the first predetermined period.
9. A non-transitory, computer-readable media having computer-readable instructions stored thereon, the computer-readable instructions being capable of being read by first controller for use with a second controller, a third controller, an external network, and an external server, wherein the computer-readable instructions are capable of instructing the second controller to perform the method comprising:
- connecting to the second controller;
- instructing a radio connected to the first controller to request the most loaded firmware version number, m, from the second controller, wherein m is a most current firmware version of the second controller;
- receive m from the second controller;
- obtaining, from the external server via the external network, a most recent firmware version number, n, associated with the second controller;
- disconnecting from the second controller; and
- waiting a first predetermined period of time and then connecting to the third controller, wherein the predetermined period of time is a first predetermined period of time when m=n, and wherein the predetermined period of time is a first predetermined period of time when m<n.
10. The non-transitory, computer-readable media of claim 9, wherein the computer-readable instructions are capable of instructing the first controller to perform the method further comprising obtaining the most recent firmware version number, n, from a uniform resource locator of the Internet.
11. The non-transitory, computer-readable media of claim 10, wherein the computer-readable instructions are capable of instructing the first controller to perform the method wherein obtaining the most recent firmware version number, n, from the uniform resource locator of the Internet comprises obtaining the uniform resource locator of the Internet from the second controller.
12. The non-transitory, computer-readable media of claim 9, wherein the computer-readable instructions are capable of instructing the first controller to perform the method wherein the second predetermined period is longer than the first predetermined period.
Type: Application
Filed: May 9, 2024
Publication Date: Sep 5, 2024
Inventors: Jalagandeswari GANAPATHY (Bangalore), Muralidharan NARAYANAN (Bangalore)
Application Number: 18/659,604