The proposed method and apparatus relates to improving the user interface and user experience when updating parameters in a gateway type device.
This section is intended to introduce the reader to various aspects of art, which may be related to the present embodiments that are described below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light.
The problem of a graphical user interface (GUI) interface locking up upon initiation of an update is particularly an issue with certain manufacturers which require a complete reset of the function (e.g., Multimedia over Cable Alliance (MoCA)). MoCA is an industry standard alliance that develops technology for the connected home, such as but not limited to the ability to deliver high definition video and content. MoCA technology operates over existing in-home coaxial cabling. This problem may also apply to other functions such as Wi-Fi in the operation of a processor integrated circuit (IC) when parameters are modified. This MoCA reset (update, reconfiguration, modification) may take tens of seconds. During this time, the function is unavailable. The current arrangement also prevents the operation of the GUI during this time. The MoCA GUI or Simple Network Management Protocol (SNMP) Management Information Bases (MIBs) or other management tools like Tr69 will not be able to show (display) the ‘real’ parameters of the MoCA in this transition state. SNMP is a method by which network management applications can query a management agent using a supported MIB. SNMP operates at the application layer of the OSI model. The user is not shown a clear indication of status, and more importantly, the user cannot continue with other activities until the function reset (update, reconfiguration, modification) is complete.
A method and apparatus are described including accepting multimedia over cable parameters to be updated, saving the multimedia over cable parameters to a non-volatile memory, setting a flag, synchronizing parameters in the non-volatile memory with parameters used by a multimedia over cable chip with a multimedia over cable application programming interface and rebooting the multimedia over cable chip and initiating a background process. Also described are a method and apparatus for operating a background process including forwarding information for display on a multimedia over cable graphical user interface indicating a multimedia over cable chip is in transition, determining status of the multimedia over cable chip rebooting, clearing a flag if the multimedia over cable chip rebooting has completed and stopping the background process and returning to a normal state. Further described are a method and apparatus for operating a background process including accepting multimedia over cable parameters to be updated, saving the multimedia over cable parameters to a non-volatile memory and setting a flag, wherein the flag is a second flag.
Also described are a method and apparatus including accepting multimedia over cable parameters to be updated, saving the multimedia over cable parameters to a non-volatile memory, setting a first flag, synchronizing parameters in the non-volatile memory with parameters used by a multimedia over cable chip with a multimedia over cable application programming interface, forwarding the updated parameters and information for display on a multimedia over cable graphical user interface indicating a multimedia over cable chip is in transition, rebooting the multimedia over cable chip and initiating a background process, clearing a second flag, determining status of the multimedia over cable chip rebooting, clearing the first flag if the multimedia over cable chip rebooting has completed, determining if the second flag is set, stopping the background process and returning to a normal state, if the second flag is set and clearing the first flag.
The proposed method and apparatus is best understood from the following detailed description when read in conjunction with the accompanying drawings. The drawings include the following figures briefly described below:
It should be understood that the drawing(s) are for purposes of illustrating the concepts of the disclosure and is not necessarily the only possible configuration for illustrating the disclosure.
The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.
All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and nonvolatile storage.
Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
The proposed method may apply to any product that uses a GUI or MIB based control mechanism for operation. Primary examples are gateway devices that include MoCA and/or WI-FI and use a GUI for operating parameter changes (e.g., TG8717C and TG81717T). The operation of the proposed method is controlled by control code usually in a processor inside the device such as a “system on a chip” or SoC.
An example of the operation of the process for MoCA is provided below. MoCA can be set/configured/reset/reconfigured by:
1) configuration file at start up—by operator
2) SNMP MIB change—by operator
3) User GUI change—by user
4) Multi-system Operator (MSO) GUI change—by operator
5) Tr69—by operator
Internally, all the parameter are saved to non-volatile memory and the MoCA software then proceeds to reconfigure (update, change, modify), the MoCA device and initiate monitoring of the update (reconfiguration, modification) process.
In the example shown in
When the MoCA is in the transition state, the user can modify (update, reconfigure) the MoCA parameters from GUI again, he/she can also navigate to other screens and continue updating (changing) parameters for other functions. After the MoCA parameter reconfiguration (update, modification) process has completed and MoCA becomes stable, the MoCA GUI will display as normal as shown in
Once a MoCA (BCM 6803) reconfigure (update, modify) command is initiated, the parameters associated with the command are saved to (stored in) non-volatile memory. This non-volatile memory is, for example, the NAND chip on the board (NAND Flash 128M). These parameters will be used by MoCA device (chip BCM6803 MoCA 2.0).
A flag is then set to indicate that the MoCA is in a transition state and further parameter reading from MoCA device is not available. Then parameters in non-volatile memory and parameters used by MoCA chip are synchronized through the MoCA driver (which is a set of software functions running on main CPU (not on the MoCA chip). The software bridges the main CPU and the MoCA chip) This is necessary, otherwise, the parameters saved to non-volatile memory will not be retrieved and used by the MoCA device. MoCA reboot is initiated and a background process to monitor the MoCA reboot is started. As soon as the flag is set, the MoCA GUI display will be based on whether this item will be changed or not after it is set, as described before. An exemplary MoCA GUI appears as shown in
The background process first checks the MoCA status after a first period of time, for example, 20 seconds). If the MoCA reboot has not completed, the background process checks the MoCA periodically, for example, every 10 seconds, and continues to check the MoCA periodically. Once the MoCA reboot has completed and MoCA is stable then the first flag is cleared and the background process is stopped. The MoCA parameters and status can be and are read from the MoCA device. The updated MoCA parameters are used to refresh the MoCA GUI for automatic update or when the user or operator navigates to the MoCA GUI. An exemplary updated MoCA GUI is as shown in
While the MoCA is rebooting the user or operator can navigate to other pages or very importantly can further change MoCA parameters. If the user or operator wants to further change MoCA parameters, he/she can enter the parameters that he/she wants to change on the MoCA GUI transition screen and press ‘SAVE’ button (changes of parameters will only take effect after ‘SAVE’ button is pressed, one ‘SAVE’ press is considered as a parameter change and can change several parameters at one time). The parameters that the user or operator wants to change will be saved to non-volatile memory. Once the MoCA has finished rebooting, The second reconfiguration (update. modification) of the MoCA with new parameters begins. All the parameter changes have to be executed sequentially.
If parameters are modified while the MoCA is rebooting (in the transition state) and the MoCA needs to be reconfigured (updated, modified) again then wait for the first reconfiguration (update, modification) to finish, then start the second reconfiguration (update. modification) immediately. Once the first (initial) MoCA reboot has completed, the background process determines if further parameter updates (modifications, reconfigurations) are needed by checking the non-volatile memory for further saved (stored) parameters have been changed. This is relatively fast since there are only about ten parameters that a user or operator can or would change. The further MoCA parameter updates made by the user through the MoCA GUI (1) are forwarded to the MoCA control/monitoring module and saved to (stored in) non-volatile memory (NAND Flash (4) and upon completion of the previously initiated MoCA (BCM MoCA 2.0 (3)) reboot, the further MoCA parameter update in immediately initiated.
By using the proposed method, users will not have to be delayed (or get stuck or get locked or be frozen) in the MoCA GUI upon initiating a MoCA parameter change (reconfigure, modify). The user can navigate the GUI or change MoCA parameters again. The user does not have to wait for the MoCA updates to become stable. The MoCA GUI in transition state will show ‘Unavailable’ for some item(s) to the user so he/she will know that the MoCA is in a transition state. While in a transition state, the user can modify the parameters as normal but the MoCA GUI will be displayed as in a transition state. If additional MoCA GUI parameters are modified (updated, reconfigured) while the MoCA GUI is in a transition state then the MoCA parameters are saved to an additional non-volatile memory (storage) area and when the MoCA becomes stable, an additional MoCA update will be initiated automatically. In the alternative, while the MoCA is in a transition state, if additional MoCA GUI parameters are modified (updated, reconfigured) the latest MoCA parameters could be retrieved from non-volatile memory and the MoCA update continue until all the updates are complete. The MoCA GUI would be displayed as in a transition state until all updates have been completed and the MoCA is stable.
It is to be understood that the proposed method and apparatus may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Special purpose processors may include application specific integrated circuits (ASICs), reduced instruction set computers (RISCs) and/or field programmable gate arrays (FPGAs). Preferably, the proposed method and apparatus is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.
It should be understood that the elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces. Herein, the phrase “coupled” is defined to mean directly connected to or indirectly connected with through one or more intermediate components. Such intermediate components may include both hardware and software based components.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the proposed method and apparatus is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the proposed method and apparatus.
This application claims priority to a U.S. Provisional Application, Ser. No. 62/008,795, filed on Jun. 6, 2014, which is herein incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/032200 | 5/22/2015 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62008795 | Jun 2014 | US |