Data display method and device, electronic equipment and storage medium
By using a main thread and a sub-thread to share the processing of lithium battery performance data in the terminal device, the problem of slow data parsing and processing speed in the terminal device is solved, enabling fast access and improving user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHENZHEN HITHIUM ENERGY STORAGE CONTROL TECHNOLOGY CO LTD
- Filing Date
- 2023-09-27
- Publication Date
- 2026-06-23
Smart Images

Figure CN117271617B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of data processing technology, and in particular to a data display method, data display device, electronic device, and computer-readable storage medium. Background Technology
[0002] With the increasing application of energy storage, lithium batteries and other similar devices have been widely adopted. Individual cells are often connected in series, parallel, or a combination of both to form a large battery network. Due to the large number of lithium batteries required, battery energy storage systems are quite complex.
[0003] As energy storage systems operate, lithium battery aging and safety issues inevitably arise during use.
[0004] In related technologies, Energy Management Systems (EMS) can monitor the operational performance data of lithium batteries. However, when installing applications on terminal devices to parse and process the data, there is a problem of prolonged, meaningless scrolling, leading to poor user access convenience. Summary of the Invention
[0005] This disclosure provides a data display method, apparatus, electronic device, and storage medium, which at least to some extent overcomes the problem of poor user access convenience caused by long-term meaningless scrolling when analyzing and processing the operating performance data of lithium batteries monitored by EMS in terminal devices provided in the related art.
[0006] Other features and advantages of this disclosure will become apparent from the following detailed description, or may be learned in part from practice of this disclosure.
[0007] According to one aspect of this disclosure, a data display method is provided, applied to a terminal device. The method includes: responding to a user's display request, requesting data to be displayed within a preset time range from a server; if the processing of the data to be displayed by the terminal device incurs performance overhead, processing the first data to be displayed using a main thread to obtain a first processing result, rendering the first processing result to obtain a first macro table, wherein the preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range; processing the second data to be displayed using a sub-thread to obtain a second processing result, the second data to be displayed being the data to be displayed within the second preset time range; and obtaining and displaying a second macro table based on the second processing result and the first macro table.
[0008] In one embodiment of this disclosure, the first macro table includes at least one node for displaying the first processing result; wherein, the step of processing the first data to be displayed using the main thread to obtain the first processing result includes: determining, according to a preset display sub-cycle, the number of first truncation periods of the data to be displayed within the first preset time range, and the amount of data of the data to be displayed within each first truncation period divided according to the number of the first truncation periods; determining the data to be displayed within each first truncation period according to the amount of data to be displayed; determining the display information within each first truncation period according to the data to be displayed within each first truncation period, thereby obtaining the first processing result; rendering the display information within each first truncation period to the corresponding node, each node corresponding to a secondary detail table, the secondary detail table being used to display the data to be displayed within the corresponding first truncation period.
[0009] In one embodiment of this disclosure, the method further includes: in response to the user's viewing operation on a node, displaying a secondary details table corresponding to the node.
[0010] In one embodiment of this disclosure, the first macro table includes an untrunculated data node for displaying the second processing result; wherein, after the sub-thread processes the second data to be displayed to obtain the second processing result, the method further includes: the sub-thread notifying the main thread to unlock the refresh operation; wherein, the step of obtaining and displaying the second macro table based on the second processing result and the first macro table includes: in response to the user's refresh request, the main thread renders the second processing result and displays the rendered second processing result on the untrunculated data node to obtain the second macro table.
[0011] In one embodiment of this disclosure, before processing the first data to be displayed using the main thread to obtain a first processing result, and rendering the first processing result to obtain a first macro table, the method further includes: determining a first preset time range and a second preset time range according to a preset display period, wherein the first preset time range is less than or equal to one display period, and the second preset time range includes at least one display period; determining the first data to be displayed according to the first preset time range, and sending the first data to be displayed to the main thread; and determining the second data to be displayed according to the second preset time range, and sending the second data to be displayed to a sub-thread.
[0012] In one embodiment of this disclosure, the method further includes: acquiring newly added data to be displayed stored on the server in real time; sending data to the main thread when the amount of newly added data to be displayed reaches a preset threshold; the main thread adding a new data node to the second macro table; responding to the user's new request, the main thread determining the starting point of unacquired newly added data to be displayed and the amount of unacquired newly added data to be displayed based on the second macro table and the newly added data to be displayed, obtaining the third processing result based on the amount of unacquired newly added data to be displayed, and rendering the third processing result on the newly added data node to obtain a third macro table.
[0013] In one embodiment of this disclosure, the step of obtaining the third processing result based on the amount of the unacquired new data to be displayed, and rendering the third processing result on the new data node to obtain a third macro table, includes: if the amount of the unacquired new data to be displayed is less than or equal to a preset baseline value, then the unacquired new data to be displayed is displayed on the new data node using a first and second-level detail table; if the amount of the unacquired new data to be displayed is greater than the preset baseline value, then the main thread determines the unacquired new data to be displayed according to a preset display sub-cycle. The data is divided into two parts: the number of second-stage data segments and the amount of newly added data to be displayed in each second-stage data segment. Based on the amount of newly added data to be displayed in each second-stage data segment, the newly added data to be displayed in each second-stage data segment is determined. Based on the newly added data to be displayed in each second-stage data segment, the display information in each second-stage data segment is determined. The display information in each second-stage data segment is rendered on the newly added data node using a second-level detail table. The newly added data to be displayed in each second-stage data segment is displayed using a third-level detail table, thus obtaining the third macro table.
[0014] In one embodiment of this disclosure, the method further includes: if the processing of the data to be displayed by the terminal device does not incur performance loss, then determining whether the total amount of data to be displayed within the preset time range is greater than a preset baseline value; if the total amount of data to be displayed is greater than the preset baseline value, then determining the number of third truncation periods of the data to be displayed within the preset time range and the amount of data to be displayed in each third truncation period divided according to the number of third truncation periods; determining the data to be displayed in each third truncation period according to the amount of data to be displayed in each third truncation period; determining the display information in each third truncation period according to the data to be displayed in each third truncation period, and displaying the display information in each third truncation period in a fourth macro table, wherein the fourth macro table has several nodes for the third truncation period, each node corresponding to a secondary detail table, and the secondary detail table is used to display the data to be displayed in the corresponding third truncation period.
[0015] In one embodiment of this disclosure, the data to be displayed is the performance data of the energy storage device collected by the energy storage management system (EMS) within a preset time range. The performance data includes one or more of the following: temperature value, voltage value, current value, state of charge (SOC), and state of health (SOH) of the energy storage device.
[0016] According to another aspect of this disclosure, a data display method is provided, applied to a server. The method includes: receiving a display request from a user sent by a terminal device; sending data to be displayed within a preset time range to the terminal device, such that if there is a performance penalty in the terminal device's processing of the data to be displayed, the terminal device uses a main thread to process the first data to be displayed to obtain a first processing result; rendering the first processing result to obtain a first macro table, wherein the preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range; processing a second data to be displayed using a sub-thread to obtain a second processing result, the second data to be displayed being the data to be displayed within the second preset time range; and obtaining and displaying a second macro table based on the second processing result and the first macro table.
[0017] According to another aspect of this disclosure, a data display device is provided, applied to a terminal device, comprising: a request sending module, configured to request data to be displayed within a preset time range from a server in response to a user's display request; a first processing module, configured to process the first data to be displayed using a main thread if there is performance loss in the processing of the data to be displayed by the terminal device, obtain a first processing result, and render the first processing result to obtain a first macro table, wherein the preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range; a second processing module, configured to process the second data to be displayed using a sub-thread, obtain a second processing result, the second data to be displayed being the data to be displayed within the second preset time range; and a visualization module, configured to obtain and display a second macro table based on the second processing result and the first macro table.
[0018] According to another aspect of this disclosure, a data display device is provided, applied to a server, comprising: a request receiving module for receiving a display request from a user sent by a terminal device; a data sending module for sending data to be displayed within a preset time range to the terminal device, such that if there is a performance loss in the processing of the data to be displayed by the terminal device, the terminal device uses a main thread to process the first data to be displayed to obtain a first processing result, and renders the first processing result to obtain a first macro table, wherein the preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range; a sub-thread is used to process the second data to be displayed to obtain a second processing result, the second data to be displayed being the data to be displayed within the second preset time range; and a second macro table is obtained and displayed based on the second processing result and the first macro table.
[0019] According to another aspect of this disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform the above-described data display method by executing the executable instructions.
[0020] According to another aspect of this disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the above-described data display method.
[0021] According to another aspect of this disclosure, a computer program product is provided, including executable instructions stored in a computer-readable storage medium, wherein a processor of an electronic device reads the executable instructions from the computer-readable storage medium and executes the executable instructions, causing the electronic device to perform the above-described data display method.
[0022] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0023] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure. It is obvious that the drawings described below are merely some embodiments of this disclosure, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.
[0024] Figure 1 A schematic diagram of the structure of an energy storage system provided in an embodiment of this disclosure is shown.
[0025] Figure 2 This diagram illustrates the structure of a data display system provided in an embodiment of the present disclosure.
[0026] Figure 3 A flowchart of a data display method provided in an embodiment of this disclosure is shown.
[0027] Figure 4 A flowchart of a first processing result acquisition method provided in an embodiment of this disclosure is shown.
[0028] Figure 5 A flowchart of the second macro table display method provided in an embodiment of this disclosure is shown.
[0029] Figure 6 A flowchart of the third macro table display method provided in the embodiments of this disclosure is shown.
[0030] Figure 7 A flowchart of the fourth macro table display method provided in an embodiment of this disclosure is shown.
[0031] Figure 8 A schematic diagram illustrating an example of a data display method in related technologies is shown.
[0032] Figure 9 The diagram shows a structural schematic of an example of data display provided in this embodiment of the present disclosure.
[0033] Figures 10a-10c This diagram illustrates a structural schematic of an example of a data display method provided in this embodiment.
[0034] Figures 11a-11c This diagram illustrates a structural schematic of an example two of the data display methods provided in this embodiment.
[0035] Figure 12A flowchart of another data display method provided in an embodiment of this disclosure is shown.
[0036] Figure 13 This diagram illustrates the structure of a data display device provided in an embodiment of the present disclosure.
[0037] Figure 14 A schematic diagram of another data display device provided in an embodiment of this disclosure is shown.
[0038] Figure 15 A structural block diagram of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation
[0039] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, they are provided so that this disclosure will be more comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0040] Furthermore, the accompanying drawings are merely illustrative of this disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted. Some block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities may be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.
[0041] Because the energy we need is highly time- and space-dependent, in order to utilize energy rationally and improve energy efficiency, it is necessary to store one form of energy in the same way or by converting it into another, and then release it in a specific energy form based on future application needs. Currently, the main way to generate green electricity is to develop green energy sources such as photovoltaics and wind power to replace fossil fuels.
[0042] Currently, the generation of green electricity generally relies on solar, wind, and hydropower. However, wind and solar power are generally characterized by strong intermittency and large fluctuations, which can cause grid instability, insufficient power during peak demand periods, and excessive power during off-peak periods. Unstable voltage can also damage the power grid. Therefore, insufficient electricity demand or insufficient grid capacity may lead to the problem of "wind and solar curtailment." Solving these problems requires energy storage. This involves converting electrical energy into other forms of energy through physical or chemical means and storing it. When needed, this energy can be converted back into electrical energy and released. Simply put, energy storage is like a large "power bank," storing electrical energy when solar and wind power are abundant and releasing the stored electricity when needed.
[0043] Taking electrochemical energy storage as an example, this disclosure provides an energy storage device. The energy storage device is equipped with a set of chemical batteries, which mainly use the chemical elements in the batteries as energy storage medium. The charging and discharging process is accompanied by the chemical reaction or change of the energy storage medium. Simply put, the electrical energy generated by wind and solar energy is stored in the chemical batteries. When the use of external electrical energy reaches its peak, the stored electrical energy is released for use, or transferred to places with a shortage of electricity for use.
[0044] Current energy storage applications are quite widespread, including generation-side energy storage, grid-side energy storage, and consumption-side energy storage. The corresponding types of energy storage devices include:
[0045] (1) Large-scale energy storage power stations applied to wind power and photovoltaic power stations can assist renewable energy power generation in meeting grid connection requirements and improve the utilization rate of renewable energy. As a high-quality active / reactive power regulation power source on the power supply side, energy storage power stations can achieve load matching of power in time and space, enhance the absorption capacity of renewable energy, reduce instantaneous power changes, reduce the impact on the power grid, improve the absorption of new energy power generation, and are of great significance in power grid system backup, alleviating peak load power supply pressure and peak regulation and frequency regulation.
[0046] (2) Energy storage containers applied on the grid side mainly function as peak shaving, frequency regulation and grid congestion relief. In terms of peak shaving, they can realize peak shaving and valley filling of electricity load, that is, charging the energy storage battery when the electricity load is low and releasing the stored electricity during the peak electricity load period, thereby achieving a balance between power production and consumption.
[0047] (3) Small energy storage cabinets applied to the electricity consumption side mainly function as self-consumption of electricity, peak-valley price arbitrage, capacity cost management, and improvement of power supply reliability. Depending on the application scenario, electricity consumption side energy storage can be divided into industrial and commercial energy storage cabinets, household energy storage devices, energy storage charging piles, etc., which are generally used in conjunction with distributed photovoltaics. Industrial and commercial users can use energy storage for peak-valley price arbitrage and capacity cost management. In the electricity market implementing peak-valley pricing, by charging the energy storage system when the electricity price is low and discharging the energy storage system when the electricity price is high, peak-valley price arbitrage can be achieved, reducing electricity costs. In addition, industrial enterprises subject to two-part tariffs can use energy storage systems to store energy during off-peak hours and discharge during peak loads, thereby reducing peak power and the maximum demand declared, achieving the goal of reducing capacity charges. Household photovoltaics with energy storage can improve the level of self-consumption of electricity. Due to high electricity prices and poor power supply stability, the demand for household photovoltaic installations is driven. Given that photovoltaic power generation occurs during the day, while user load is generally higher at night, configuring energy storage can better utilize photovoltaic power, improve self-consumption levels, and reduce electricity costs. Furthermore, energy storage is needed in areas such as communication base stations and data centers for backup power.
[0048] Please see Figure 1 , Figure 1 This is a schematic diagram of the structure of an energy storage system 100 according to an embodiment of the present disclosure, and the present disclosure Figure 1 The embodiments are illustrated using a shared energy storage scenario on the generation / distribution side as an example. The energy storage system 100 disclosed herein is not limited to such a scenario.
[0049] This disclosure provides an energy storage system 100, which includes an energy storage device 110, a high-voltage cable 120, a first power conversion device 130, and a second power conversion device 140. During power generation, the first power conversion device 130 and the second power conversion device 140 convert other forms of energy into electrical energy, which is then connected to the high-voltage cable 120 and supplied to the power consumption side of the distribution network. When the power load is low and the first conversion device 130 and the second power conversion device 140 generate excess power, the excess power is stored in the energy storage device 110, reducing wind and solar curtailment rates and improving the absorption of new energy power generation. When the power load is high, the power grid issues an instruction to transmit the power stored in the energy storage device 110 in conjunction with the high-voltage cable 120 in a grid-connected mode to supply power to the power consumption side, providing various services such as peak shaving, frequency regulation, and backup for power grid operation, fully leveraging the peak shaving function of the power grid, promoting peak shaving and valley filling, and alleviating the power supply pressure on the power grid.
[0050] Optionally, the first power conversion device 130 and the second power conversion device 140 can convert at least one of solar energy, light energy, wind energy, thermal energy, tidal energy, biomass energy and mechanical energy into electrical energy.
[0051] The number of energy storage devices 110 can be multiple, and the multiple energy storage devices 110 can be connected in series or in parallel. The multiple energy storage devices 110 are supported and electrically connected by an isolation plate (not shown). In this embodiment, "multiple" means two or more. An energy storage box can also be provided on the outside of the energy storage device 110 to house the energy storage device 110.
[0052] Optionally, the energy storage device 110 may include, but is not limited to, a single battery cell, a battery module, a battery pack, or a battery system. The actual application form of the energy storage device 110 provided in this disclosure embodiment may be, but is not limited to, the listed products, and may also be other application forms. This disclosure embodiment does not strictly limit the application form of the energy storage device 110. This disclosure embodiment only uses a multi-cell battery as an example for illustration. When the energy storage device 110 is a single battery cell, the energy storage device 110 may be at least one of cylindrical batteries, prismatic batteries, etc.
[0053] Figure 2 A schematic diagram of an exemplary application system architecture to which a data display method according to embodiments of this disclosure can be applied is shown. For example... Figure 2 As shown, the system architecture may include terminal device 201, network 202, and server 203.
[0054] Network 202 is a medium used to provide a communication link between terminal device 201 and server 203, and can be a wired network or a wireless network.
[0055] Optionally, the aforementioned wireless or wired networks use standard communication technologies and / or protocols. The network is typically the Internet, but can also be any network, including but not limited to Local Area Networks (LANs), Metropolitan Area Networks (MANs), Wide Area Networks (WANs), mobile, wired or wireless networks, private networks, or any combination of virtual private networks. In some embodiments, technologies and / or formats including Hyper Text Markup Language (HTML), Extensible Markup Language (XML), etc., are used to represent data exchanged over the network. Furthermore, conventional encryption technologies such as Secure Socket Layer (SSL), Transport Layer Security (TLS), Virtual Private Networks (VPNs), and Internet Protocol Security (IPSec) can be used to encrypt all or some links. In other embodiments, custom and / or dedicated data communication technologies can be used to replace or supplement the aforementioned data communication technologies.
[0056] Terminal device 201 can be various electronic devices, including but not limited to smartphones, tablets, laptops, desktop computers, smart speakers, smartwatches, wearable devices, augmented reality devices, virtual reality devices, etc.
[0057] Optionally, the client of the application installed on different terminal devices 201 may be the same, or the client of the same type of application based on different operating systems. Depending on the terminal platform, the specific form of the application client may also be different; for example, the application client may be a mobile client, a PC client, etc.
[0058] Server 203 can be a server that provides various services, such as a backend management server that supports the device operated by the user using terminal device 201. The backend management server can analyze and process received requests and other data, and feed the processing results back to the terminal device.
[0059] Optionally, the server can be a standalone physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.
[0060] Those skilled in the art will know that Figure 2 The number of terminal devices, networks, and servers shown is merely illustrative; any number of terminal devices, networks, and servers can be included depending on actual needs. This disclosure does not limit the scope of the embodiments.
[0061] In one application scenario, such as Figure 2 As shown, the data display method is applied to an energy storage system 100 having multiple energy storage devices 110. The energy storage system 100 also includes an energy management system (EMS) 204, which monitors the performance parameters of the multiple energy storage devices 110, such as the performance parameters of the battery module, and stores the monitored performance parameters of the multiple energy storage devices 110 to a server 203, such as a cloud server.
[0062] The performance parameters of the energy storage device 110 may include, but are not limited to, the voltage, current, temperature, state of charge (SOC), and state of health (SOH) of the energy storage device 110.
[0063] In one application scenario, the current date is September 23, 2020, the preset time range is from September 1, 2020 to the current date, the preset display period is 7 days, and the preset display sub-period is 1 day. September 22 to 23 can be used as the first preset time range, and September 1 to 21 can be used as the second preset time range, and the data for each day can be displayed respectively.
[0064] In another application scenario, when data from September 24th is obtained, it is displayed on the terminal device as newly added data to be displayed.
[0065] For ease of access, an application (App) can be installed on the terminal device 201 to parse and process the performance parameters of the energy storage device 110 monitored by the energy management system 204 and display them on the App.
[0066] The backend server returns a massive amount of data, requiring extensive data processing. However, in cross-platform app development, existing app store plugins exhibit discrepancies in the complete display of data across different terminal device models, creating performance bottlenecks, impacting user access convenience, and resulting in prolonged periods of meaningless scrolling.
[0067] On the other hand, since the data is not static, but increases at a certain frequency, or even at discrete time points, there are problems with the updated display in the refreshed chart as the amount of data increases.
[0068] To address at least some of the aforementioned technical problems, the data display method disclosed herein involves a terminal device responding to a user's display request by requesting data to be displayed within a preset time range from a server. If the terminal device experiences performance overhead in processing the data to be displayed, a main thread processes the first data to be displayed to obtain a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed to obtain a second processing result, and the second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. This effectively solves the problem of slow access speed for terminal devices with poor computing power, achieving fast access and improving the user experience.
[0069] Under the above system architecture, this disclosure provides a data display method that can be executed by any electronic device with computing capabilities.
[0070] In some embodiments, the data display method provided in this disclosure can be executed by a terminal device of the system architecture described above; in other embodiments, the data display method provided in this disclosure can be executed by a server in the system architecture described above; in still other embodiments, the data display method provided in this disclosure can be implemented by the terminal device and the server in the system architecture described above through interaction.
[0071] Figure 3 A flowchart illustrating a data display method provided in an embodiment of this disclosure is shown. Figure 3 As shown, the data display method provided in this embodiment of the disclosure, applied to a terminal device, includes the following steps:
[0072] S302. In response to the user's display request, request data to be displayed within a preset time range from the server.
[0073] The user's display request mentioned above is used to characterize the data type, preset time range, etc. that the user wants to view.
[0074] Users can configure information related to the display request, such as data type and preset time range, through the configuration module on the app installed on their terminal device. Once the display request is configured, the user can send the display request through the sending module on the app.
[0075] The preset time range is used to request the server to return the data to be displayed. For example, it can be set to the past week, the past month, a quarter, a year, etc. This disclosure does not make specific limitations.
[0076] In one embodiment, the data to be displayed is performance data of the energy storage device collected by EMS within a preset time range. This performance data includes one or more of the following: temperature, voltage, current, state of charge (SOC), and state of health (SOH). By processing and displaying various performance data of the energy storage device collected by EMS within the preset time range, the usage status of the energy storage device can be monitored in a timely manner, enabling prompt repair and maintenance of malfunctioning devices and improving the safety of the energy storage system.
[0077] S304. If the terminal device experiences performance loss in processing the data to be displayed, the main thread is used to process the first data to be displayed to obtain a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range. The first data to be displayed is the data to be displayed within the first preset time range.
[0078] In one embodiment, the relationship between the total amount of data to be displayed within a preset time range and a preset data volume threshold can be used to determine whether there is a performance loss in the processing of the data to be displayed by the terminal device.
[0079] In one embodiment, the data display method provided by this disclosure includes: determining the total amount of data to be displayed within a preset time range; if the total amount of data to be displayed is greater than a preset data volume threshold, then determining that there is performance loss in the processing of the data to be displayed by the terminal device; if the total amount of data to be displayed is less than or equal to the preset data volume threshold, then determining that there is no performance loss in the processing of the data to be displayed by the terminal device. By using the relationship between the total amount of data to be displayed and the preset data volume threshold, it is possible to conveniently and quickly determine whether there is significant performance loss in the segmented truncation of the data to be displayed by the terminal device, thereby achieving fast access.
[0080] The total amount of data to be displayed within the aforementioned preset time range can be determined based on the data sampling frequency and the preset time range. For example, if the data sampling frequency is 1Hz and the preset time range corresponds to a duration of 1 day, then the total amount of data to be displayed is 86,400. When the preset time range corresponds to a duration of 1 week, the total amount of data to be displayed is 604,800.
[0081] The preset data volume threshold can be pre-configured within the app. This threshold can be set based on experience or a fixed value, such as 250,000. It can be set according to actual circumstances, and this disclosure does not impose any specific limitations. Accordingly, in the above example, it can be determined that there is no performance loss when the terminal device processes data to be displayed within one day, but there is a performance loss when the terminal device processes data to be displayed within one week.
[0082] In another embodiment, the total amount of data to be displayed within the aforementioned preset time range can also be the file size of the data to be displayed. Accordingly, the preset data volume threshold is a file size threshold. For example, the file size of the data to be displayed can be expressed in KB, MB, etc.
[0083] The aforementioned first preset time range is used to characterize the time range of the most recent data retrieved from the server that the user can access and display. The first data to be displayed consists of the most recent data retrieved from the server, allowing the user to view the recent data stored on the server as soon as possible, such as the data from the last day or the last week.
[0084] The main thread's processing of the first data to be displayed can include data segmentation and data extraction.
[0085] The first processing result can be the first data to be displayed in each intercepted time period, or the last data to be displayed in each intercepted time period, or it can be the first data to be displayed in each intercepted time period, a connector, and the last data to be displayed. The connector can be a symbol such as - or ~.
[0086] The first macro table can be a chart that arranges the first processing results within each time segment according to the data type. For example, it can be arranged in chronological order or in reverse chronological order.
[0087] In one embodiment, before the main thread processes the first data to be displayed to obtain the first processing result, the method further includes: determining a first preset time range and a second preset time range according to a preset display period, wherein the first preset time range is less than or equal to one display period, and the second preset time range includes at least one display period; determining the first data to be displayed according to the first preset time range and sending the first data to be displayed to the main thread; and determining the second data to be displayed according to the second preset time range and sending the second data to be displayed to a sub-thread. By processing the data to be displayed through different threads, displaying the first macro table first and then the second macro table, the user can access the most recent data immediately, greatly improving the user experience.
[0088] For example, if a user wants to view the temperature value of the energy storage device for each day of the month, with the week as the sub-cycle, that is, the display period is 1 month and the display sub-cycle is 1 week, the first data to be displayed can be the temperature value of the nearest 7 days or less, and the second data to be displayed can be the temperature value of the three weeks prior to the first preset time range.
[0089] S306. A sub-thread is used to process the second data to be displayed to obtain a second processing result. The second data to be displayed is the data to be displayed within a second preset time range.
[0090] The second preset time range is a period earlier than the first preset time range. For example, if the preset time range is the past week, the first preset time range can be the past day or the 7th day, and the second time range can be the 1st to the 6th day. The second data to be displayed is correspondingly the data returned by the server within the second preset time range.
[0091] Processing the second set of data to be displayed using a sub-thread can include data segmentation and data extraction.
[0092] The second processing result can be the first displayed data in each intercepted time period corresponding to the second preset time range, or the last data to be displayed in each intercepted time period, or the data of the first data to be displayed, a connector, and the last data to be displayed in each intercepted time period. The connector can be a symbol such as - or ~.
[0093] It should be noted that before the child thread finishes processing the second data to be displayed, the App can only access the data in the first macro table, that is, display the information within the first preset time range.
[0094] S308. Based on the second processing result and the first macro table, a second macro table is obtained and displayed.
[0095] After the child thread finishes processing the second data to be displayed, the second processing result can be rendered to obtain the second macro table. At this time, the second macro table is a chart corresponding to the data to be displayed within a preset time range, which is a complete macro chart.
[0096] For example, if a user requests to view the temperature values of an energy storage device within the past month, and the total amount of data from the energy storage device within the past month exceeds a preset data threshold, and the terminal device experiences significant performance loss when segmenting and truncating the data, then the system can be configured to first segment and display the temperature values from the past two weeks using the main thread, and then segment and display the temperature values from the remaining two weeks using a sub-thread. After processing, the first macro table is refreshed to obtain the second macro table.
[0097] The data display method provided in this embodiment involves a terminal device responding to a user's display request by requesting data to be displayed within a preset time range from a server. If the terminal device experiences performance overhead in processing the data to be displayed, a main thread processes the first data to be displayed to obtain a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed to obtain a second processing result, and the second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. This effectively solves the problem of slow access speed for terminal devices with poor computing power, achieving fast access and improving the user experience.
[0098] Figure 4 This diagram illustrates a flowchart of a method for obtaining a first processing result according to an embodiment of the present disclosure. In one embodiment, the first macro table includes at least one node for displaying the first processing result; such as... Figure 4 As shown, S304 above uses the main thread to process the first data to be displayed, obtains the first processing result, and renders the first processing result to obtain the first macro table, including:
[0099] S402. Based on the preset display sub-cycle, determine the number of the first segmented time period of the data to be displayed within the first preset time range, and the amount of data to be displayed within each first segmented time period divided according to the number of the first segmented time period;
[0100] S404. Determine the data to be displayed in each first interception period based on the amount of data to be displayed;
[0101] S406. Based on the data to be displayed in each first interception period, determine the display information in each first interception period and obtain the first processing result;
[0102] S408. Render the display information for each first intercept time period to the corresponding node. Each node corresponds to a secondary detail table, which is used to display the data to be displayed in the corresponding first intercept time period.
[0103] In one embodiment, a reverse loop can be used to segment and extract data from the first preset time range, or a forward loop can be used. The reverse loop is used when the data is the latest, thus displaying the newest data; if the preset requirement is to display older data, a forward loop is used.
[0104] Users can pre-configure the display period and sub-periods via the app. The ratio between the duration of the first preset time range and the sub-periods is calculated, rounded up to obtain the first segmented time period. Based on the start time of the first preset time range and the sub-periods, the dataset of data to be displayed within the first segmented time period is extracted from the first set of data to be displayed. This determines the amount of data to be displayed within each first segmented time period. The maximum amount of data to be displayed within a first segmented time period can be determined based on parameters such as the model and performance of the terminal device. The display period and sub-periods are determined according to the user's viewing needs. For example, if the first segmented time period is 10, the amount of data to be displayed within the first segmented time period is 500, the display period can be one month, and the sub-periods can be one week.
[0105] For example, when displaying the sub-period and the first preset time range, the number of first intercepting periods, the amount of data to be displayed, and multiple first intercepting periods can be determined. Then, based on the correspondence between the sampling time and the data to be displayed in each first intercepting period, the data to be displayed in each first intercepting period can be determined. The actual amount of data to be displayed in each first intercepting period is less than or equal to the amount of data to be displayed in each first intercepting period.
[0106] The information to be displayed in the first segmented time period can be the identifier of each first segmented time period, any data to be displayed in each first segmented time period, or the first and last data to be displayed in the first segmented time period, connected by a connector, etc.
[0107] The first processing result is obtained by storing the display information within each first segmentation period in reverse chronological order, which is a reverse loop; the first processing result is obtained by storing the display information within each first segmentation period in chronological order, which is a forward loop.
[0108] In one embodiment, the first macro table has several nodes for a first segmented time period to display the first processing result, and each node for the first segmented time period corresponds to a second-level detail table, which is used to display the data to be displayed within the corresponding first segmented time period.
[0109] In one embodiment, in response to a user's viewing operation on a node, a secondary details table corresponding to the aforementioned node is displayed, thereby significantly reducing the energy consumption of the display.
[0110] The viewing operation can be a click operation on the above node, such as a single click or double click; the viewing operation can also be a pull-up or pull-down operation on the above node, etc., and this disclosure does not make specific limitations.
[0111] For example, when a user clicks on a node representing a first segmented time period in the first macro table, a second-level details table is displayed. The second-level details table can be displayed floating on the first macro table, or a new display page can be generated through a link. This disclosure does not make any specific limitations.
[0112] In this embodiment of the disclosure, based on the display sub-cycle, the number of first truncation periods of the data to be displayed within the first preset time range is determined, as well as the amount of data to be displayed within each first truncation period divided according to the number of first truncation periods. Based on the amount of data to be displayed, the data to be displayed within each first truncation period is determined. The display information within each first truncation period is extracted to obtain a first processing result. Within the node corresponding to the rendering value of the display information within each first truncation period, each node corresponds to a secondary detail table. The secondary detail table is used to display the data to be displayed within the corresponding first truncation period, thereby adapting to the performance of the terminal device and enabling users to access the most recently obtained multiple data items to be displayed from the server in the first instance, thus improving the user experience.
[0113] In one embodiment, the first macro table includes an uncropped data node for displaying the second processing result. The uncropped data node can be placed before or after the at least one node for displaying the first processing result, depending on user requirements.
[0114] Figure 5 A flowchart illustrating the second macro table display method provided in an embodiment of this disclosure is shown. Figure 5 As shown, the data display method provided in this embodiment includes:
[0115] S502. After processing the second data to be displayed using a sub-thread and obtaining the second processing result, the sub-thread notifies the main thread to unlock the refresh operation.
[0116] In one embodiment, the first macro table displays the first processing result and the uncropped data nodes. The first processing result may include several nodes from the first uncropped time period. The uncropped data nodes have no practical significance during the sub-thread's processing of the second data to be displayed; they are only used for further data refresh.
[0117] For example, an uncaptured data node can be added to the App installed on the terminal device. When the sub-thread is processing the second data to be displayed, the uncaptured data node is displayed in gray until the second data to be displayed is completely processed. Then, the sub-thread notifies the main thread that the uncaptured data node is displayed in white, thereby unlocking the refresh operation. The user can click on the uncaptured data node to refresh the first macro table and obtain the second macro table.
[0118] For example, a refresh control can also be set in the App installed on the terminal device. When the child thread is processing the second data to be displayed, the refresh control is unavailable. When the second data to be displayed is completely processed, the child thread notifies the main thread, and the main thread configures the refresh control to be available, thereby unlocking the refresh operation. In response to the user's click operation, the first macro table is refreshed to obtain the second macro table.
[0119] It should be noted that the child thread's processing of the second data to be displayed may also include data segmentation, data extraction, and other processes. The child thread's processing method and process for the second data to be displayed are similar to those of the main thread's processing method and process for the first data to be displayed, and will not be elaborated here.
[0120] In this embodiment, during the sub-thread's processing of the second data to be displayed, the un-captured data nodes are meaningless and are only used for further data refresh. When the second data to be displayed is completely processed, the sub-thread notifies the main thread to unlock the refresh operation, thereby promptly reminding the user to view the second data to be displayed. This effectively reduces the performance requirements of the terminal device for data segmentation and improves the adaptability of the application.
[0121] Continue to refer to Figure 5 In one embodiment, step S306 above, based on the second processing result and the first macro table, obtains and displays a second macro table, including:
[0122] S504. In response to the user's refresh request, the main thread renders the second processing result on the untrimmed data nodes to obtain the second macro table.
[0123] In one embodiment, a user's refresh request can be a click operation on an uncaptured data node or a scroll operation on the first macro table; this disclosure does not impose any specific limitations.
[0124] Based on the user's refresh request, the main thread renders the second processing result and displays the rendered second processing result on the un-truncated data nodes. At this time, the obtained second macro table has displayed all the data to be displayed from the server.
[0125] In this embodiment, the main thread renders the second processing result onto the uncaptured data nodes based on the user's refresh request to obtain the second macro table, thereby fully displaying all the data to be displayed obtained from the server, facilitating timely access by the user and improving the user experience.
[0126] Figure 6 A flowchart illustrating the third macro table display method provided in an embodiment of this disclosure is shown. Figure 6 As shown, in one embodiment, the data display method provided by this disclosure further includes:
[0127] S602. Real-time acquisition of newly added data to be displayed stored on the server;
[0128] S604. When the amount of newly added data to be displayed reaches the preset quantity threshold, send a data to the main thread.
[0129] S606, The main thread adds new data nodes to the second macro table;
[0130] S608. The main thread responds to the user's new request, determines the starting point of the unacquired new data to be displayed and the amount of unacquired new data to be displayed based on the second macro table and the new data to be displayed; based on the amount of unacquired new data to be displayed, the third processing result is obtained, and the third processing result is rendered on the new data node to obtain the third macro table.
[0131] In one embodiment, before a user enters the current interface of the App and requests an interface, a thread can be started that can be dedicated to network connection and populating new data to be displayed.
[0132] You can use a WebSocket long connection to obtain the newly added data to be displayed and the corresponding time range of the newly added data to be displayed stored on the server in real time.
[0133] After the terminal device obtains the newly added data to be displayed stored on the server in real time, it can store the newly added data to be displayed in the array of the main thread.
[0134] The main thread processes newly added data to be displayed, including at least one of data segmentation and data extraction.
[0135] The method for determining the third processing result is the same as the method for the main thread to process the first data to be displayed, and will not be repeated here.
[0136] In one embodiment, new data nodes can be added to the second macro table. These new data nodes have no real significance in the main thread's processing of new data to be displayed; they are only used for further data updates.
[0137] It should be noted that the method by which the third processing result and the second macro table are used to obtain the third macro table is similar to the method by which the second processing result and the first macro table are used to obtain the second macro table, and will not be repeated here.
[0138] The preset quantity threshold can be pre-configured in the App. For example, each time 10 data entries are accumulated, the data is sent to the main thread once, and the array in the main thread is continuously stored.
[0139] The newly added data node is used to display newly added data to be displayed. During the main thread's processing of this data, the newly added data node has no practical significance; it is merely used for further data refresh. When a user clicks on a newly added data node, a user's request to add data is initiated. The main thread compares the newly added data to be displayed with the last record in the second macro table, identifying any missing data as a starting point, determining the amount of missing data, and then processing that missing data to obtain the third processing result.
[0140] The aforementioned unacquired new data to be displayed is the first data that has not been processed by the main thread in chronological order. Taking the aforementioned unacquired new data to be displayed as the boundary, the data to be displayed before this unacquired new data to be displayed has been processed by the main thread, while the unacquired new data to be displayed and the data to be displayed after this data have not been processed by the main thread.
[0141] It should be noted that the method for obtaining the third processing result is similar to that for obtaining the first and second processing results, and will not be repeated here.
[0142] In one embodiment, if the amount of newly added data to be displayed that has not been acquired is less than or equal to a preset baseline value, the newly added data to be displayed that has not been acquired is displayed on the newly added data node using a first- or second-level detail table to obtain a third macro table. If the amount of newly added data to be displayed that has not been acquired is greater than the preset baseline value, the main thread determines the number of second-stage interception periods of the newly added data to be displayed that has not been acquired, as well as the amount of newly added data to be displayed in each second-stage interception period, based on the preset display sub-cycle. Based on the amount of newly added data to be displayed in each second-stage interception period, the newly added data to be displayed in each second-stage interception period is determined. Based on the newly added data to be displayed in each second-stage interception period, the display information in each second-stage interception period is determined. The display information in each second-stage interception period is rendered on the newly added data node using a second- or second-level detail table. The newly added data to be displayed in each second-stage interception period is displayed using a third-level detail table to obtain the third macro table. This achieves efficient display of the data to be displayed, continuously acquiring new data to be displayed without refreshing the page, thus reducing the performance requirements of the terminal device.
[0143] It should be noted that the process of the main thread handling newly added data to be displayed that has not been retrieved is similar to the process of handling the first data to be displayed, and will not be described in detail here.
[0144] In this embodiment, new data to be displayed is acquired by adding threads. When the amount of new data to be displayed accumulates to a preset threshold, the new data to be displayed is sent to the main thread. Data refresh operation is achieved by adding data nodes. The relationship between the second macro table and the new data to be displayed is compared, thereby filtering out the acquired data to be displayed, so as to improve the accuracy of data processing and improve the user experience.
[0145] Figure 7 This illustration shows a flowchart of a fourth macro table display method provided in an embodiment of the present disclosure. In one embodiment, as... Figure 7 As shown, the data display method provided in this disclosure embodiment further includes:
[0146] S702. If there is no performance loss in the processing of the data to be displayed by the terminal device, then determine whether the total amount of data to be displayed within the preset time range is greater than the preset baseline value.
[0147] S704. If the total amount of data to be displayed is greater than the preset baseline value, then based on the total amount of data to be displayed, determine the number of the third segmentation periods of the data to be displayed within the preset time range, and the amount of data to be displayed in each of the third segmentation periods divided according to the number of the third segmentation periods.
[0148] S706. Determine the data to be displayed in each third interception period based on the amount of data to be displayed in each third interception period;
[0149] S708. Based on the data to be displayed in each third interception period, determine the display information in each third interception period, and display the display information in each third interception period in the fourth macro table. The fourth macro table has several nodes for the third interception period, and each node corresponds to a secondary detail table. The secondary detail table is used to display the data to be displayed in the corresponding third interception period.
[0150] In one embodiment, a preset baseline value is used to characterize the minimum number of data points to be displayed on the same chart across different terminal devices to ensure a reasonable scrolling experience. For example, the preset baseline value can be configured to 500, meaning that a maximum of 500 data points can be displayed in the same chart. Setting a baseline value can further enhance the user's scrolling experience.
[0151] In one embodiment, the total amount of data to be displayed can be squared, and the result can be rounded up to obtain the number of second segmentation periods and the amount of data to be displayed in each of the second segmentation periods divided according to the number of second segmentation periods.
[0152] For example, if the total amount of data to be displayed is sumN = 132, since 132 cannot be used to obtain an integer value, we take the square root of 134, which is close to 132, and get m and n as 12. That is, the number of the second segmentation period and the amount of data to be displayed in each of the second segmentation periods divided according to the number of the second segmentation period are both 12.
[0153] The method for determining the display information in the third interception period is similar to the method for determining the display information in the first interception period. The fourth macro table and the second-level detail table are expressed in the same way as the macro table in the aforementioned embodiment, and will not be repeated here.
[0154] In this embodiment, based on the total amount of data to be displayed and the preset display sub-period, the number of third segmentation periods of the data to be displayed within the preset time range is determined, as well as the amount of data to be displayed in each third segmentation period divided according to the number of third segmentation periods; based on the amount of data to be displayed, the data to be displayed in each third segmentation period is determined; based on the data to be displayed in each third segmentation period, the display information in each third segmentation period is determined, and the display information in each third segmentation period is displayed in the fourth macro table, which can ensure the smoothness of each chart and improve the user experience.
[0155] It should be noted that the first, second, third, and fourth macro tables mentioned above can all be represented in the form of line graphs, bar charts, tables, etc., to show the changing trends of the response performance data within different time periods. For example, a macro table can be a line graph with time on the horizontal axis and the temperature value of the energy storage module on the vertical axis.
[0156] Each detail table can be labeled with a line chart, bar chart, table, or other format to display the data to be displayed within a specific time period.
[0157] This disclosure does not specify the exact form of the macro table and the detailed table.
[0158] To facilitate a further understanding of the embodiments of this disclosure, specific examples are described below. Typically, the amount of data to be displayed obtained by the terminal device from the server is on the order of 10,000 records. In this example, 40 records are used for illustration.
[0159] Figure 8 A schematic diagram illustrating a data display example in related technologies is shown. For example... Figure 8 As shown, a terminal device continuously renders all data to be displayed, simultaneously showing 1-40 data items. Due to the large amount of data rendered at once, display problems arise due to factors such as inconvenient scrolling for the user.
[0160] Figure 9 The diagram illustrates a structural example of a data display example provided in this embodiment. In this example, a baseline value is first determined, for example, base = 500, meaning that the same chart can display data from a maximum of base points. This setting also improves the user's scrolling experience.
[0161] When segmenting the data to be displayed on the terminal device does not result in significant performance loss, the main thread is used to segment all the data to be displayed to obtain the processing result, such as... Figure 9 The nodes 1-7, 8-14, 15-21, 22-28, 29-35, and 36-40 are rendered to obtain the fourth macro table. The corresponding nodes in the fourth macro table only display the above processing results, while the data contained in each node is not displayed. That is, the data 1, 2, 3, 4, 5, 6, and 7 contained in nodes 1-7 are not displayed. When the user clicks on nodes 1-7, the above specific data is displayed.
[0162] Figures 10a-10c This diagram illustrates a structural schematic of an example of a data display method provided in an embodiment of this disclosure. For example... Figure 10a As shown, in this example, the main thread displays X segments of data (data from 36 to 40) and an empty node NodemLastOthers, i.e. Figure 10a The first macro table contains X segments of data (data to be displayed within a first preset time range) processed by the main thread to obtain the first processing result, such as... Figure 10a As shown; the sub-thread processes the data to be displayed within the second preset time range and obtains the second processing result, such as... Figure 10bAs shown; after the child thread finishes processing, the user is notified, and the user manually clicks the empty node NodemLastOthers to refresh the main thread's chart and obtain the second macro table, as shown. Figure 10c As shown, each node in the second macro table contains the data to be displayed for the corresponding node.
[0163] Figures 11a-11c This diagram illustrates a structural schematic of an example two of the data display methods provided in this disclosure. For example... Figure 11a As shown in the example, threads i0 and i2 are started. i2 is used to split the existing data, and i0 is used to get the new data to be displayed.
[0164] The main thread i2 displays X segments of data and two empty nodes. One empty node is NodemLastOthers, which serves the same purpose as the empty node in the example above. The other empty node is NodemNew, which is used to display newly added data to be displayed.
[0165] The i0 thread retrieves newly added data to be displayed in real time and stores it in an array. Whenever 10 data entries are accumulated, a notification is sent to the main thread i2. The NodemNew node stores the newly added data to be displayed in the array arrNew, which can then be manipulated.
[0166] If the amount of newly added data to be displayed in arrNew is less than the preset baseline value of 500, then no square root will be taken, and the data will be displayed directly. Figure 11b As shown.
[0167] If the amount of newly added data to be displayed in arrNew is greater than or equal to the preset baseline value of 500, for example, if 10,000 data entries have been accumulated, the square root will be displayed using a second-level detail table and a third-level detail table. Figure 11c As shown.
[0168] Finally, refresh the second macro table obtained from Figure 10 and the processing results obtained from Figure 11 to obtain the complete macro table.
[0169] Figure 12 A flowchart of another data display method provided in an embodiment of this disclosure is shown. Figure 12 As shown, the data display method provided in this embodiment of the disclosure, applied to a server, includes the following steps:
[0170] S1202, Receive the user's display request sent by the terminal device;
[0171] S1204. Send the data to be displayed within a preset time range to the terminal device, so that if there is a performance loss in the processing of the data to be displayed by the terminal device, the terminal device uses the main thread to process the first data to be displayed, obtains a first processing result, and renders the first processing result to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. Use a sub-thread to process the second data to be displayed, obtain a second processing result, and the second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, obtain the second macro table and display it.
[0172] In another embodiment, the data display method provided in this disclosure further includes:
[0173] Establish a long connection with the terminal device and send newly added data to be displayed that is stored in real time to the terminal device.
[0174] It should be noted that the server can send newly added data to be displayed to the terminal device according to the sampling frequency, or it can send newly added data to be displayed to the terminal device according to a certain period. This disclosure does not make any specific limitations.
[0175] The execution methods on the server side and the terminal device side are implemented in the same way, and will not be described again here.
[0176] In this embodiment, the server receives a display request from a user sent by a terminal device, and sends data to be displayed within a preset time range to the terminal device. If there is performance overhead in processing the data to be displayed on the terminal device, the terminal device uses its main thread to process the first data to be displayed, obtaining a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed, obtaining a second processing result. The second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. This effectively solves the problem of slow access speed for terminal devices with poor computing power, achieving fast access and improving user experience.
[0177] Based on the same inventive concept, this disclosure also provides a data display device, as shown in the following embodiment. Since the principle by which this device embodiment solves the problem is similar to that of the above-described method embodiment, the implementation of this device embodiment can refer to the implementation of the above-described method embodiment, and repeated details will not be elaborated further.
[0178] Figure 13This diagram illustrates the structure of a data display device according to an embodiment of the present disclosure, such as... Figure 13 As shown in the embodiments of this disclosure, the data display device is applied to a terminal device and includes: a request sending module 1301, a first processing module 1302, a second processing module 1303, and a visualization module 1304.
[0179] The request sending module 1301 is used to request data to be displayed within a preset time range from the server in response to the user's display request.
[0180] The first processing module 1302 is used to process the first data to be displayed using the main thread if there is a performance loss in the processing of the terminal device data to be displayed, to obtain a first processing result, and to render the first processing result to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range.
[0181] The second processing module 1303 is used to process the second data to be displayed using a sub-thread to obtain a second processing result. The second data to be displayed is the data to be displayed within a second preset time range.
[0182] The visualization module 1304 is used to obtain and display a second macro table based on the second processing result and the first macro table.
[0183] In one embodiment, the first macro table includes at least one node for displaying the first processing result; the first processing module 1302 is configured to determine, according to a preset display sub-cycle, the number of first truncation periods of the data to be displayed within a first preset time range, and the amount of data to be displayed within each first truncation period divided according to the number of first truncation periods; determine the data to be displayed within each first truncation period according to the amount of data to be displayed; determine the display information within each first truncation period according to the data to be displayed within each first truncation period, and obtain the first processing result; render the display information within each first truncation period to the corresponding node, each node corresponding to a secondary detail table, the secondary detail table being used to display the data to be displayed within the corresponding first truncation period.
[0184] In one embodiment, the visualization module 1304 is used to display a secondary details table corresponding to a node in response to a user's viewing operation on a node.
[0185] In one embodiment, the first macro table includes an untrunculated data node for displaying the second processing result; the second processing module 1303 further includes a data refresh module not shown in the figures, which is used to process the second data to be displayed using a sub-thread and obtain the second processing result. After obtaining the second processing result, the sub-thread notifies the main thread to unlock the refresh operation; the second processing module 1303 is used to respond to the user's refresh request, and the main thread renders the second processing result and displays the rendered second processing result in the untrunculated data node to obtain the second macro table.
[0186] In one embodiment, the device further includes a time range division module (not shown in the figures), configured to, before processing the first data to be displayed using the main thread to obtain a first processing result and rendering the first processing result to obtain a first macro table, determine a first preset time range and a second preset time range based on a preset display period, wherein the first preset time range is less than or equal to one display period, and the second preset time range includes at least one display period; determine the first data to be displayed based on the first preset time range and send the first data to be displayed to the main thread; determine the second data to be displayed based on the second preset time range and send the second data to be displayed to a sub-thread.
[0187] In one embodiment, the device further includes a third processing module (not shown in the figures), which is used to acquire newly added data to be displayed stored on the server in real time; when the amount of newly added data to be displayed reaches a preset threshold, send data to the main thread; the main thread adds a new data node to the second macro table; in response to the user's new request, the main thread determines the starting point of the unacquired newly added data to be displayed and the amount of the unacquired newly added data to be displayed based on the second macro table and the newly added data to be displayed; based on the amount of the unacquired newly added data to be displayed, obtain a third processing result; and render the third processing result on the newly added data node to obtain a third macro table for display.
[0188] In one embodiment, the third processing module is configured to, if the amount of newly added data to be displayed that has not been acquired is less than or equal to a preset baseline value, display the newly added data to be displayed on the new data node using a first- or second-level detail table to obtain a third macro table; if the amount of newly added data to be displayed that has not been acquired is greater than the preset baseline value, the main thread determines the number of second-stage intercepts of the newly added data to be displayed that has not been acquired, as well as the amount of newly added data to be displayed in each second-stage intercept, based on the preset display sub-cycle. Based on the amount of newly added data to be displayed in each second-stage intercept, the main thread determines the newly added data to be displayed in each second-stage intercept, and based on the newly added data to be displayed in each second-stage intercept, the main thread determines the display information in each second-stage intercept. The main thread renders the display information in each second-stage intercept using a second- or second-level detail table on the new data node, and displays the newly added data to be displayed in each second-stage intercept using a third-level detail table to obtain a third macro table.
[0189] In one embodiment, the device further includes a fourth processing module not shown in the figures. The fourth processing module is used to determine whether the total amount of data to be displayed within a preset time range is greater than a preset baseline value if there is no performance loss in the processing of the data to be displayed by the terminal device. If the total amount of data to be displayed is greater than the preset baseline value, the module determines the number of third truncation periods of the data to be displayed within the preset time range and the amount of data to be displayed in each third truncation period based on the total amount of data to be displayed and the preset display sub-cycle. Based on the amount of data to be displayed in each third truncation period, the module determines the data to be displayed in each third truncation period. Based on the data to be displayed in each third truncation period, the module determines the display information in each third truncation period and displays the display information in each third truncation period in a fourth macro table. The fourth macro table has several nodes for the third truncation period, and each node corresponds to a secondary detail table. The secondary detail table is used to display the data to be displayed in the corresponding third truncation period.
[0190] It should be noted that the data to be displayed is the performance data of the energy storage device collected by the energy storage management system (EMS) within a preset time range. The performance data includes one or more of the following: temperature value, voltage value, current value, state of charge (SOC), and state of health (SOH) of the energy storage device.
[0191] In the embodiments of this disclosure, the terminal device responds to the user's display request by requesting data to be displayed within a preset time range from the server. If the processing of the data to be displayed by the terminal device incurs performance overhead, the main thread processes the first data to be displayed to obtain a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed to obtain a second processing result. The second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. This effectively solves the problem of slow access speed for terminal devices with poor computing power, achieves fast access, and improves the user experience.
[0192] Figure 14 This diagram illustrates the structure of another data display device provided in an embodiment of the present disclosure. Figure 14 As shown, in one embodiment, the data display device provided in this disclosure is applied to a server and includes a request receiving module 1401 and a data sending module 1402.
[0193] The request receiving module 1401 is used to receive display requests from users sent by terminal devices.
[0194] The data sending module 1402 is used to send data to be displayed within a preset time range to the terminal device. If there is a performance penalty in processing the data to be displayed on the terminal device, the terminal device uses its main thread to process the first data to be displayed, obtains a first processing result, and renders the first processing result to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread is used to process the second data to be displayed, obtains a second processing result, and the second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed.
[0195] In this embodiment, the server receives a display request from a user sent by a terminal device, and sends data to be displayed within a preset time range to the terminal device. If there is performance overhead in processing the data to be displayed on the terminal device, the terminal device uses its main thread to process the first data to be displayed, obtaining a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed, obtaining a second processing result. The second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. This effectively solves the problem of slow access speed for terminal devices with poor computing power, achieving fast access and improving user experience.
[0196] Those skilled in the art will understand that various aspects of the present invention can be implemented as systems, methods, or program products. Therefore, various aspects of the present invention can be specifically implemented in the following forms: entirely hardware implementations, entirely software implementations (including firmware, microcode, etc.), or implementations combining hardware and software aspects, collectively referred to herein as “circuits,” “modules,” or “systems.”
[0197] The following reference Figure 15 To describe an electronic device 1500 according to this embodiment of the present invention. Figure 15 The electronic device 1500 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.
[0198] like Figure 15 As shown, the electronic device 1500 is manifested in the form of a general-purpose computing device. The components of the electronic device 1500 may include, but are not limited to: at least one processing unit 1510, at least one storage unit 1520, and a bus 1530 connecting different system components (including storage unit 1520 and processing unit 1510).
[0199] The storage unit stores program code, which can be executed by the processing unit 1510 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of the present invention. For example, the processing unit 1510 can perform, as follows: Figure 2The diagram illustrates how, in response to a user's display request, the terminal device requests data to be displayed within a preset time range from the server. If there is performance overhead in processing the data to be displayed on the terminal device, the main thread processes the first data to be displayed to obtain a first processing result. The first processing result is then rendered to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread processes the second data to be displayed to obtain a second processing result. The second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed.
[0200] For example, processing unit 1510 can perform actions such as Figure 12 The diagram shows the process of receiving a user's display request from a receiving terminal device; sending data to be displayed within a preset time range to the terminal device, such that if there is a performance penalty in processing the data to be displayed on the terminal device, the terminal device uses the main thread to process the first data to be displayed, obtains a first processing result, and renders the first processing result to obtain a first macro table. The preset time range includes a first preset time range and a second preset time range, and the first data to be displayed is the data to be displayed within the first preset time range. A sub-thread is used to process the second data to be displayed, obtains a second processing result, and the second data to be displayed is the data to be displayed within the second preset time range. Based on the second processing result and the first macro table, a second macro table is obtained and displayed.
[0201] Storage unit 1520 may include readable media in the form of volatile storage units, such as random access memory (RAM) 15201 and / or cache memory 15202, and may further include read-only memory (ROM) 15203.
[0202] Storage unit 1520 may also include a program / utility 15204 having a set (at least one) program module 15205, such program module 15205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.
[0203] Bus 1530 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.
[0204] Electronic device 1500 can also communicate with one or more external devices 1540 (e.g., keyboard, pointing device, Bluetooth device, etc.), and with one or more devices that enable a user to interact with the system, and / or with any device that enables the electronic device 1500 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 1550. Furthermore, the system can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 1560. Figure 15 As shown, network adapter 1560 communicates with other modules of electronic device 1500 via bus 1530. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in conjunction with electronic device 1500, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0205] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this disclosure.
[0206] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of the present invention may also be implemented as a program product comprising program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of the present invention described in the "Exemplary Methods" section above.
[0207] A program product for implementing the above-described method according to embodiments of the present invention is described. This product may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, the readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.
[0208] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0209] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.
[0210] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0211] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0212] Furthermore, although the steps of the method in this disclosure are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple steps.
[0213] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, mobile terminal, or network device, etc.) to execute the methods according to the embodiments of this disclosure.
[0214] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the appended claims.
Claims
1. A data display method applied to a terminal device, characterized in that, The method includes: In response to a user's display request, the system requests data to be displayed within a preset time range from the server. The data to be displayed is the performance data of the energy storage device collected by the energy storage management system (EMS) within the preset time range. The preset time range includes a first preset time range and a second preset time range. If the terminal device experiences performance loss in processing the data to be displayed, then it acquires the first data to be displayed and the second data to be displayed, respectively. The first data to be displayed is the data to be displayed within the first preset time range, and the second data to be displayed is the data to be displayed within the second preset time range. The first preset time range is less than or equal to one display cycle, and the second preset time range includes at least one display cycle. The main thread processes the first data to be displayed to obtain a first processing result, and renders the first processing result to obtain a first macro table; the first macro table includes an untruncated data node for displaying the second processing result; A sub-thread processes the second data to be displayed to obtain a second processing result; the sub-thread then notifies the main thread to unlock the refresh operation. Based on the second processing result and the first macro table, a second macro table is obtained and displayed; The step of obtaining and displaying a second macro table based on the second processing result and the first macro table includes: in response to the user's refresh request, the main thread renders the second processing result on the uncaptured data node to obtain the second macro table.
2. The data display method according to claim 1, characterized in that, The first macro table includes at least one node for displaying the results of the first processing; The step of using the main thread to process the first data to be displayed, obtaining a first processing result, and rendering the first processing result to obtain a first macro table includes: Based on the preset display sub-cycle, determine the first segmentation period number of the data to be displayed within the first preset time range, and the amount of data to be displayed within each first segmentation period divided according to the first segmentation period number; Based on the amount of data to be displayed, determine the data to be displayed within each of the first interception time periods; Based on the data to be displayed in each of the first interception periods, the display information in each of the first interception periods is determined, and the first processing result is obtained; The display information for each of the first intercept time periods is rendered into the corresponding node. Each node corresponds to a secondary detail table, which is used to display the data to be displayed within the corresponding first intercept time period.
3. The data display method according to claim 2, characterized in that, The method further includes: In response to the user's viewing operation on a node, a secondary details table corresponding to the node is displayed.
4. The data display method according to any one of claims 1-3, characterized in that, Before processing the first data to be displayed using the main thread to obtain a first processing result, and rendering the first processing result to obtain a first macro table, the method further includes: Based on a preset display cycle, a first preset time range and a second preset time range are determined, wherein the first preset time range is less than or equal to one display cycle, and the second preset time range includes at least one display cycle. Based on the first preset time range, determine the first data to be displayed, and send the first data to be displayed to the main thread; Based on the second preset time range, determine the second data to be displayed, and send the second data to be displayed to the sub-thread.
5. The data display method according to claim 1, characterized in that, The method further includes: Retrieve newly added data to be displayed from the server in real time; When the amount of newly added data to be displayed reaches a preset threshold, a data transmission is performed to the main thread. The main thread adds new data nodes to the second macro table; The main thread responds to the user's new request, determines the starting point of the unacquired new data to be displayed and the amount of unacquired new data to be displayed based on the second macro table and the new data to be displayed; based on the amount of unacquired new data to be displayed, a third processing result is obtained, and the third processing result is rendered on the new data node to obtain the third macro table.
6. The data display method according to claim 5, characterized in that, The process involves obtaining the third processing result based on the amount of newly added data to be displayed that has not been acquired, rendering the third processing result on the newly added data node, and obtaining a third macro table, including: If the amount of newly added data to be displayed that has not been acquired is less than or equal to the preset baseline value, then the newly added data to be displayed that has not been acquired will be displayed in the newly added data node using a first and second level detail table to obtain the third macro table; If the amount of newly added data to be displayed that has not been acquired is greater than the preset baseline value, then the main thread determines the number of second interception periods of the newly added data to be displayed that has not been acquired, as well as the amount of newly added data to be displayed in each second interception period, according to the preset display sub-cycle. Based on the amount of newly added data to be displayed in each second interception period, the thread determines the newly added data to be displayed in each second interception period. Based on the newly added data to be displayed in each second interception period, the thread determines the display information in each second interception period. The display information in each second interception period is rendered on the newly added data node using a second-level detail table. The newly added data to be displayed in each second interception period is displayed using a third-level detail table, thus obtaining the third macro table.
7. The data display method according to claim 1, characterized in that, The method further includes: If the terminal device does not suffer performance loss in processing the data to be displayed, then it is determined whether the total amount of data to be displayed within the preset time range is greater than the preset baseline value. If the total amount of data to be displayed is greater than the preset baseline value, then based on the total amount of data to be displayed and the preset display sub-cycle, the number of the third segmentation period of the data to be displayed within the preset time range, and the amount of data to be displayed within each of the third segmentation periods divided according to the number of the third segmentation period; The data to be displayed in each third interception period is determined based on the amount of data to be displayed in each third interception period. Based on the data to be displayed in each of the third interception periods, the display information for each of the third interception periods is determined, and the display information for each of the third interception periods is displayed in a fourth macro table. The fourth macro table has several nodes for each of the third interception periods, and each node corresponds to a secondary detail table. The secondary detail table is used to display the data to be displayed in the corresponding third interception period.
8. The data display method according to claim 1, characterized in that, The performance data includes one or more of the following: temperature, voltage, current, state of charge (SOC), and state of health (SOH) of the energy storage device.
9. A data display method applied to a server, characterized in that, The method includes: Receive display requests from users sent by terminal devices; The system sends data to be displayed within a preset time range to the terminal device. If there is performance loss in the terminal device's processing of the data to be displayed, it acquires a first set of data to be displayed and a second set of data to be displayed. The terminal device uses its main thread to process the first set of data to be displayed, obtaining a first processing result. The first processing result is then rendered to obtain a first macro table. The first macro table includes an untrunculated data node for displaying a second processing result. A sub-thread processes the second set of data to be displayed, obtaining a second processing result. The sub-thread notifies the main thread to unlock the refresh operation. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. In response to the user's refresh request, the main thread renders the second processing result onto the untrunculated data node to obtain the second macro table. The data to be displayed is performance data of the energy storage device collected by the energy storage management system (EMS) within a preset time range. The preset time range includes a first preset time range and a second preset time range. The first set of data to be displayed is the data to be displayed within the first preset time range, and the second set of data to be displayed is the data to be displayed within the second preset time range. The first preset time range is less than or equal to one display cycle, and the second preset time range includes at least one display cycle.
10. A data display device, applied to a terminal device, characterized in that, include: The request sending module is used to respond to the user's display request and request data to be displayed within a preset time range from the server. The data to be displayed is the performance data of the energy storage device collected by the energy storage management system (EMS) within the preset time range. The preset time range includes a first preset time range and a second preset time range. A first processing module is configured to, if the terminal device experiences performance loss in processing the data to be displayed, acquire a first data to be displayed and a second data to be displayed, wherein the first data to be displayed is data to be displayed within a first preset time range, and the second data to be displayed is data to be displayed within a second preset time range, wherein the first preset time range is less than or equal to one display cycle, and the second preset time range includes at least one display cycle; process the first data to be displayed using a main thread to obtain a first processing result, and render the first processing result to obtain a first macro table; the first macro table includes an untrunculated data node for displaying the second processing result; The second processing module is used to process the second data to be displayed using a sub-thread to obtain a second processing result; the sub-thread notifies the main thread to unlock the refresh operation; The visualization module is used to obtain and display a second macro table based on the second processing result and the first macro table; in response to the user's refresh request, the main thread renders the second processing result on the uncaptured data node to obtain the second macro table.
11. A data display device, applied to a server, characterized in that, include: The request receiving module is used to receive display requests sent by the user from the terminal device; The data sending module is used to send data to be displayed within a preset time range to the terminal device, so that if there is a performance loss in the processing of the data to be displayed by the terminal device, the terminal device will obtain the first data to be displayed and the second data to be displayed respectively, process the first data to be displayed using the main thread to obtain the first processing result, and render the first processing result to obtain the first macro table. The first macro table includes an uncropped data node for displaying the second processing result; A sub-thread processes the second data to be displayed to obtain a second processing result; the sub-thread then notifies the main thread to unlock the refresh operation. Based on the second processing result and the first macro table, a second macro table is obtained and displayed. In response to the user's refresh request, the main thread renders the second processing result onto the uncaptured data node to obtain the second macro table. The data to be displayed is the performance data of the energy storage device collected by the energy storage management system (EMS) within a preset time range. The preset time range includes a first preset time range and a second preset time range. The first data to be displayed is the data to be displayed within the first preset time range, and the second data to be displayed is the data to be displayed within the second preset time range. The first preset time range is less than or equal to one display cycle, and the second preset time range includes at least one display cycle.
12. An electronic device, characterized in that, include: processor; as well as Memory is used to store the processor's executable instructions; The processor is configured to execute the data display method of any one of claims 1 to 8, or to execute the data display method of claim 9, by executing executable instructions.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the data display method of any one of claims 1 to 8, or the data display method of claim 9.