Automatic layout method and device of software radio modularization waveform development system
By recursively traversing to build a component hierarchy tree and automatically adjusting the routing, the problem of messy layout and routing in the software radio componentized waveform development system is solved, achieving efficient automatic layout and dynamic adjustment, and improving design and development efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DAYAO INFORMATION TECH (HUNAN) CO LTD
- Filing Date
- 2026-03-26
- Publication Date
- 2026-04-24
AI Technical Summary
In software-defined radio componentized waveform development systems, the positions and connections between components become increasingly complex during the design process as the number of components and the connection relationships become more complicated, resulting in low layout and routing efficiency and making it difficult to achieve efficient automated layout and dynamic reconfiguration.
A recursive traversal method is used to determine the level of each waveform component and establish a component hierarchy tree. The vertical position is determined layer by layer and the final coordinate position of the components is calculated. By automatically adjusting the wiring between components, efficient automatic layout of components is achieved.
It achieves a clean and aesthetically pleasing component layout, improves the readability and maintainability of waveform flowcharts, supports dynamic adjustments, and enhances waveform design and development efficiency.
Smart Images

Figure CN121920285A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of software radio technology and relates to an automatic layout method and apparatus for a software radio componentized waveform development system. Background Technology
[0002] In the modular waveform development system of software radio, the waveform development process is carried out by dragging and dropping waveform components. Each waveform component can have 0 to multiple input terminals or output terminals (i.e., I / O terminals) depending on its function. Each waveform component can be connected to the front waveform component or the rear waveform component through I / O terminals according to the actual development needs of the waveform, indicating the data flow mode: for example, data is output from the output terminal of the front waveform component to the input terminal of its rear waveform component through the connection, completing the data flow between the two waveform components.
[0003] In waveform development practice, although drag-and-drop is convenient for waveform development in the field of software radio, the positions and connections between components gradually become messy as the number of components and the connection relationships become more complex during the design process, resulting in technical problems of low layout and routing efficiency. Summary of the Invention
[0004] To address the problems existing in the above-mentioned traditional methods, this invention proposes an automatic placement method and an automatic placement device for a software radio componentized waveform development system, which can realize efficient automated placement and routing of waveform development and has high maintainability.
[0005] To achieve the above objectives, the embodiments of the present invention adopt the following technical solutions: On the one hand, an automatic layout method for a software-defined radio componentized waveform development system is provided, including the following steps: Using a recursive traversal approach, all waveform components on the waveform design canvas in the waveform development system are traversed sequentially along the output terminals of the waveform components to determine the level of each waveform component and establish a component hierarchy tree. Starting from the first level of the component hierarchy tree, the vertical position order of the waveform components at each level is determined layer by layer; the vertical position order is determined based on the order position of the output terminal of the previous level connected to the current waveform component. Calculate the total height of the waveform component's level and the final coordinate position of the waveform component in the component hierarchy tree after vertical position sorting; wherein, starting from the leaf components of the component hierarchy tree, traverse forward layer by layer to determine the total height of the component hierarchy and the coordinate position of the parent component in the waveform design canvas. Based on the calculated final coordinates of all waveform components, the positions of the waveform components in the waveform design canvas are updated, and the wiring between the waveform components is automatically adjusted synchronously to obtain the waveform flow graph after automatic layout; synchronous automatic adjustment includes horizontal adjustment and vertical adjustment.
[0006] In one embodiment, the component level of a waveform component that only generates data and has no data input is 1.
[0007] In one embodiment, the process of determining the level of each waveform component and building a component hierarchy tree by recursively traversing the data includes: Iterate through all waveform components, find all waveform components with input terminal 0 and store them in the hierarchy list array; Iterate through the waveform components in the hierarchy list array one by one, and recursively traverse each connected waveform component along the output terminal of the waveform component until the hierarchy calculation of all waveform components is completed; wherein, the current recursive call depth plus 1 is compared with the current level of the current other waveform component; if the current recursive call depth plus 1 is greater than the current level, then the latest level of the current other waveform component is set to the current recursive call depth plus 1; Add each waveform component to the list of child components of its parent component, and set the vertical sort field of the waveform components to be sorted.
[0008] In one embodiment, the calculation process for the y-axis coordinate in the final coordinate position of the waveform component includes: Set the leaf component layer as the current component layer and set the latest y-axis position to equal the highest position of the component; According to the sorting position, each waveform component is retrieved in sequence, the latest y-axis position of each waveform component is calculated, and the latest y-axis position of each waveform component and the total layer height of the current layer are updated respectively, until the y-axis position of all components in the current layer is calculated. After setting the height of the canvas space occupied by the parent component of the leaf component layer, update the parent component layer of the leaf component layer to the current layer and reset the total layer height to 0, then jump to the calculation process of the y-axis coordinate until the y-axis coordinates of all component layers have been calculated.
[0009] In one embodiment, the calculation process for the x-axis coordinate in the final coordinate position of the waveform component includes: After setting a fixed distance between component layers, the x-axis coordinate of the waveform component is automatically calculated based on the fixed width of the waveform component and the layer in which the waveform component is located.
[0010] On the other hand, an automatic layout device for a software-defined radio componentized waveform development system is also provided, comprising: The hierarchical tree building module is used to recursively traverse all waveform components on the waveform design canvas in the waveform development system along the output terminals of the waveform components, determine the level of each waveform component and build the component hierarchy tree. The vertical sorting module is used to determine the vertical position sorting of waveform components, starting from the first level of the component hierarchy tree and proceeding layer by layer. The vertical position sorting is determined based on the sorting position of the output terminal of the previous layer connected to the current waveform component. The coordinate calculation module is used to calculate the total height of the waveform component's level in the component hierarchy tree after vertical position sorting and the final coordinate position of the waveform component; it traverses forward sequentially from the leaf components of the component hierarchy tree, determining the total height of the component hierarchy layer by layer upwards, and the coordinate position of the parent component in the waveform design canvas. The layout update module is used to update the position of the waveform components in the waveform design canvas according to the final coordinate position of all waveform components calculated, and synchronously and automatically adjust the wiring between the waveform components to obtain the waveform flow graph after automatic layout.
[0011] One of the above technical solutions has the following advantages and beneficial effects: The aforementioned automatic layout method and apparatus for software-defined radio componentized waveform development system determines the level of each waveform component and establishes a component hierarchy tree through recursive traversal. It then determines the vertical position and sorting of each waveform component's level, calculates the total height and final coordinate position of each level in the component hierarchy tree, and finally updates the position of the waveform components on the waveform design canvas while simultaneously and automatically adjusting the wiring between them. This results in a waveform flow graph after automatic layout. It allows for a one-time global adjustment of layout and wiring, enabling rapid adjustment of component layout and wiring from a global perspective. The uniform vertical and horizontal distances between components result in a neat and aesthetically pleasing layout on the waveform design canvas, significantly improving the readability and maintainability of the waveform flow graph. It also supports dynamic horizontal and vertical adjustments. Horizontal adjustments, based on global adjustments, allow waveform developers to quickly adjust horizontally, while vertical adjustments, based on global adjustments, allow for rapid vertical adjustments, enabling quick alignment of waveform components at the same level. Ultimately, this significantly improves the efficiency of waveform designers in designing and developing waveform systems. Attached Figure Description
[0012] To more clearly illustrate the technical solutions in the embodiments of the present invention or the conventional technology, the drawings used in the description of the embodiments or the conventional technology will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 A waveform flow diagram for unadjusted layout routing of one of the waveforms; Figure 2 The waveform flow diagram after adjusting the layout and routing for one of the waveforms; Figure 3 This is a flowchart illustrating the automatic layout method of a software radio componentized waveform development system in one embodiment. Figure 4 A waveform flow graph showing the original state of an example waveform in one embodiment; Figure 5 This is a schematic diagram of the component hierarchy tree for an example waveform in one embodiment; Figure 6 This is a schematic diagram of the component hierarchy tree after the adjustment order of an example waveform in one embodiment; Figure 7 This is a waveform flow diagram showing the waveform after adjustment of an example waveform in one embodiment. Figure 8 This is a schematic diagram of the module architecture of the automatic layout device of a software radio componentized waveform development system in one embodiment. Detailed Implementation
[0014] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. The terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to limit the invention.
[0015] It should be noted that, in this document, the reference to "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of the invention. The presentation of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. Those skilled in the art will understand that the embodiments described herein can be combined with other embodiments. The term "and / or" as used herein refers to any combination of one or more of the associated listed items, and all possible combinations, including such combinations.
[0016] The embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
[0017] like Figure 1 and Figure 2As shown, in waveform development practice, manual placement and routing adjustments are time-consuming and error-prone, especially in complex waveforms (such as multi-carrier, frequency hopping, and MIMO), where the connections between modules are intricate, leading to low efficiency in manual placement and routing. When component modules are modified, the wiring relationships need to be manually readjusted, which cannot guarantee consistency and results in poor reusability of placement and routing. The system lacks intelligent placement strategies, resulting in component modules being stacked haphazardly in the graphical interface, affecting readability and debugging efficiency, and exacerbating layout chaos. When dynamically loading waveform components during system operation, automatic routing and layout updates cannot be completed, making it difficult to support dynamic reconstruction, resulting in poor readability, maintainability, and user experience. Figure 1 and Figure 2 The existing modules shown in the diagram are: ZTUMo represents a project-customized module, AF represents an array processing module, ZMQP represents a lightweight open-source message queue library, MatrixMsg represents a matrix message, Match represents a matched filter, Range represents a distance dimension processing module, SNRIn represents a signal-to-noise ratio indicator module, and cul_R represents a distance calculation module.
[0018] In one embodiment, such as Figure 3 As shown, an automatic layout method for a software radio componentized waveform development system is provided, which may include the following processing steps S10 to S16: S10: Using a recursive traversal method, all waveform components on the waveform design canvas in the waveform development system are traversed sequentially along the output terminals of the waveform components to determine the level of each waveform component and establish a component hierarchy tree. S12, starting from the first level of the component hierarchy tree, determine the vertical position order of the waveform components layer by layer; the vertical position order is determined according to the order position of the output terminal of the previous layer connected to the current waveform component. S14, calculate the total height of the waveform component's level and the final coordinate position of the waveform component in the component hierarchy tree after vertical position sorting; wherein, starting from the leaf components of the component hierarchy tree, traverse forward layer by layer to determine the total height of the component hierarchy and the coordinate position of the parent component in the waveform design canvas. S16. Based on the final coordinate positions of all waveform components calculated, update the positions of the waveform components in the waveform design canvas and synchronously and automatically adjust the wiring between the waveform components to obtain the waveform flow graph after automatic layout; synchronous automatic adjustment includes horizontal adjustment and vertical adjustment.
[0019] It is understandable that the waveform components of software radio have the following characteristics: (1) each waveform component has a fixed width W and a dynamic canvas space height h; (2) each waveform component has 0 or more input terminals and 0 or more output terminals, such as Figure 1As shown, the input terminals and output terminals are arranged sequentially on the left and right sides of the waveform component; (3) The waveform components are connected to each other by a wire, and the data flows from the output terminal of the waveform component to the input terminal of other waveform components through the wire; (4) The input terminal of the waveform component can be connected to the output terminal of multiple other waveform components at the same time, and the same output terminal of the waveform component can also be connected to the input terminal of multiple other waveform components; (5) The position of the waveform component can be dragged to any position in the waveform design canvas, and the connection between the waveform components will be automatically adjusted as dragged to ensure that the input terminals and output terminals at both ends of the connection are always connected.
[0020] To better perform layout and routing operations, we first define the component structure, as shown in Table 1.
[0021] Table 1
[0022] The automatic layout method of the aforementioned software-defined radio componentized waveform development system determines the level of each waveform component and establishes a component hierarchy tree through recursive traversal. It then determines the vertical position and sorting of each waveform component's level, calculates the total height and final coordinate position of each level in the component hierarchy tree, and finally updates the position of the waveform components in the waveform design canvas while simultaneously and automatically adjusting the wiring between them. This results in a waveform flow graph after automatic layout. It allows for a one-time global adjustment of layout and wiring, enabling rapid adjustment of component layout and wiring from a global perspective. The uniform vertical and horizontal distances between components result in a neat and aesthetically pleasing layout on the waveform design canvas, significantly improving the readability and maintainability of the waveform flow graph. It also supports dynamic horizontal and vertical adjustments. Horizontal adjustments, based on global adjustments, allow waveform developers to quickly adjust horizontally, while vertical adjustments, based on global adjustments, allow for rapid vertical adjustments, enabling quick alignment of waveform components at the same level. Ultimately, this significantly improves the efficiency of waveform designers in designing and developing waveform systems.
[0023] Specifically, the first step is to determine the level of each waveform component and establish a component hierarchy tree: First, regarding the definition of the component level of a waveform component: In waveform design, data flows through the output terminals of one waveform component to the input terminals of the next connected waveform component. The number of components the data passes through from the waveform's data source to the current waveform component plus 1 (adding 1 is to avoid starting the level from 0 and improve computational efficiency), which is the component level (LEVEL_NUM). Furthermore, from this definition, we can see that a waveform component that only generates data and has no data input has a component level of 1.
[0024] Then, iterate through all waveform components, find all waveform components with input terminals of 0, that is, find all waveform components with a level of 1 and store them in the level list array LEVEL_LIST; Iterate through the LEVEL_LIST array of levels in sequence, take out the target waveform component with level 1, and recursively traverse the remaining waveform components connected to the target waveform component along the output terminal of the target waveform component. Record the current recursive call depth as Di.
[0025] Specifically, the recursion call depth Di+1 is compared with the current level of the current other waveform component. If the recursion call depth Di+1 is greater than the current level, the latest level of the current other waveform component is set to Di+1. The recursive traversal of each other waveform component connected to the current waveform component is also recorded as Di.
[0026] Establish a component hierarchy tree: Add the current waveform component to the list of child components of its parent component (i.e., the components field), and set the vertical sort field sort of the waveform component to -1, indicating that it is to be sorted.
[0027] The level calculation for all waveform components is completed by following the recursive traversal process described above.
[0028] Step 2: Determine the vertical position sorting of the waveform components at each level. The vertical position sorting of the waveform components is determined based on the sorting position of the output terminals of the previous layer connected to the current waveform component. Specifically, starting from the first layer of the previously established component hierarchy tree, initialize the latest sorting position of the components (Current_Sort = 1). Then, take out one waveform component C to be sorted from the current layer of the component hierarchy tree. Based on the sorting position C_Sort of the output terminals of the waveform component C to be sorted, sequentially search from top to bottom for the child components C_Child connected to the output terminals of the waveform component C to be sorted, and set the sorting position of the child components C_Child to sort (sort = Current_Sort). The latest sorting position Current_Sort of the components is incremented by 1 until all waveform components in the current layer of the component hierarchy tree have completed the vertical position sorting. Afterward, start from the next layer of the component hierarchy tree and repeat the same vertical position sorting process until all levels of the component hierarchy tree have been traversed and the vertical position sorting process has been completed.
[0029] Step 3: Calculate the total height of the waveform component's level and the final coordinate position of the waveform component in the component hierarchy tree after vertical position sorting.
[0030] As is understandable, unlike the previous two steps, the third step involves traversing backward from the leaf components of the component hierarchy tree, determining the total height of the component hierarchy layer by layer, and the coordinate position of the parent component in the waveform design canvas.
[0031] Specifically, initially, set the vertical spacing between waveform components (e.g., vertical spacing GAP=20, in pixels) and set the highest position of the components (e.g., highest position of the components TOP_Y=50, in pixels), and set the total height of the current layer to C_TATOL_H=0.
[0032] The calculation process for the y-axis coordinate can specifically include the following steps: Set the leaf component layer as the current component layer and set the latest y-axis position to equal the highest position of the component; extract each waveform component in sequence according to its sorting position, calculate the latest y-axis position of each waveform component, and update the latest y-axis position of each waveform component and the total height of the current layer, until the y-axis position of all components in the current layer has been calculated; after setting the height of the canvas space occupied by the parent component of the leaf component layer, update the parent component layer of the leaf component layer to the current layer and reset the total height to 0, then jump to the aforementioned y-axis coordinate calculation process, until the y-axis coordinates of all component layers have been calculated.
[0033] Specifically, set the leaf component layer as the current component layer and set the latest y-axis position (coordinate) to the highest position of the component, i.e., Current_Y=TOP_Y; Starting from the current component layer, the y-axis position of the first-ranked waveform component is updated, along with the latest y-axis position and the total height of the current layer. The y-axis position is equal to half the sum of the vertical spacing distance, the highest position of the component, and the height of the canvas space occupied by the waveform component, i.e., y0 = (GAP + TOP_Y + h) / 2. The latest y-axis position is updated to the y-axis coordinate position of the waveform component, i.e., Current_Y = y0. The total height of the current layer is updated by adding the y-axis coordinate position of the waveform component, i.e., C_TATOL_H = C_TATOL_H + y0.
[0034] Based on the sorting position, the remaining waveform components are retrieved sequentially. The latest y-axis position of each remaining waveform component is calculated, and the latest y-axis position and the total layer height of the current layer are updated accordingly. For any remaining waveform component, similarly, the latest y-axis position of that remaining waveform component is calculated as y1 = (Current_Y + GAP + h) / 2, and the latest y-axis position of that remaining waveform component is updated as Current_Y = y1. The total layer height of the current layer containing that remaining waveform component is also updated as C_TATOL_H = C_TATOL_H + y1. Repeat the aforementioned coordinate position calculation process until the y-axis position of the current layer component is fully calculated.
[0035] Set the height h of the canvas space occupied by the parent component of the leaf component layer, where h = C_TATOL_H. That is, the actual height of the canvas space occupied by the parent component is the total layer height C_TATOL_H. Update the parent component layer of the leaf component layer to the current layer, reset the total layer height C_TATOL_H to 0, and then repeat the above coordinate position calculation process until the y-axis coordinates of all component layers have been calculated.
[0036] Finally, calculate the x-axis coordinates of all waveform components. The calculation process involves determining the horizontal coordinate of each waveform component: after setting a fixed distance between component layers (e.g., 60 pixels), the x-axis coordinate of the waveform component can be automatically calculated. That is, the x-axis coordinate of the waveform component is x = (W... level) +60 (level-1), where W is the fixed width of the waveform component and level indicates the level of the waveform component.
[0037] Step 4: Based on the calculated final coordinates (x-axis and y-axis coordinates) of all waveform components, update the positions of the waveform components in the waveform design canvas, and simultaneously adjust the routing between waveform components automatically. Specifically, the automatic routing adjustment includes horizontal and vertical adjustments. Horizontal adjustment: Based on the global automatic adjustment of the component-based waveform development system, it allows users (such as waveform developers) to make fine adjustments in the horizontal direction without causing global automatic layout and routing. Vertical adjustment: Based on the global automatic adjustment of the component-based waveform development system, it allows users to make fine adjustments in the vertical direction, automatically helping users to vertically align waveform components at the same level without making horizontal adjustments.
[0038] In some implementations, an example of one such implementation is also provided, demonstrating the process of automatically adjusting the layout of waveform components. For example... Figure 4 The image shows the original state of a waveform. To visually illustrate the adjustment process, each waveform component has been numbered.
[0039] The first step is to determine the level of the component: traverse all waveform components and find the waveform components with input terminal 0, that is, find all waveform components with level 1, and obtain the component number of the first level as: [1]. Starting from the first level, recursively traverse each waveform component in the waveform to obtain the component number of the second level as [2] and the component number of the third level as [3].
[0040] The process of establishing the fourth layer: The sub-components of the waveform component numbered 3 are numbered 4, 5, 6, 8, 9, 10, 12 and 13 respectively.
[0041] The process of establishing the fifth layer is as follows: Take out all waveform components from the fourth layer in sequence, find all sub-components of each waveform component, and establish the component hierarchy tree for that part: Sub-component 4 is empty; sub-component 5 is empty; sub-component 6 is empty; sub-component 8 is 14; sub-component 9 is empty; sub-component 10 is empty; sub-component 12 is 11; sub-component 13 is empty. Therefore, the component numbers for the fifth layer are [14, 11].
[0042] The process of establishing the sixth layer: Take out all waveform components [14,11] from the fifth layer in sequence, find all sub-components of each waveform component and establish the component hierarchy tree of that part: the sub-component of number 14 is empty; the sub-components of number 11 are 7 and 15. Thus, the component numbers of the sixth layer are [7,15].
[0043] The process of establishing the seventh layer is as follows: Take out all waveform components [7,15] from the sixth layer sequentially, find all sub-components of each waveform component, and establish the component hierarchy tree for that part: the sub-component of component 7 is empty; the sub-component of component 15 is empty. Therefore, the components of the seventh layer are empty, meaning the seventh layer does not exist. The component hierarchy tree for this waveform has a maximum of six layers. The final component hierarchy tree is as follows: Figure 5 As shown.
[0044] The second step is to determine the vertical order of the waveform components: the vertical order of the waveform components is determined based on the order of the output terminals of the layer above them. In the example waveform, the position of waveform component 3 needs to be adjusted: starting from the output port of waveform component 3, its sub-components are sorted from top to bottom, and the result after sorting is as follows. Figure 6 As shown.
[0045] The third step is to calculate the total height of the level where the waveform component is located in the component hierarchy tree and the final coordinate position of the waveform component. For example... Figure 4 As shown, the fixed width of the waveform component is 60, the height of the canvas space occupied by waveform component 3 is 120, the height of the canvas space occupied by waveform component 4 is 60, and the height of the canvas space occupied by other components is equal to the actual height of the component (its value is 30). The vertical spacing between components is 20, and the distance from the top area (i.e., the highest position of the component TOP_Y) is 40.
[0046] from Figure 6 Starting with the leaf component, calculate the canvas space height occupied by its parent component in sequence: Canvas space height occupied by wave component 11 = (Actual height of wave component 7 + Actual height of wave component 15 + Vertical spacing distance) 1) = 80.
[0047] The height of the canvas space occupied by waveform component 12 is equal to the height of the canvas space occupied by waveform component 11, which is 80.
[0048] The height of the canvas space occupied by waveform component 3 = (the height of the canvas space occupied by waveform component 4 + the height of the canvas space occupied by waveform component 6 + the height of the canvas space occupied by waveform component 10 + the height of the canvas space occupied by waveform component 12 + the height of the canvas space occupied by waveform component 8 + the height of the canvas space occupied by waveform component 5 + the height of the canvas space occupied by waveform component 9 + the height of the canvas space occupied by waveform component 13 + vertical spacing distance) 7) = 430.
[0049] The height of the canvas space occupied by waveform component 2 is equal to the height of the canvas space occupied by waveform component 3, which is 430.
[0050] The height of the canvas space occupied by waveform component 1 = the height of the canvas space occupied by waveform component 2 = 430.
[0051] The height of the canvas space occupied by the other waveform components is the actual height of the component.
[0052] Calculate the y-axis position of each waveform component: The actual y-axis position of each waveform component is the distance from the top area (e.g., 40) + the height of the canvas space it occupies / 2.
[0053] Calculate the x-axis position of each waveform component: The actual x-axis position of each waveform component is the layer in which the waveform component is located. Fixed width of waveform components (e.g., 60).
[0054] The final coordinate positions of the waveform components obtained from the calculation are shown in Table 2 below. On the waveform design canvas, each waveform component is moved according to its calculated x-axis and y-axis coordinates. The layout and routing effect after the movement is shown below. Figure 7 As shown, Figure 7 In the waveform component, the position of the dashed line in the middle represents the value of the y-axis position, h. 00 The height of the dashed box represents the height h of the canvas space occupied by the waveform component. It also indicates the vertical spacing GAP between waveform components and the highest position TOP_Y of the component.
[0055] Table 2
[0056] It should be understood that, although Figure 3 The steps are shown sequentially as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order in which these steps are executed; they can be performed in other orders. Figure 3At least some of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least some of the sub-steps or stages of other steps.
[0057] In one embodiment, such as Figure 8 As shown, an automatic layout device for a software-defined radio componentized waveform development system is also provided, including a hierarchical tree building module 101, a vertical sorting module 103, a coordinate calculation module 105, and a layout update module 107. The hierarchical tree building module 101 recursively traverses all waveform components on the waveform design canvas in the waveform development system along the output terminals of the waveform components, determining the level of each waveform component and establishing a component hierarchy tree. The vertical sorting module 103 determines the vertical position sorting of the waveform components layer by layer, starting from the first level of the component hierarchy tree; the vertical position sorting is determined based on the sorting position of the output terminal of the previous layer connected to the current waveform component. The coordinate calculation module 105 calculates the total height of the waveform component's level in the component hierarchy tree after vertical position sorting and the final coordinate position of the waveform component; wherein, starting from the leaf components of the component hierarchy tree, it traverses forward layer by layer, determining the total height of the component hierarchy and the coordinate position of the parent component on the waveform design canvas. The layout update module 107 is used to update the position of the waveform components in the waveform design canvas according to the final coordinate position of all waveform components calculated, and synchronously and automatically adjust the wiring between the waveform components to obtain the waveform flow graph after automatic layout.
[0058] The automatic layout device of the aforementioned software-defined radio componentized waveform development system determines the level of each waveform component and establishes a component hierarchy tree through recursive traversal. It then determines the vertical position and sorting of each waveform component's level, calculates the total height and final coordinate position of each level in the component hierarchy tree, and finally updates the position of the waveform components on the waveform design canvas while simultaneously and automatically adjusting the wiring between them. This results in a waveform flow graph after automatic layout. It allows for a one-time global adjustment of layout and wiring, enabling rapid adjustments to component layout and wiring from a global perspective. The uniform vertical and horizontal distances between components result in a neat and aesthetically pleasing layout on the waveform design canvas, significantly improving the readability and maintainability of the waveform flow graph. It also supports dynamic horizontal and vertical adjustments. Horizontal adjustments, based on global adjustments, allow waveform developers to quickly adjust horizontally, while vertical adjustments, based on global adjustments, allow for rapid vertical adjustments, enabling quick alignment of waveform components at the same level. Ultimately, this significantly improves the efficiency of waveform designers in designing and developing waveform systems.
[0059] In one embodiment, the component level of a waveform component that only generates data and has no data input is 1.
[0060] In one embodiment, the process of determining the level of each waveform component and building a component hierarchy tree by recursively traversing the data includes: Iterate through all waveform components, find all waveform components with input terminal 0 and store them in the hierarchy list array; Iterate through the waveform components in the hierarchy list array one by one, and recursively traverse each connected waveform component along the output terminal of the waveform component until the hierarchy calculation of all waveform components is completed; wherein, the current recursive call depth plus 1 is compared with the current level of the current other waveform component; if the current recursive call depth plus 1 is greater than the current level, then the latest level of the current other waveform component is set to the current recursive call depth plus 1; Add each waveform component to the list of child components of its parent component, and set the vertical sort field of the waveform components to be sorted.
[0061] In one embodiment, the calculation process for the y-axis coordinate in the final coordinate position of the waveform component includes: Set the leaf component layer as the current component layer and set the latest y-axis position to equal the highest position of the component; According to the sorting position, each waveform component is retrieved in sequence, the latest y-axis position of each waveform component is calculated, and the latest y-axis position of each waveform component and the total layer height of the current layer are updated respectively, until the y-axis position of all components in the current layer is calculated. After setting the height of the canvas space occupied by the parent component of the leaf component layer, update the parent component layer of the leaf component layer to the current layer and reset the total layer height to 0, then jump to the calculation process of the y-axis coordinate until the y-axis coordinates of all component layers have been calculated.
[0062] In one embodiment, the calculation process of the x-axis coordinate in the final coordinate position of the waveform component includes: After setting a fixed distance between component layers, the x-axis coordinate of the waveform component is automatically calculated based on the fixed width of the waveform component and the layer in which the waveform component is located.
[0063] It is understood that the explanations of the features in the various embodiments of the automatic layout device of the above-mentioned software radio componentized waveform development system can be understood by referring to the explanations of the corresponding features in the various embodiments of the automatic layout method of the above-mentioned software radio componentized waveform development system, and will not be repeated here.
[0064] Each module component in the automatic layout device of the aforementioned software-defined radio modular waveform development system can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in hardware or independently of a device with data processing capabilities, or stored in software within the memory of the aforementioned device, so that the processor can call and execute the operations corresponding to each module. The aforementioned device can be, but is not limited to, various waveform design and calculation devices already existing in the art.
[0065] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0066] The above embodiments merely illustrate several implementation methods of the present invention, and their descriptions are relatively specific and detailed, but they should not be construed as limiting the scope of protection of the invention. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of the present invention, and all such modifications and improvements fall within the scope of protection of the present invention.
Claims
1. An automatic placement method for a software-defined radio componentized waveform development system, characterized in that, Including the following steps: Using a recursive traversal approach, all waveform components on the waveform design canvas in the waveform development system are traversed sequentially along the output terminals of the waveform components to determine the level of each waveform component and establish a component hierarchy tree. Starting from the first level of the component hierarchy tree, the vertical position order of the waveform components at each level is determined layer by layer; the vertical position order is determined based on the order position of the output terminal of the previous level connected to the current waveform component. Calculate the total height of the waveform component's level and its final coordinate position in the component hierarchy tree after vertical position sorting; wherein, starting from the leaf components of the component hierarchy tree, traverse forward layer by layer to determine the total height of the component hierarchy and the coordinate position of the parent component in the waveform design canvas. Based on the calculated final coordinates of all waveform components, the positions of the waveform components in the waveform design canvas are updated, and the wiring between the waveform components is automatically adjusted synchronously to obtain the waveform flow graph after automatic layout; synchronous automatic adjustment includes horizontal adjustment and vertical adjustment.
2. The automatic placement method for the software-defined radio componentized waveform development system according to claim 1, characterized in that, A waveform component that only generates data and has no data input has a component level of 1.
3. The automatic placement method for the software-defined radio componentized waveform development system according to claim 1, characterized in that, The process of determining the level of each waveform component and building a component hierarchy tree using recursive traversal includes: Iterate through all waveform components, find all waveform components with input terminal 0 and store them in the hierarchy list array; Iterate through the waveform components in the hierarchy list array one by one, and recursively traverse each connected waveform component along the output terminal of the waveform component until the hierarchy calculation of all waveform components is completed; wherein, the current recursive call depth plus 1 is compared with the current level of the current other waveform component; if the current recursive call depth plus 1 is greater than the current level, then the latest level of the current other waveform component is set to the current recursive call depth plus 1; Add each waveform component to the list of child components of its parent component, and set the vertical sort field of the waveform components to be sorted.
4. The automatic placement method for a software-defined radio componentized waveform development system according to any one of claims 1 to 3, characterized in that, The calculation process for the y-axis coordinate in the final coordinate position of the waveform component includes: Set the leaf component layer as the current component layer and set the latest y-axis position to equal the highest position of the component; Based on the sorting position, each waveform component is retrieved in sequence, and the latest y-axis position of each waveform component is calculated. At the same time, the latest y-axis position of each waveform component and the total layer height of the current layer are updated until the y-axis position of all components in the current layer is calculated. After setting the height of the canvas space occupied by the parent component of the leaf component layer, update the parent component layer of the leaf component layer to the current layer and reset the total layer height to 0, then jump to the calculation process of the y-axis coordinate until the y-axis coordinates of all component layers have been calculated.
5. The automatic placement method for a software-defined radio componentized waveform development system according to any one of claims 1 to 3, characterized in that, The calculation process for the x-axis coordinate in the final coordinate position of the waveform component includes: After setting a fixed distance between component layers, the x-axis coordinate of the waveform component is automatically calculated based on the fixed width of the waveform component and the layer in which the waveform component is located.
6. An automatic placement device for a software-defined radio componentized waveform development system, characterized in that, include: The hierarchical tree building module is used to recursively traverse all waveform components on the waveform design canvas in the waveform development system along the output terminals of the waveform components, determine the level of each waveform component and build the component hierarchy tree. The vertical sorting module is used to determine the vertical position sorting of waveform components, starting from the first level of the component hierarchy tree and proceeding layer by layer. The vertical position sorting is determined based on the sorting position of the output terminal of the previous layer connected to the current waveform component. The coordinate calculation module is used to calculate the total height of the waveform component's level in the component hierarchy tree after vertical position sorting and the final coordinate position of the waveform component; it traverses forward sequentially from the leaf components of the component hierarchy tree, determining the total height of the component hierarchy layer by layer upwards, and the coordinate position of the parent component in the waveform design canvas. The layout update module is used to update the position of the waveform components in the waveform design canvas according to the final coordinate position of all waveform components calculated, and synchronously and automatically adjust the wiring between the waveform components to obtain the waveform flow graph after automatic layout.
7. The automatic placement device for the software-defined radio componentized waveform development system according to claim 6, characterized in that, A waveform component that only generates data and has no data input has a component level of 1.
8. The automatic placement device for the software-defined radio componentized waveform development system according to claim 6, characterized in that, The process of determining the level of each waveform component and building a component hierarchy tree using recursive traversal includes: Iterate through all waveform components, find all waveform components with input terminal 0 and store them in the hierarchy list array; Iterate through the waveform components in the hierarchy list array one by one, and recursively traverse each connected waveform component along the output terminal of the waveform component until the hierarchy calculation of all waveform components is completed; wherein, the current recursive call depth plus 1 is compared with the current level of the current other waveform component; if the current recursive call depth plus 1 is greater than the current level, then the latest level of the current other waveform component is set to the current recursive call depth plus 1; Add each waveform component to the list of child components of its parent component, and set the vertical sort field of the waveform components to be sorted.
9. The automatic placement apparatus for the software-defined radio modular waveform development system according to any one of claims 6 to 8, characterized in that, The calculation process for the y-axis coordinate in the final coordinate position of the waveform component includes: Set the leaf component layer as the current component layer and set the latest y-axis position to equal the highest position of the component; Based on the sorting position, each waveform component is retrieved in sequence, and the latest y-axis position of each waveform component is calculated. At the same time, the latest y-axis position of each waveform component and the total layer height of the current layer are updated until the y-axis position of all components in the current layer is calculated. After setting the height of the canvas space occupied by the parent component of the leaf component layer, update the parent component layer of the leaf component layer to the current layer and reset the total layer height to 0, then jump to the calculation process of the y-axis coordinate until the y-axis coordinates of all component layers have been calculated.
10. The automatic placement apparatus for a software-defined radio modular waveform development system according to any one of claims 6 to 8, characterized in that, The calculation process for the x-axis coordinate in the final coordinate position of the waveform component includes: After setting a fixed distance between component layers, the x-axis coordinate of the waveform component is automatically calculated based on the fixed width of the waveform component and the layer in which the waveform component is located.
Citation Information
Patent Citations
Reconfigurable equipment simulation system based on software radio
CN121502861A
Managed object member architecture for software defined radio
US20050246312A1
Method and apparatus for providing security to devices
US20130198838A1
System and method for searching tree based organizational hierarchies, including topic hierarchies, and generating and presenting search interfaces for same
US20240354318A1