奥特QT DDS 插件库
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

75 Zeilen
2.2KB

  1. import QtQuick
  2. import QtQuick.Controls
  3. import QtQuick.Layouts
  4. Window {
  5. width: 640
  6. height: 480
  7. visible: true
  8. title: qsTr("AuseftDDSPlugTest")
  9. property var currentPlugin: null
  10. ColumnLayout {
  11. anchors.centerIn: parent
  12. spacing: 20
  13. // Sample Machine Plugin
  14. Button {
  15. text: "Load Sample Machine Plugin"
  16. onClicked: {
  17. currentPlugin = pluginLoader.loadPlugin("/home/suzj/AuseftDDSPlugins/build/bin/AQTSampleMachinePlug.so")
  18. if (currentPlugin) {
  19. if (currentPlugin.init()) {
  20. statusText.text = "Sample Machine Plugin loaded"
  21. } else {
  22. statusText.text = "Failed to initialize Sample Machine Plugin"
  23. }
  24. }
  25. }
  26. }
  27. // Package Machine Plugin
  28. Button {
  29. text: "Load Package Machine Plugin"
  30. onClicked: {
  31. currentPlugin = pluginLoader.loadPlugin("/home/suzj/AuseftDDSPlugins/build/bin/AQTPackageMachinePlug.so")
  32. if (currentPlugin) {
  33. if (currentPlugin.init()) {
  34. statusText.text = "Package Machine Plugin loaded"
  35. } else {
  36. statusText.text = "Failed to initialize Package Machine Plugin"
  37. }
  38. }
  39. }
  40. }
  41. // Send Data Button
  42. Button {
  43. text: "Send Data"
  44. onClicked: {
  45. if (currentPlugin) {
  46. currentPlugin.publishOnce() // 调用当前插件的 publishOnce 方法
  47. } else {
  48. statusText.text = "No plugin loaded"
  49. }
  50. }
  51. }
  52. // 显示状态信息
  53. Text {
  54. id: statusText
  55. text: "Ready"
  56. color: "black"
  57. }
  58. }
  59. // 处理插件加载错误
  60. Connections {
  61. target: pluginLoader
  62. function onMessagePublished(message, index) {
  63. statusText.text = "Message #" + index + ": " + message
  64. }
  65. }
  66. }