Ground station software integration method based on QT
Through the QT-based ground station software integration method, unified development environment and interface design, the complex integration of software modules in the drone ground station software is solved, and rapid integration and efficient development are achieved.
Patent Information
- Application Number
- CN202311338567.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-16
- Publication Date
- 2025-04-18
AI Technical Summary
The existing technology is difficult to achieve unified software functional module integration in drone ground station software, resulting in high development complexity and low efficiency.
The QT-based ground station software integration method is adopted to achieve rapid integration of software modules through a unified development environment, dynamic library generation, functional interface and management interface design.
It simplifies the software development process of ground stations, reduces the workload of developers, and improves the efficiency and development efficiency of software module integration.
Smart Images

Figure CN119847479A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of software development for integrating and managing multiple functional modules in unmanned aerial vehicle ground station software, and in particular to a QT-based ground station software integration method. Background Art
[0002] The UAV system includes the UAV and the ground station system. The UAV interacts with the ground station system through a data transmission link. The onboard software on the UAV sends telemetry information to the ground station at a fixed period, including the attitude information of the UAV and the status information output by each device mounted on the UAV. The ground station software in the ground station system will parse the received telemetry information and feed it back to the UAV operator. After analyzing the telemetry data, the UAV operator controls the UAV by sending remote control commands. The ground station software will package the remote control commands and send them to the UAV through the data link in a fixed format and period. After receiving the remote control information, the onboard software on the UAV will parse and complete the remote control action. Ground station software often involves multiple disciplines, controls multiple mission equipment, and requires support from multiple disciplines. Therefore, the development model of ground station software usually encapsulates its own business into functional modules for each discipline, and integrates the functional modules of each discipline into the ground station software to complete software development. Therefore, a unified software functional module integration method needs to be adopted in the process of ground station software development. Summary of the invention
[0003] The present invention aims to solve at least one of the technical problems existing in the prior art.
[0004] The invention provides a QT-based ground station software integration method, which comprises: unifying the development environment of a ground station and software modules to be integrated, the development environment comprising a developed computer operating system version, a compiler version, a QT version and development tools; confirming the name, type, names of various interfaces and formats of data interaction of various interfaces of the software modules to be integrated; generating a dynamic library for the software modules to be integrated; designing a functional interface and a management interface of the dynamic library according to a unified software module dynamic library template; and the ground station software calling the functions of the integrated software modules according to the designed functional interfaces to realize functional integration of the integrated modules.
[0005] Furthermore, the name, type, names of various interfaces and formats of data interaction of various interfaces of the software modules to be integrated are confirmed according to the pre-designed development template of the integration module. The pre-designed development template of the integration module includes the naming format of the name, the format of data interaction, the interface of data interaction, the management interface of the integration module and the function calling interface of the integration module.
[0006] Furthermore, the dynamic library contains all dependent function library files except QT, and the dynamic library includes two versions: Debug and Release.
[0007] Furthermore, the functional interface covers a setting property interface, a getting property value interface, a calling function interface and a setting callback function interface.
[0008] Furthermore, the functional interface is designed according to a functional interface template of a pre-designed software integration module. The implementation form of the functional interface template is a C++ parent class header file. The functional functions contained therein are designed as virtual functions to be inherited and overridden in subclasses. The functional interface of the integrated software module, as a subclass, will inherit the functional interface template and implement the function call function designed in the functional interface.
[0009] Furthermore, the specific functional interface design steps are as follows:
[0010] ① Design and implement the function setProperty() for setting the properties of the integrated module. The function input parameters are the property name and the setting value to be reset. The function return value is a Boolean value. If the setting is successful, it returns true, and if it fails, it returns false.
[0011] ② Design and implement the function getProperty() to obtain the properties of the integrated module. The function input parameter is the name of the property whose value needs to be obtained. The function return value is QVarint, which will return the obtained property value;
[0012] ③ Design and implement the function callMethod() that calls the integrated module function. The function input parameters are the function name to be called and the parameters to be passed in;
[0013] ④ Design and implement the function setCallback() for the integrated module to output data to the ground station. The input parameters are the name of the signal sent by the integrated module, the object receiving the signal, the slot that processes the signal, and the type of connection between the signal and the slot.
[0014] Furthermore, the management interface includes an interface for obtaining a dynamic library ID, an interface for obtaining a dynamic library name, an interface for obtaining a dynamic library version number, an interface for initializing a dynamic library instance, and an interface for destroying a dynamic library instance.
[0015] Furthermore, the management interface is designed according to a pre-designed management interface template of the software integration module. The implementation form of the management interface template is a C++ parent class header file. The management functions contained therein are designed as virtual functions to be inherited and overridden in subclasses. The management interface of the integrated software module inherits the management interface template as a subclass to implement the management functions designed in the management interface.
[0016] Furthermore, the specific management interface design steps are as follows:
[0017] ① Design and implement the function getID() to obtain the ID of the integrated module. The function return value is a string UUID that has a unique identification function;
[0018] ② Design and implement the function getName() to obtain the name of the integrated module, and the function return value is a string;
[0019] ③ Design and implement the function getVersion() to obtain the version number of the integrated module. The function return value is a string;
[0020] ④ Design and implement the function createInstance() to create an integrated module instance. The function input parameter is a file path string, and the function return value is a pointer to the integrated module function library instance;
[0021] ⑤ Design and implement the destroyInstance() function to destroy the integrated module instance. The function input parameter is a pointer to the integrated module instance, and the function return value is a Boolean value.
[0022] Furthermore, the ground station software calls the integrated software module's functions according to the designed functional interface, specifically including:
[0023] (1) Pre-design the file path for storing the software modules to be integrated, and create and load the software module function library according to the designed file path;
[0024] (2) The ground station software verifies the information of the successfully loaded function library;
[0025] (3) If the proofreading fails, the function library is uninstalled and the calling process is terminated; if the proofreading succeeds, all the functional interfaces provided by the software integration module are obtained, and the ground station software calls all the functions of the integration module according to the obtained functional interfaces to realize the functional integration of the integration module.
[0026] By applying the technical solution of the present invention, a QT-based ground station software integration method is provided. The method is based on QT and manages and calls software modules through a unified interface, so that ground station software developers can quickly integrate software modules, thereby reducing the workload of ground station software developers. Compared with the prior art, the technical solution of the present invention can solve the technical problem that the prior art cannot achieve unified software function module integration. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] The included drawings are used to provide a further understanding of the embodiments of the present invention, which constitute a part of the specification, are used to illustrate the embodiments of the present invention, and together with the text description, explain the principles of the present invention. Obviously, the drawings in the following description are only some embodiments of the present invention, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0028] Figure 1 The figure shows the composition of the software module function library provided according to the specific embodiment of the present invention and the external interaction diagram with the ground station software;
[0029] Figure 2 A schematic diagram of a flow chart of the ground station software provided according to a specific embodiment of the present invention calling the functions of the integrated software modules according to the designed functional interface is shown. DETAILED DESCRIPTION
[0030] It should be noted that, in the absence of conflict, the embodiments in this application and the features in the embodiments can be combined with each other. The technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. The following description of at least one exemplary embodiment is actually only illustrative and is by no means intended to limit the present invention and its application or use. Based on the embodiments in the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0031] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit the exemplary embodiments according to the present application. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprise" and / or "include" are used in this specification, it indicates the presence of features, steps, operations, devices, components and / or combinations thereof.
[0032] Unless otherwise specifically stated, the relative arrangement, numerical expressions and numerical values of the parts and steps set forth in these embodiments do not limit the scope of the present invention. Meanwhile, it should be understood that, for ease of description, the sizes of the various parts shown in the accompanying drawings are not drawn according to the actual proportional relationship. The technology, method and equipment known to those of ordinary skill in the relevant art may not be discussed in detail, but in appropriate cases, the technology, method and equipment should be considered as a part of the specification. In all examples shown and discussed here, any specific value should be interpreted as being merely exemplary, rather than as a limitation. Therefore, other examples of exemplary embodiments may have different values. It should be noted that similar reference numerals and letters represent similar items in the following drawings, and therefore, once a certain item is defined in an accompanying drawing, it does not need to be further discussed in subsequent drawings.
[0033] like Figure 1 and Figure 2 As shown, according to a specific embodiment of the present invention, a QT-based ground station software integration method is provided, the method comprising: unifying the development environment of the ground station and the software modules to be integrated, the development environment comprising the developed computer operating system version, compiler version, QT version and development tools; confirming the name, type, names of various interfaces and formats of data interaction of various interfaces of the software modules to be integrated; generating a dynamic library for the software modules to be integrated; designing the functional interface and management interface of the dynamic library according to a unified software module dynamic library template; the ground station software calls the functions of the integrated software modules according to the designed functional interface to realize the functional integration of the integrated modules.
[0034] By applying this configuration method, a QT-based ground station software integration method is provided. This method is based on QT and manages and calls software modules through a unified interface, so that ground station software developers can quickly integrate software modules, reducing the workload of ground station software developers.
[0035] Furthermore, in the present invention, in order to realize the QT-based ground station software integration, the development environment of the ground station and the software modules to be integrated are first unified. In the present invention, the development environment required for software integration needs to be designed in advance, including the computer operating system version, compiler version, QT version and various development tools used.
[0036] As a specific embodiment of the present invention, based on development experience, version stability and universal applicability, win7 can be selected as the system development platform, vs2015_msvc as the compiler version, and Qt5.13.2 as the QT version.
[0037] Further, in the present invention, after unifying the development environment of the ground station and the software module to be integrated, the name, type, names of various interfaces and formats of data interaction of various interfaces of the software module to be integrated are confirmed. In the present invention, before integration, the name, type, names of various interfaces of the integrated module need to be confirmed with the developer of the integrated software module, and the formats of data interaction of various interfaces need to be specified.
[0038] As a specific embodiment of the present invention, a development template for an integrated module can be designed in advance and handed over to the developer for implementation, including the naming format, data interaction format, data interaction interface, integrated module management interface and integrated module function call interface.
[0039] In addition, the names and types of the confirmed software modules, the names of various interfaces and the formats of data interactions of various interfaces can be documented and saved as a basis for subsequent version updates and iterations.
[0040] Further, in the present invention, after confirming the name, type, name of each interface and format of data interaction of each interface of the software module to be integrated, the software module to be integrated is generated into a dynamic library. In the present invention, the software module is integrated by the ground station software in the form of a dynamic library.
[0041] As a specific embodiment of the present invention, the dynamic library includes two versions, Debug and Release. To facilitate distinction, a "_d" character may be added after the generated Debug version dynamic library, and a "_r" character may be added after the generated Release version dynamic library. The generated dynamic library must include all dependent function library files except QT.
[0042] In the present invention, the developed integrated module is packaged into a function library according to a designed module packaging method, and the function library needs to include the basic operating environment of the integrated module except QT.
[0043] Furthermore, in the present invention, after the software modules to be integrated are generated into a dynamic library, the functional interface and management interface of the dynamic library are designed according to a unified software module library template. In the present invention, the functional interface and management interface design must be strictly followed in accordance with the provided library template when developing the software integration module.
[0044] As a specific embodiment of the present invention, the functional interface includes setting attribute interface, obtaining attribute value interface, calling function interface and setting callback function interface. In the present invention, a functional interface template of a software integration module can be pre-designed and implemented. The implementation form of the functional interface template is designed as a C++ parent class header file, and the functional functions contained therein are designed as virtual functions to be inherited and overwritten in the subclass. The functional interface of the integrated software module, as a subclass, will inherit the functional interface template and implement the function call function designed in the functional interface.
[0045] In this embodiment, the specific functional interface design steps are as follows:
[0046] ① Design and implement the function setProperty() for setting the properties of the integrated module. The function input parameters are the property name and the setting value that need to be reset. The function return value is a Boolean value. It returns true if the setting is successful, and false if it fails.
[0047] ② Design and implement the getProperty() function to obtain the properties of the integrated module. The function input parameter is the name of the property whose value needs to be obtained. The function return value is QVarint, which will return the obtained property value.
[0048] ③ Design and implement the function callMethod() that calls the integrated module function. The function input parameters are the function name to be called and the parameters to be passed in. The implementation principle is that the integrated module function interface compares the input function name with the callable function name one by one. If the comparison is successful, the integrated module will immediately call the execution function.
[0049] ④ Design and implement the function setCallback() for the integrated module to output data to the ground station. The input parameters are the name of the signal sent by the integrated module, the object receiving the signal, the slot that processes the signal, and the type of signal and slot connection. The implementation principle is to use the QT signal and slot mechanism. If the integrated module has data that needs to be handed over to the ground station software for processing, a signal will be triggered, and the slot function designed in the ground station software will receive the signal and process it.
[0050] As a specific embodiment of the present invention, the management interface covers the interface for obtaining the dynamic library ID, the interface for obtaining the dynamic library name, the interface for obtaining the dynamic library version number, the interface for initializing the dynamic library instance, and the interface for destroying the dynamic library instance. In the present invention, a management interface template for a software integration module can be pre-designed and implemented, and the implementation form of the management interface template is designed as a C++ parent class header file, and the management functions contained therein are designed as virtual functions to be inherited and overwritten in the subclass. The management interface of the integrated software module inherits the management interface template as a subclass to implement the management functions designed in the management interface.
[0051] In this embodiment, the specific management interface design steps are as follows:
[0052] ① Design and implement the function getID() to obtain the ID of the integrated module. The function return value is a string UUID that has a unique identification function.
[0053] ② Design and implement the function getName() to obtain the name of the integrated module, and the function return value is a string.
[0054] ③ Design and implement the function getVersion() to obtain the version number of the integrated module. The function return value is a string.
[0055] ④ Design and implement the function createInstance() to create an integrated module instance. The function input parameter is a file path string, and the function return value is a pointer to the integrated module function library instance.
[0056] ⑤ Design and implement the destroyInstance() function to destroy the integrated module instance. The function input parameter is a pointer to the integrated module instance, and the function return value is a Boolean value.
[0057] The dynamic library implements basic functions according to the format of the functional interface. The basic functions of the dynamic library cover various functions required by the software module, such as receiving data function, processing data function, sending data function and resource management function.
[0058] Furthermore, in the present invention, after designing the functional interface and the management interface according to the unified library template, the ground station software calls the functions of the integrated software module according to the designed functional interface to achieve functional integration of the integrated module.
[0059] As a specific embodiment of the present invention, the ground station software calls the functions of the integrated software module according to the designed functional interface, specifically including:
[0060] (1) Pre-design the file path for storing the software modules to be integrated, and create and load the software module function library according to the designed file path;
[0061] (2) The ground station software verifies the information of the successfully loaded function library;
[0062] (3) If the proofreading fails, the function library is uninstalled and the calling process is terminated; if the proofreading succeeds, all the functional interfaces provided by the software integration module are obtained, and the ground station software calls all the functions of the integration module according to the obtained functional interfaces to realize the functional integration of the integration module.
[0063] In step (1), the integration method proposed by the present invention is based on QT, and the designed file path should not contain Chinese characters. If the designed path contains Chinese characters, the function library cannot be created according to the path. In this step, if the loading fails, the process ends.
[0064] In step (2), the ground station software calls the management interface of the software integration module and calibrates the software module according to the designed software module ID, name, version number and other information. The software module ID is a string that can identify a unique value using UUID, the software module name is a string with a fixed format, and the software module version number is a string used to identify the version.
[0065] In step (3), after the ground station software calls all functions of the integrated module according to the acquired functional interface, the program exits, the function library instance is uninstalled, and the calling process ends. In the present invention, after the ground station software exits, the integrated module automatically completes the uninstallation and releases the system resources and ends the process.
[0066] The present invention is based on the characteristics that ground station software needs to integrate various types of equipment software modules, focuses on realizing standardized integration of software modules, reducing the coupling requirements of software systems, simplifies the process of software module integration, and enables ground station software developers to quickly integrate software modules through unified interface management and calling software modules, thereby reducing the workload of ground station software developers. They only need to pay attention to the overall system architecture, and the software development ideas are clearer. The ground station software developed based on QT has good portability and can run on other system platforms after recompilation, which can effectively improve the efficiency of software development.
[0067] In summary, the present invention provides a QT-based ground station software integration method. The method is based on QT and manages and calls software modules through a unified interface, so that ground station software developers can quickly integrate software modules, thereby reducing the workload of ground station software developers.
[0068] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.
Claims
1. A QT-based ground station software integration method, characterized in that: The QT-based ground station software integration method includes: Unify the development environment of the ground station and the software modules that need to be integrated. The development environment includes the computer operating system version, compiler version, QT version and development tools; Confirm the name, type, names of various interfaces and data exchange formats of the software modules to be integrated; Generate dynamic libraries for software modules that need to be integrated; Design the functional interface and management interface of the dynamic library according to the unified software module dynamic library template; The ground station software calls the functions of the integrated software modules according to the designed functional interfaces to realize the functional integration of the integrated modules.
2. The QT-based ground station software integration method according to claim 1, characterized in that: According to the pre-designed integration module development template, the name, type, names of various interfaces and the format of data interaction of various interfaces of the software module to be integrated are confirmed. The pre-designed integration module development template includes the naming format, data interaction format, data interaction interface, management interface of the integration module and function call interface of the integration module.
3. The QT-based ground station software integration method according to claim 1, characterized in that: The dynamic library contains all dependent function library files except QT. The dynamic library includes two versions: Debug and Release.
4. The QT-based ground station software integration method according to claim 3, characterized in that: The functional interface includes setting attribute interface, obtaining attribute value interface, calling function interface and setting callback function interface.
5. The QT-based ground station software integration method according to claim 4, characterized in that: The functional interface is designed according to the functional interface template of the pre-designed software integration module. The implementation form of the functional interface template is a C++ parent class header file. The functional functions contained in it are designed as virtual functions to be inherited and overridden in the subclass. The functional interface of the integrated software module, as a subclass, will inherit the functional interface template and implement the function call function designed in the functional interface.
6. The QT-based ground station software integration method according to claim 5, characterized in that: The specific functional interface design steps are as follows: ① Design and implement the function setProperty() for setting the properties of the integrated module. The function input parameters are the property name and the setting value to be reset. The function return value is a Boolean value. If the setting is successful, it returns true, and if it fails, it returns false. ② Design and implement the function getProperty() to obtain the properties of the integrated module. The function input parameter is the name of the property whose value needs to be obtained. The function return value is QVarint, which will return the obtained property value; ③ Design and implement the function callMethod() that calls the integrated module function. The function input parameters are the function name to be called and the parameters to be passed in; ④ Design and implement the function setCallback() for the integrated module to output data to the ground station. The input parameters are the name of the signal sent by the integrated module, the object receiving the signal, the slot that processes the signal, and the type of connection between the signal and the slot.
7. The QT-based ground station software integration method according to claim 1, characterized in that: The management interface includes the interface for obtaining the dynamic library ID, the interface for obtaining the dynamic library name, the interface for obtaining the dynamic library version number, the interface for initializing the dynamic library instance, and the interface for destroying the dynamic library instance.
8. The QT-based ground station software integration method according to claim 7, characterized in that: The management interface is designed according to the pre-designed management interface template of the software integration module. The implementation form of the management interface template is a C++ parent class header file. The management functions contained in it are designed as virtual functions to be inherited and overridden in subclasses. The management interface of the integrated software module inherits the management interface template as a subclass to implement the management functions designed in the management interface.
9. The QT-based ground station software integration method according to claim 7, characterized in that: The specific management interface design steps are as follows: ① Design and implement the function getID() to obtain the ID of the integrated module. The function return value is a string UUID that has a unique identification function; ② Design and implement the function getName() to obtain the name of the integrated module, and the function return value is a string; ③ Design and implement the function getVersion() to obtain the version number of the integrated module. The function return value is a string; ④ Design and implement the function createInstance() to create an integrated module instance. The function input parameter is a file path string, and the function return value is a pointer to the integrated module function library instance; ⑤ Design and implement the destroyInstance() function to destroy the integrated module instance. The function input parameter is a pointer to the integrated module instance, and the function return value is a Boolean value.
10. The QT-based ground station software integration method according to claim 1, characterized in that: The ground station software calls the integrated software modules according to the designed functional interface, including: (1) Pre-design the file path for storing the software modules to be integrated, and create and load the software module function library according to the designed file path; (2) The ground station software verifies the information of the successfully loaded function library; (3) If the proofreading fails, the function library is uninstalled and the calling process is terminated; if the proofreading succeeds, all the functional interfaces provided by the software integration module are obtained, and the ground station software calls all the functions of the integration module according to the obtained functional interfaces to realize the functional integration of the integration module.