Browse Source

Merge branch 'master' of http://jiecheng2024.tpddns.cn:3000/liyuezong/SmartPDCode

guohui 1 year ago
parent
commit
86cfb9968b
38 changed files with 6382 additions and 3611 deletions
  1. BIN
      Qt/Qt_Test/Qt_Test
  2. 1 0
      Qt/Qt_Test/widget.cpp
  3. BIN
      Qt/Qt_Test_242/Qt_Test
  4. 1 1
      Qt/Qt_Test_242/Qt_Test.pro.user
  5. 619 0
      Qt/Qt_Test_242/Qt_Test.pro.user.121e105.22
  6. 362 0
      Qt/Qt_Test_242/Qt_Test.pro.user.3bdf3ea.4.8-pre1
  7. 7 0
      Qt/Qt_Test_242/buttonclickthread.cpp
  8. BIN
      Qt/Qt_Test_242/buttonclickthread.o
  9. 9 0
      Qt/Qt_Test_242/dataupdatethread.cpp
  10. BIN
      Qt/Qt_Test_242/dataupdatethread.o
  11. 13 3
      Qt/Qt_Test_242/main.cpp
  12. BIN
      Qt/Qt_Test_242/main.o
  13. BIN
      Qt/Qt_Test_242/moc_buttonclickthread.o
  14. BIN
      Qt/Qt_Test_242/moc_dataupdatethread.o
  15. BIN
      Qt/Qt_Test_242/moc_pdu_ctrl.o
  16. BIN
      Qt/Qt_Test_242/moc_udphelper.o
  17. BIN
      Qt/Qt_Test_242/moc_volviewform.o
  18. BIN
      Qt/Qt_Test_242/moc_widget.o
  19. 4 0
      Qt/Qt_Test_242/pdu_ctrl.cpp
  20. 1 0
      Qt/Qt_Test_242/pdu_ctrl.h
  21. BIN
      Qt/Qt_Test_242/pdu_ctrl.o
  22. BIN
      Qt/Qt_Test_242/udphelper.o
  23. 409 237
      Qt/Qt_Test_242/ui_widget.h
  24. BIN
      Qt/Qt_Test_242/volviewform.o
  25. 29 5
      Qt/Qt_Test_242/widget.cpp
  26. 1 0
      Qt/Qt_Test_242/widget.h
  27. BIN
      Qt/Qt_Test_242/widget.o
  28. 854 438
      Qt/Qt_Test_242/widget.ui
  29. 13 9
      control/PDU-Triphasic_IO/App/Hlw8110/Hlw8110.c
  30. 12 20
      control/PDU-Triphasic_IO/App/IO/key_io.c
  31. 3 5
      control/PDU-Triphasic_IO/App/IO/key_io.h
  32. 522 267
      control/PDU-Triphasic_IO/App/Main/Main.c
  33. 11 11
      control/PDU-Triphasic_IO/App/ReadEeprom/ReadEeprom.c
  34. 13 13
      control/PDU-Triphasic_IO/HW/Timer/Timer.c
  35. 3151 2476
      control/PDU-Triphasic_IO/Project/JLinkLog.txt
  36. 281 119
      control/PDU-Triphasic_IO/Project/triphasic_3.uvguix.Gowon
  37. 63 4
      control/PDU-Triphasic_IO/Project/triphasic_3.uvoptx
  38. 3 3
      control/PDU-Triphasic_IO/Project/triphasic_3.uvprojx

BIN
Qt/Qt_Test/Qt_Test


+ 1 - 0
Qt/Qt_Test/widget.cpp

@@ -39,6 +39,7 @@ Widget::Widget(QWidget *parent) :
     ui->label_modbus_type->hide();
     ui->label_modbus_Addr->hide();
 #endif
+    ui->stackedWidget_Main->setCurrentIndex(0);
 }
 
 Widget::~Widget()

BIN
Qt/Qt_Test_242/Qt_Test


+ 1 - 1
Qt/Qt_Test_242/Qt_Test.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.5.2, 2024-11-09T13:31:03. -->
+<!-- Written by QtCreator 4.5.2, 2024-12-09T09:11:55. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>

+ 619 - 0
Qt/Qt_Test_242/Qt_Test.pro.user.121e105.22

@@ -0,0 +1,619 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by QtCreator 4.12.2, 2024-06-18T15:26:25. -->
+<qtcreator>
+ <data>
+  <variable>EnvironmentId</variable>
+  <value type="QByteArray">{121e1058-5f3e-4863-93b5-ed9ce6b2f524}</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.ActiveTarget</variable>
+  <value type="int">0</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.EditorSettings</variable>
+  <valuemap type="QVariantMap">
+   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+    <value type="QString" key="language">Cpp</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
+    </valuemap>
+   </valuemap>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+    <value type="QString" key="language">QmlJS</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
+    </valuemap>
+   </valuemap>
+   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+   <value type="int" key="EditorConfiguration.IndentSize">4</value>
+   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
+   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
+   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
+   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
+   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+   <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
+   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+   <value type="int" key="EditorConfiguration.TabSize">8</value>
+   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
+   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
+   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.PluginSettings</variable>
+  <valuemap type="QVariantMap">
+   <valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
+   <value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
+   <value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.Questionable</value>
+   <valuemap type="QVariantMap" key="ClangTools">
+    <value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
+    <value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
+    <value type="int" key="ClangTools.ParallelJobs">8</value>
+    <valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
+    <valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
+    <valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
+    <value type="bool" key="ClangTools.UseGlobalSettings">true</value>
+   </valuemap>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Target.0</variable>
+  <valuemap type="QVariantMap">
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">TINA_QT5.12.9</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">TINA_QT5.12.9</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{03cd55e0-a7b6-46da-a668-17354f3bdbdf}</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">0</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/Qt_Test/Output</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/Qt_Test/Output</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+    <value type="int" key="QtQuickCompiler">2</value>
+    <value type="int" key="SeparateDebugInfo">2</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">2</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/build-Qt_Test-TINA_QT5_12_9-Release</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/build-Qt_Test-TINA_QT5_12_9-Release</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="int" key="QtQuickCompiler">0</value>
+    <value type="int" key="SeparateDebugInfo">2</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">0</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/build-Qt_Test-TINA_QT5_12_9-Profile</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/build-Qt_Test-TINA_QT5_12_9-Profile</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="int" key="QtQuickCompiler">0</value>
+    <value type="int" key="SeparateDebugInfo">0</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.CheckForFreeDiskSpaceStep</value>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
+      <value type="QString" key="RemoteLinux.CheckForFreeDiskSpaceStep.PathToCheck">/</value>
+      <value type="qlonglong" key="RemoteLinux.CheckForFreeDiskSpaceStep.RequiredSpace">5242880</value>
+      <valuelist type="QVariantList" key="RemoteLinux.LastDeployedLocalTimes"/>
+      <valuelist type="QVariantList" key="RemoteLinux.LastDeployedRemoteTimes"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.KillAppStep</value>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
+      <valuelist type="QVariantList" key="RemoteLinux.LastDeployedLocalTimes"/>
+      <valuelist type="QVariantList" key="RemoteLinux.LastDeployedRemoteTimes"/>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
+    <value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">DeployToGenericLinux</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+    <value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
+    <valuelist type="QVariantList" key="Analyzer.Perf.Events">
+     <value type="QString">cpu-cycles</value>
+    </valuelist>
+    <valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
+    <value type="int" key="Analyzer.Perf.Frequency">250</value>
+    <valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
+     <value type="QString">-e</value>
+     <value type="QString">cpu-cycles</value>
+     <value type="QString">--call-graph</value>
+     <value type="QString">dwarf,4096</value>
+     <value type="QString">-F</value>
+     <value type="QString">250</value>
+    </valuelist>
+    <value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
+    <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
+    <value type="int" key="Analyzer.Perf.StackSize">4096</value>
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="int" key="PE.EnvironmentAspect.Base">1</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt_Test</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinuxRunConfiguration:/home/liyi/Desktop/qt/Qt_Test/Qt_Test.pro</value>
+    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/liyi/Desktop/qt/Qt_Test/Qt_Test.pro</value>
+    <value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
+    <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
+    <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
+    <value type="QString" key="RunConfiguration.Arguments"></value>
+    <value type="bool" key="RunConfiguration.Arguments.multi">false</value>
+    <value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseX11Forwarding">false</value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory"></value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
+    <value type="QString" key="RunConfiguration.X11Forwarding">:0</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Target.1</variable>
+  <valuemap type="QVariantMap">
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.9 GCC 64bit</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.9 GCC 64bit</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5129.gcc_64_kit</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">0</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+    <value type="int" key="QtQuickCompiler">2</value>
+    <value type="int" key="SeparateDebugInfo">2</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">2</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Release</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Release</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="int" key="QtQuickCompiler">0</value>
+    <value type="int" key="SeparateDebugInfo">2</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
+    <value type="bool">true</value>
+    <value type="int" key="EnableQmlDebugging">0</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Profile</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Profile</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="int" key="QtQuickCompiler">0</value>
+    <value type="int" key="SeparateDebugInfo">0</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
+    <value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+    <value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
+    <valuelist type="QVariantList" key="Analyzer.Perf.Events">
+     <value type="QString">cpu-cycles</value>
+    </valuelist>
+    <valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
+    <value type="int" key="Analyzer.Perf.Frequency">250</value>
+    <valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
+     <value type="QString">-e</value>
+     <value type="QString">cpu-cycles</value>
+     <value type="QString">--call-graph</value>
+     <value type="QString">dwarf,4096</value>
+     <value type="QString">-F</value>
+     <value type="QString">250</value>
+    </valuelist>
+    <value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
+    <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
+    <value type="int" key="Analyzer.Perf.StackSize">4096</value>
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/liyi/Desktop/qt/Qt_Test/Qt_Test.pro</value>
+    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/liyi/Desktop/qt/Qt_Test/Qt_Test.pro</value>
+    <value type="QString" key="RunConfiguration.Arguments"></value>
+    <value type="bool" key="RunConfiguration.Arguments.multi">false</value>
+    <value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory"></value>
+    <value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/liyi/Desktop/qt/build-Qt_Test-Desktop_Qt_5_12_9_GCC_64bit-Debug</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.TargetCount</variable>
+  <value type="int">2</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+  <value type="int">22</value>
+ </data>
+ <data>
+  <variable>Version</variable>
+  <value type="int">22</value>
+ </data>
+</qtcreator>

+ 362 - 0
Qt/Qt_Test_242/Qt_Test.pro.user.3bdf3ea.4.8-pre1

@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by QtCreator 4.5.2, 2024-05-23T20:17:01. -->
+<qtcreator>
+ <data>
+  <variable>EnvironmentId</variable>
+  <value type="QByteArray">{3bdf3ea4-d0d2-4897-8224-daaa02f7bea3}</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.ActiveTarget</variable>
+  <value type="int">0</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.EditorSettings</variable>
+  <valuemap type="QVariantMap">
+   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+    <value type="QString" key="language">Cpp</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
+    </valuemap>
+   </valuemap>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+    <value type="QString" key="language">QmlJS</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
+    </valuemap>
+   </valuemap>
+   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+   <value type="int" key="EditorConfiguration.IndentSize">4</value>
+   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
+   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
+   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
+   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
+   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+   <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
+   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+   <value type="int" key="EditorConfiguration.TabSize">8</value>
+   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
+   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
+   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.PluginSettings</variable>
+  <valuemap type="QVariantMap"/>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Target.0</variable>
+  <valuemap type="QVariantMap">
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">T113</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">T113</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{53055201-e8b9-4b93-a88f-c8dd2f1ab176}</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/tronlong/build-Qt_Test-T113-Debug</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/tronlong/Desktop/qt/Qt_Test</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/tronlong/build-Qt_Test-T113-Profile</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+       <value type="QString">-w</value>
+       <value type="QString">-r</value>
+      </valuelist>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Check for free disk space</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.CheckForFreeDiskSpaceStep</value>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedTimes"/>
+      <value type="QString" key="RemoteLinux.CheckForFreeDiskSpaceStep.PathToCheck">/</value>
+      <value type="qulonglong" key="RemoteLinux.CheckForFreeDiskSpaceStep.RequiredSpace">5242880</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files via SFTP</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.DirectUploadStep</value>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
+      <valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedTimes"/>
+      <value type="bool" key="RemoteLinux.GenericDirectUploadStep.IgnoreMissingFiles">false</value>
+      <value type="bool" key="RemoteLinux.GenericDirectUploadStep.Incremental">true</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Remote Linux Host</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">DeployToGenericLinux</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="int" key="PE.EnvironmentAspect.Base">1</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt_Test (on Remote Device)</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinuxRunConfiguration:Qt_Test</value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.TargetName">Qt_Test</value>
+    <value type="int" key="RemoteLinux.EnvironmentAspect.Version">1</value>
+    <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
+    <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
+    <value type="QString" key="RemoteLinux.RunConfig.WorkingDirectory"></value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.TargetCount</variable>
+  <value type="int">1</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+  <value type="int">18</value>
+ </data>
+ <data>
+  <variable>Version</variable>
+  <value type="int">18</value>
+ </data>
+</qtcreator>

+ 7 - 0
Qt/Qt_Test_242/buttonclickthread.cpp

@@ -195,10 +195,17 @@ void ButtonClickThread::SaveSataus(int nX, int nY)
     int nAngle=0;
     m_nX=nX;
     m_nY=nY;
+#ifdef JY242
+    if(m_nX&&m_nY)nAngle=180;
+    if(m_nX&&!m_nY)nAngle=0;
+    if(!m_nX&&m_nY)nAngle=0;
+    if(!m_nX&&!m_nY)nAngle=180;
+#else
     if(m_nX&&m_nY)nAngle=90;
     if(m_nX&&!m_nY)nAngle=0;
     if(!m_nX&&m_nY)nAngle=270;
     if(!m_nX&&!m_nY)nAngle=180;
+#endif
     if(m_nSaveAngle!=nAngle)
     {
         QTime pNew=QTime::currentTime();

BIN
Qt/Qt_Test_242/buttonclickthread.o


+ 9 - 0
Qt/Qt_Test_242/dataupdatethread.cpp

@@ -263,10 +263,19 @@ void DataUpdateThread::ReadShmData()
         strS = QString::number(m_shmData->fS,'f',2);
         if(m_shmData->nStatus==0)
         {
+#ifdef Language_Zh
+            strStatus="关";
+#elif
             strStatus="OFF";
+#endif
         }else
         {
+#ifdef Language_Zh
+            strStatus="开";
+#elif
             strStatus="ON";
+#endif
+
         }
         strT = QString::number(m_shmData->fT,'f',2);
         strH = QString::number(m_shmData->fH,'f',2);

BIN
Qt/Qt_Test_242/dataupdatethread.o


+ 13 - 3
Qt/Qt_Test_242/main.cpp

@@ -16,16 +16,25 @@ int main(int argc, char *argv[])
     QGraphicsScene *scene   = new QGraphicsScene;
     QGraphicsView *gview    = new QGraphicsView(scene);
     QGraphicsProxyWidget *g_proxy_widget;
-    qDebug()<<"x:"<<w.size().width()<<"y:"<<w.size().height();
+    qDebug()<<"Widget-x:"<<w.size().width()<<"y:"<<w.size().height();
+    qDebug()<<"get Screen Start";
     QScreen *desktop        = QApplication::primaryScreen();
     QRect screen_info       = desktop->geometry();
+    qDebug()<<"get Screen End";
     // Rotation 90 degree
     g_proxy_widget = scene->addWidget((QWidget*)&w);
     g_proxy_widget->setRotation(0);
     // Set window size
+    qDebug()<<"Reset Widget";
+
     w.resize(screen_info.width(), screen_info.height());
     qDebug()<<"Rect:x="<<screen_info.width()<<"y="<<screen_info.height();
-
+/*
+    QRect screen_info(0,0,128,64);
+    w.resize(screen_info.width(), screen_info.height());
+*/
+    qDebug()<<"get Screen End";
+    qDebug()<<"Rect:x="<<screen_info.width()<<"y="<<screen_info.height();
     pdu_Ctrl::instance()->InitData(&w,g_proxy_widget,gview,screen_info.width(), screen_info.height());
     gview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     gview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -34,7 +43,7 @@ int main(int argc, char *argv[])
 
     qDebug()<<"x:"<<w.size().width()<<"y:"<<w.size().height();
 
-    qDebug()<<"Thread start";
+    qDebug()<<"Modbus Thread start";
     QString appDirPath = QCoreApplication::applicationDirPath();
     pdu_Ctrl::instance()->strSqliteAddress=appDirPath+"/pdu_dat.db";
     pdu_Ctrl::instance()->ReadModbusInit();
@@ -47,6 +56,7 @@ int main(int argc, char *argv[])
     thread_Update.initShm();
     thread_Update.start();
     //GPIO更新线程
+    qDebug()<<"GPIO Thread start";
     ButtonClickThread thread_Button(nullptr);
     thread_Button.InitConnect();
     thread_Button.start();

BIN
Qt/Qt_Test_242/main.o


BIN
Qt/Qt_Test_242/moc_buttonclickthread.o


BIN
Qt/Qt_Test_242/moc_dataupdatethread.o


BIN
Qt/Qt_Test_242/moc_pdu_ctrl.o


BIN
Qt/Qt_Test_242/moc_udphelper.o


BIN
Qt/Qt_Test_242/moc_volviewform.o


BIN
Qt/Qt_Test_242/moc_widget.o


+ 4 - 0
Qt/Qt_Test_242/pdu_ctrl.cpp

@@ -219,7 +219,11 @@ void pdu_Ctrl::Main_FunBtnSet(BtnDownType nbtnType)
                 break;
             default://其他界面
                 //在显示主界面时是旋转窗口
+#ifdef JY242
+                m_nAngle+=180;
+#else
                 m_nAngle+=90;
+#endif
                 m_nAngle==360?m_nAngle=0:m_nAngle;
                 qDebug()<<"nAngle:"<<m_nAngle;
                 slot_setAngel(m_nAngle);

+ 1 - 0
Qt/Qt_Test_242/pdu_ctrl.h

@@ -7,6 +7,7 @@
 #include <QGraphicsView>
 #include "widget.h"
 #define hightSmartPDU
+#define Language_Zh
 //#define RS485Type
 //#define RS485IpType
 enum WidgetType

BIN
Qt/Qt_Test_242/pdu_ctrl.o


BIN
Qt/Qt_Test_242/udphelper.o


+ 409 - 237
Qt/Qt_Test_242/ui_widget.h

@@ -13,7 +13,9 @@
 #include <QtWidgets/QApplication>
 #include <QtWidgets/QFrame>
 #include <QtWidgets/QGridLayout>
+#include <QtWidgets/QHBoxLayout>
 #include <QtWidgets/QLabel>
+#include <QtWidgets/QSpacerItem>
 #include <QtWidgets/QStackedWidget>
 #include <QtWidgets/QVBoxLayout>
 #include <QtWidgets/QWidget>
@@ -33,38 +35,47 @@ public:
     QWidget *page_4;
     QGridLayout *gridLayout_8;
     QLabel *label;
-    QLabel *label_modbus_type;
+    QLabel *label_2;
     QLabel *label_3;
-    QLabel *label_5;
     QLabel *label_4;
-    QLabel *label_2;
     QLabel *label_modbus_Addr;
+    QLabel *label_modbus_type;
+    QLabel *label_5;
+    QLabel *label_17;
     QWidget *page_5;
-    QGridLayout *gridLayout_3;
-    QLabel *label_16;
-    QLabel *label_12;
-    QLabel *label_8;
-    QLabel *label_10;
+    QVBoxLayout *verticalLayout_8;
+    QLabel *label_6;
+    QHBoxLayout *horizontalLayout_4;
     QLabel *label_7;
-    QLabel *label_15;
-    QLabel *label_11;
+    QLabel *label_8;
     QLabel *label_9;
     QLabel *label_13;
+    QHBoxLayout *horizontalLayout_5;
+    QLabel *label_10;
+    QLabel *label_16;
+    QSpacerItem *horizontalSpacer;
+    QHBoxLayout *horizontalLayout_6;
+    QLabel *label_12;
     QLabel *label_14;
-    QLabel *label_6;
+    QLabel *label_11;
+    QLabel *label_15;
     QWidget *page;
-    QGridLayout *gridLayout_4;
-    QLabel *label_39;
-    QLabel *label_S;
-    QLabel *label_A;
-    QLabel *label_37;
-    QLabel *label_W;
+    QVBoxLayout *verticalLayout_6;
+    QLabel *label_chName;
+    QHBoxLayout *horizontalLayout;
     QLabel *label_34;
     QLabel *label_V;
     QLabel *label_36;
+    QLabel *label_A;
+    QHBoxLayout *horizontalLayout_2;
+    QLabel *label_37;
+    QLabel *label_W;
+    QSpacerItem *horizontalSpacer_2;
+    QHBoxLayout *horizontalLayout_3;
+    QLabel *label_39;
+    QLabel *label_S;
     QLabel *label_38;
     QLabel *label_F;
-    QLabel *label_chName;
     QWidget *page_7;
     QGridLayout *gridLayout_6;
     QLabel *label_chName_4;
@@ -73,18 +84,23 @@ public:
     QLabel *label_44;
     QLabel *label_Humidity;
     QWidget *page_8;
-    QGridLayout *gridLayout_7;
-    QLabel *label_24;
-    QLabel *label_phW;
+    QVBoxLayout *verticalLayout_9;
+    QLabel *label_18;
+    QHBoxLayout *horizontalLayout_7;
     QLabel *label_22;
     QLabel *label_phV;
-    QLabel *label_21;
-    QLabel *label_phKw;
     QLabel *label_23;
     QLabel *label_phA;
+    QHBoxLayout *horizontalLayout_9;
+    QLabel *label_21;
+    QLabel *label_phKw;
+    QSpacerItem *horizontalSpacer_3;
+    QHBoxLayout *horizontalLayout_8;
+    QLabel *label_24;
+    QLabel *label_phW;
     QLabel *label_20;
     QLabel *label_phF;
-    QLabel *label_18;
+    QSpacerItem *verticalSpacer;
     QWidget *page_Setting;
     QVBoxLayout *verticalLayout_5;
     QFrame *frame_2;
@@ -113,12 +129,13 @@ public:
     {
         if (Widget->objectName().isEmpty())
             Widget->setObjectName(QString::fromUtf8("Widget"));
-        Widget->resize(128, 64);
+        Widget->resize(124, 102);
         QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
         sizePolicy.setHorizontalStretch(0);
         sizePolicy.setVerticalStretch(0);
         sizePolicy.setHeightForWidth(Widget->sizePolicy().hasHeightForWidth());
         Widget->setSizePolicy(sizePolicy);
+        Widget->setMaximumSize(QSize(128, 102));
         Widget->setStyleSheet(QString::fromUtf8("QFrame\n"
 "{\n"
 "	background-color: rgb(0, 0, 0);\n"
@@ -135,7 +152,10 @@ public:
         stackedWidget = new QStackedWidget(Widget);
         stackedWidget->setObjectName(QString::fromUtf8("stackedWidget"));
         QFont font;
-        font.setPointSize(5);
+        font.setFamily(QString::fromUtf8("ori1Uni"));
+        font.setPointSize(1);
+        font.setKerning(false);
+        font.setStyleStrategy(QFont::NoAntialias);
         stackedWidget->setFont(font);
         page_main = new QWidget();
         page_main->setObjectName(QString::fromUtf8("page_main"));
@@ -150,7 +170,7 @@ public:
         frame->setFrameShape(QFrame::StyledPanel);
         frame->setFrameShadow(QFrame::Raised);
         verticalLayout_4 = new QVBoxLayout(frame);
-        verticalLayout_4->setSpacing(6);
+        verticalLayout_4->setSpacing(0);
         verticalLayout_4->setContentsMargins(11, 11, 11, 11);
         verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4"));
         verticalLayout_4->setContentsMargins(0, 0, 0, 0);
@@ -167,205 +187,310 @@ public:
         label = new QLabel(page_4);
         label->setObjectName(QString::fromUtf8("label"));
         QFont font1;
+        font1.setFamily(QString::fromUtf8("ori1Uni"));
         font1.setPointSize(7);
+        font1.setKerning(false);
+        font1.setStyleStrategy(QFont::NoAntialias);
         label->setFont(font1);
-        label->setAlignment(Qt::AlignCenter);
+        label->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
 
         gridLayout_8->addWidget(label, 0, 0, 1, 2);
 
-        label_modbus_type = new QLabel(page_4);
-        label_modbus_type->setObjectName(QString::fromUtf8("label_modbus_type"));
-        label_modbus_type->setFont(font);
-        label_modbus_type->setWordWrap(true);
+        label_2 = new QLabel(page_4);
+        label_2->setObjectName(QString::fromUtf8("label_2"));
+        QFont font2;
+        font2.setFamily(QString::fromUtf8("ori1Uni"));
+        font2.setPointSize(6);
+        font2.setKerning(false);
+        font2.setStyleStrategy(QFont::NoAntialias);
+        label_2->setFont(font2);
+        label_2->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+        label_2->setWordWrap(false);
 
-        gridLayout_8->addWidget(label_modbus_type, 6, 0, 1, 1);
+        gridLayout_8->addWidget(label_2, 1, 0, 1, 2);
 
         label_3 = new QLabel(page_4);
         label_3->setObjectName(QString::fromUtf8("label_3"));
-        label_3->setFont(font);
+        label_3->setFont(font1);
+        label_3->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
         label_3->setWordWrap(true);
 
-        gridLayout_8->addWidget(label_3, 4, 0, 1, 2);
-
-        label_5 = new QLabel(page_4);
-        label_5->setObjectName(QString::fromUtf8("label_5"));
-        label_5->setFont(font);
-
-        gridLayout_8->addWidget(label_5, 2, 1, 1, 1);
+        gridLayout_8->addWidget(label_3, 6, 0, 1, 2);
 
         label_4 = new QLabel(page_4);
         label_4->setObjectName(QString::fromUtf8("label_4"));
-        label_4->setFont(font);
+        QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);
+        sizePolicy1.setHorizontalStretch(0);
+        sizePolicy1.setVerticalStretch(0);
+        sizePolicy1.setHeightForWidth(label_4->sizePolicy().hasHeightForWidth());
+        label_4->setSizePolicy(sizePolicy1);
+        label_4->setFont(font1);
+        label_4->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_8->addWidget(label_4, 2, 0, 1, 1);
-
-        label_2 = new QLabel(page_4);
-        label_2->setObjectName(QString::fromUtf8("label_2"));
-        label_2->setFont(font);
-
-        gridLayout_8->addWidget(label_2, 1, 0, 1, 2);
+        gridLayout_8->addWidget(label_4, 2, 0, 1, 2);
 
         label_modbus_Addr = new QLabel(page_4);
         label_modbus_Addr->setObjectName(QString::fromUtf8("label_modbus_Addr"));
         label_modbus_Addr->setFont(font);
+        label_modbus_Addr->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
         label_modbus_Addr->setWordWrap(true);
 
-        gridLayout_8->addWidget(label_modbus_Addr, 6, 1, 1, 1);
+        gridLayout_8->addWidget(label_modbus_Addr, 7, 1, 1, 1);
+
+        label_modbus_type = new QLabel(page_4);
+        label_modbus_type->setObjectName(QString::fromUtf8("label_modbus_type"));
+        label_modbus_type->setFont(font);
+        label_modbus_type->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+        label_modbus_type->setWordWrap(true);
+
+        gridLayout_8->addWidget(label_modbus_type, 7, 0, 1, 1);
+
+        label_5 = new QLabel(page_4);
+        label_5->setObjectName(QString::fromUtf8("label_5"));
+        sizePolicy1.setHeightForWidth(label_5->sizePolicy().hasHeightForWidth());
+        label_5->setSizePolicy(sizePolicy1);
+        label_5->setFont(font1);
+        label_5->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        gridLayout_8->addWidget(label_5, 3, 1, 1, 1);
+
+        label_17 = new QLabel(page_4);
+        label_17->setObjectName(QString::fromUtf8("label_17"));
+        label_17->setFont(font1);
+
+        gridLayout_8->addWidget(label_17, 3, 0, 1, 1);
 
+        gridLayout_8->setColumnStretch(1, 1);
         stackedWidget_Main->addWidget(page_4);
         page_5 = new QWidget();
         page_5->setObjectName(QString::fromUtf8("page_5"));
+        QFont font3;
+        font3.setPointSize(10);
+        page_5->setFont(font3);
         page_5->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 0, 0);"));
-        gridLayout_3 = new QGridLayout(page_5);
-        gridLayout_3->setSpacing(0);
-        gridLayout_3->setContentsMargins(11, 11, 11, 11);
-        gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
-        gridLayout_3->setContentsMargins(0, 0, 0, 0);
-        label_16 = new QLabel(page_5);
-        label_16->setObjectName(QString::fromUtf8("label_16"));
-        label_16->setFont(font);
-
-        gridLayout_3->addWidget(label_16, 3, 1, 1, 1);
-
-        label_12 = new QLabel(page_5);
-        label_12->setObjectName(QString::fromUtf8("label_12"));
-        label_12->setFont(font);
+        verticalLayout_8 = new QVBoxLayout(page_5);
+        verticalLayout_8->setSpacing(0);
+        verticalLayout_8->setContentsMargins(11, 11, 11, 11);
+        verticalLayout_8->setObjectName(QString::fromUtf8("verticalLayout_8"));
+        verticalLayout_8->setContentsMargins(0, 0, 0, 0);
+        label_6 = new QLabel(page_5);
+        label_6->setObjectName(QString::fromUtf8("label_6"));
+        QFont font4;
+        font4.setFamily(QString::fromUtf8("ori1Uni"));
+        font4.setPointSize(8);
+        font4.setKerning(false);
+        font4.setStyleStrategy(QFont::NoAntialias);
+        label_6->setFont(font4);
+        label_6->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
+
+        verticalLayout_8->addWidget(label_6);
+
+        horizontalLayout_4 = new QHBoxLayout();
+        horizontalLayout_4->setSpacing(0);
+        horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+        label_7 = new QLabel(page_5);
+        label_7->setObjectName(QString::fromUtf8("label_7"));
+        label_7->setFont(font4);
+        label_7->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_12, 5, 0, 1, 1);
+        horizontalLayout_4->addWidget(label_7);
 
         label_8 = new QLabel(page_5);
         label_8->setObjectName(QString::fromUtf8("label_8"));
-        label_8->setFont(font);
+        label_8->setFont(font4);
+        label_8->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_8, 1, 1, 1, 1);
+        horizontalLayout_4->addWidget(label_8);
 
-        label_10 = new QLabel(page_5);
-        label_10->setObjectName(QString::fromUtf8("label_10"));
-        label_10->setFont(font);
+        label_9 = new QLabel(page_5);
+        label_9->setObjectName(QString::fromUtf8("label_9"));
+        label_9->setFont(font4);
+        label_9->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_10, 3, 0, 1, 1);
+        horizontalLayout_4->addWidget(label_9);
 
-        label_7 = new QLabel(page_5);
-        label_7->setObjectName(QString::fromUtf8("label_7"));
-        label_7->setFont(font);
+        label_13 = new QLabel(page_5);
+        label_13->setObjectName(QString::fromUtf8("label_13"));
+        label_13->setFont(font4);
+        label_13->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_7, 1, 0, 1, 1);
+        horizontalLayout_4->addWidget(label_13);
 
-        label_15 = new QLabel(page_5);
-        label_15->setObjectName(QString::fromUtf8("label_15"));
-        label_15->setFont(font);
 
-        gridLayout_3->addWidget(label_15, 3, 3, 1, 1);
+        verticalLayout_8->addLayout(horizontalLayout_4);
 
-        label_11 = new QLabel(page_5);
-        label_11->setObjectName(QString::fromUtf8("label_11"));
-        label_11->setFont(font);
+        horizontalLayout_5 = new QHBoxLayout();
+        horizontalLayout_5->setSpacing(0);
+        horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
+        label_10 = new QLabel(page_5);
+        label_10->setObjectName(QString::fromUtf8("label_10"));
+        label_10->setFont(font4);
+        label_10->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_11, 3, 2, 1, 1);
+        horizontalLayout_5->addWidget(label_10);
 
-        label_9 = new QLabel(page_5);
-        label_9->setObjectName(QString::fromUtf8("label_9"));
-        label_9->setFont(font);
+        label_16 = new QLabel(page_5);
+        label_16->setObjectName(QString::fromUtf8("label_16"));
+        label_16->setFont(font4);
+        label_16->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_9, 1, 2, 1, 1);
+        horizontalLayout_5->addWidget(label_16);
 
-        label_13 = new QLabel(page_5);
-        label_13->setObjectName(QString::fromUtf8("label_13"));
-        label_13->setFont(font);
+        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_3->addWidget(label_13, 1, 3, 1, 1);
+        horizontalLayout_5->addItem(horizontalSpacer);
+
+
+        verticalLayout_8->addLayout(horizontalLayout_5);
+
+        horizontalLayout_6 = new QHBoxLayout();
+        horizontalLayout_6->setSpacing(0);
+        horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6"));
+        label_12 = new QLabel(page_5);
+        label_12->setObjectName(QString::fromUtf8("label_12"));
+        label_12->setFont(font4);
+        label_12->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_6->addWidget(label_12);
 
         label_14 = new QLabel(page_5);
         label_14->setObjectName(QString::fromUtf8("label_14"));
-        label_14->setFont(font);
+        label_14->setFont(font4);
+        label_14->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_3->addWidget(label_14, 5, 1, 1, 1);
+        horizontalLayout_6->addWidget(label_14);
 
-        label_6 = new QLabel(page_5);
-        label_6->setObjectName(QString::fromUtf8("label_6"));
-        label_6->setFont(font1);
-        label_6->setAlignment(Qt::AlignCenter);
+        label_11 = new QLabel(page_5);
+        label_11->setObjectName(QString::fromUtf8("label_11"));
+        label_11->setFont(font4);
+        label_11->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_6->addWidget(label_11);
+
+        label_15 = new QLabel(page_5);
+        label_15->setObjectName(QString::fromUtf8("label_15"));
+        label_15->setFont(font4);
+        label_15->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_6->addWidget(label_15);
 
-        gridLayout_3->addWidget(label_6, 0, 0, 1, 4);
+
+        verticalLayout_8->addLayout(horizontalLayout_6);
 
         stackedWidget_Main->addWidget(page_5);
         page = new QWidget();
         page->setObjectName(QString::fromUtf8("page"));
         page->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 0, 0);"));
-        gridLayout_4 = new QGridLayout(page);
-        gridLayout_4->setSpacing(0);
-        gridLayout_4->setContentsMargins(11, 11, 11, 11);
-        gridLayout_4->setObjectName(QString::fromUtf8("gridLayout_4"));
-        gridLayout_4->setContentsMargins(0, 0, 0, 0);
-        label_39 = new QLabel(page);
-        label_39->setObjectName(QString::fromUtf8("label_39"));
-        label_39->setFont(font);
+        verticalLayout_6 = new QVBoxLayout(page);
+        verticalLayout_6->setSpacing(0);
+        verticalLayout_6->setContentsMargins(11, 11, 11, 11);
+        verticalLayout_6->setObjectName(QString::fromUtf8("verticalLayout_6"));
+        verticalLayout_6->setContentsMargins(0, 0, 0, 0);
+        label_chName = new QLabel(page);
+        label_chName->setObjectName(QString::fromUtf8("label_chName"));
+        QFont font5;
+        font5.setFamily(QString::fromUtf8("ori1Uni"));
+        font5.setPointSize(8);
+        font5.setStyleStrategy(QFont::NoAntialias);
+        label_chName->setFont(font5);
+        label_chName->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
+
+        verticalLayout_6->addWidget(label_chName);
+
+        horizontalLayout = new QHBoxLayout();
+        horizontalLayout->setSpacing(0);
+        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+        label_34 = new QLabel(page);
+        label_34->setObjectName(QString::fromUtf8("label_34"));
+        label_34->setFont(font5);
+        label_34->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_39, 5, 0, 1, 1);
+        horizontalLayout->addWidget(label_34);
 
-        label_S = new QLabel(page);
-        label_S->setObjectName(QString::fromUtf8("label_S"));
-        label_S->setFont(font);
+        label_V = new QLabel(page);
+        label_V->setObjectName(QString::fromUtf8("label_V"));
+        label_V->setFont(font5);
+        label_V->setStyleSheet(QString::fromUtf8("QLabel {\n"
+"    color: red;\n"
+"}"));
+        label_V->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout->addWidget(label_V);
+
+        label_36 = new QLabel(page);
+        label_36->setObjectName(QString::fromUtf8("label_36"));
+        label_36->setFont(font5);
+        label_36->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_S, 5, 1, 1, 1);
+        horizontalLayout->addWidget(label_36);
 
         label_A = new QLabel(page);
         label_A->setObjectName(QString::fromUtf8("label_A"));
-        label_A->setFont(font);
+        label_A->setFont(font5);
+        label_A->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_A, 1, 3, 1, 1);
+        horizontalLayout->addWidget(label_A);
 
+
+        verticalLayout_6->addLayout(horizontalLayout);
+
+        horizontalLayout_2 = new QHBoxLayout();
+        horizontalLayout_2->setSpacing(0);
+        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
         label_37 = new QLabel(page);
         label_37->setObjectName(QString::fromUtf8("label_37"));
-        label_37->setFont(font);
+        label_37->setFont(font5);
+        label_37->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_37, 3, 0, 1, 1);
+        horizontalLayout_2->addWidget(label_37);
 
         label_W = new QLabel(page);
         label_W->setObjectName(QString::fromUtf8("label_W"));
-        label_W->setFont(font);
+        label_W->setFont(font5);
+        label_W->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_W, 3, 1, 1, 1);
+        horizontalLayout_2->addWidget(label_W);
 
-        label_34 = new QLabel(page);
-        label_34->setObjectName(QString::fromUtf8("label_34"));
-        label_34->setFont(font);
+        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_4->addWidget(label_34, 1, 0, 1, 1);
+        horizontalLayout_2->addItem(horizontalSpacer_2);
 
-        label_V = new QLabel(page);
-        label_V->setObjectName(QString::fromUtf8("label_V"));
-        label_V->setFont(font);
-        label_V->setStyleSheet(QString::fromUtf8("QLabel {\n"
-"    color: red;\n"
-"}"));
 
-        gridLayout_4->addWidget(label_V, 1, 1, 1, 1);
+        verticalLayout_6->addLayout(horizontalLayout_2);
 
-        label_36 = new QLabel(page);
-        label_36->setObjectName(QString::fromUtf8("label_36"));
-        label_36->setFont(font);
+        horizontalLayout_3 = new QHBoxLayout();
+        horizontalLayout_3->setSpacing(0);
+        horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
+        label_39 = new QLabel(page);
+        label_39->setObjectName(QString::fromUtf8("label_39"));
+        label_39->setFont(font5);
+        label_39->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_3->addWidget(label_39);
+
+        label_S = new QLabel(page);
+        label_S->setObjectName(QString::fromUtf8("label_S"));
+        label_S->setFont(font5);
+        label_S->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_36, 1, 2, 1, 1);
+        horizontalLayout_3->addWidget(label_S);
 
         label_38 = new QLabel(page);
         label_38->setObjectName(QString::fromUtf8("label_38"));
-        label_38->setFont(font);
+        label_38->setFont(font5);
+        label_38->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_38, 3, 2, 1, 1);
+        horizontalLayout_3->addWidget(label_38);
 
         label_F = new QLabel(page);
         label_F->setObjectName(QString::fromUtf8("label_F"));
-        label_F->setFont(font);
+        label_F->setFont(font5);
+        label_F->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_4->addWidget(label_F, 3, 3, 1, 1);
+        horizontalLayout_3->addWidget(label_F);
 
-        label_chName = new QLabel(page);
-        label_chName->setObjectName(QString::fromUtf8("label_chName"));
-        label_chName->setFont(font1);
-        label_chName->setAlignment(Qt::AlignCenter);
 
-        gridLayout_4->addWidget(label_chName, 0, 0, 1, 4);
+        verticalLayout_6->addLayout(horizontalLayout_3);
 
         stackedWidget_Main->addWidget(page);
         page_7 = new QWidget();
@@ -378,20 +503,20 @@ public:
         gridLayout_6->setContentsMargins(15, 0, 15, 0);
         label_chName_4 = new QLabel(page_7);
         label_chName_4->setObjectName(QString::fromUtf8("label_chName_4"));
-        label_chName_4->setFont(font1);
+        label_chName_4->setFont(font5);
         label_chName_4->setAlignment(Qt::AlignCenter);
 
         gridLayout_6->addWidget(label_chName_4, 0, 0, 1, 2);
 
         label_43 = new QLabel(page_7);
         label_43->setObjectName(QString::fromUtf8("label_43"));
-        label_43->setFont(font);
+        label_43->setFont(font5);
 
         gridLayout_6->addWidget(label_43, 1, 0, 1, 1);
 
         label_Temp = new QLabel(page_7);
         label_Temp->setObjectName(QString::fromUtf8("label_Temp"));
-        label_Temp->setFont(font);
+        label_Temp->setFont(font5);
         label_Temp->setStyleSheet(QString::fromUtf8(""));
         label_Temp->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
 
@@ -399,13 +524,13 @@ public:
 
         label_44 = new QLabel(page_7);
         label_44->setObjectName(QString::fromUtf8("label_44"));
-        label_44->setFont(font);
+        label_44->setFont(font5);
 
         gridLayout_6->addWidget(label_44, 2, 0, 1, 1);
 
         label_Humidity = new QLabel(page_7);
         label_Humidity->setObjectName(QString::fromUtf8("label_Humidity"));
-        label_Humidity->setFont(font);
+        label_Humidity->setFont(font5);
         label_Humidity->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
 
         gridLayout_6->addWidget(label_Humidity, 2, 1, 1, 1);
@@ -413,92 +538,130 @@ public:
         stackedWidget_Main->addWidget(page_7);
         page_8 = new QWidget();
         page_8->setObjectName(QString::fromUtf8("page_8"));
+        QFont font6;
+        font6.setPointSize(8);
+        page_8->setFont(font6);
         page_8->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 0, 0);"));
-        gridLayout_7 = new QGridLayout(page_8);
-        gridLayout_7->setSpacing(0);
-        gridLayout_7->setContentsMargins(11, 11, 11, 11);
-        gridLayout_7->setObjectName(QString::fromUtf8("gridLayout_7"));
-        gridLayout_7->setContentsMargins(0, 0, 0, 0);
-        label_24 = new QLabel(page_8);
-        label_24->setObjectName(QString::fromUtf8("label_24"));
-        label_24->setFont(font);
-
-        gridLayout_7->addWidget(label_24, 3, 0, 1, 1);
-
-        label_phW = new QLabel(page_8);
-        label_phW->setObjectName(QString::fromUtf8("label_phW"));
-        label_phW->setFont(font);
+        verticalLayout_9 = new QVBoxLayout(page_8);
+        verticalLayout_9->setSpacing(0);
+        verticalLayout_9->setContentsMargins(11, 11, 11, 11);
+        verticalLayout_9->setObjectName(QString::fromUtf8("verticalLayout_9"));
+        verticalLayout_9->setContentsMargins(0, 0, 0, 0);
+        label_18 = new QLabel(page_8);
+        label_18->setObjectName(QString::fromUtf8("label_18"));
+        label_18->setFont(font5);
+        label_18->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_phW, 3, 1, 1, 1);
+        verticalLayout_9->addWidget(label_18);
 
+        horizontalLayout_7 = new QHBoxLayout();
+        horizontalLayout_7->setSpacing(0);
+        horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
         label_22 = new QLabel(page_8);
         label_22->setObjectName(QString::fromUtf8("label_22"));
-        label_22->setFont(font);
+        label_22->setFont(font5);
+        label_22->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_22, 1, 0, 1, 1);
+        horizontalLayout_7->addWidget(label_22);
 
         label_phV = new QLabel(page_8);
         label_phV->setObjectName(QString::fromUtf8("label_phV"));
-        label_phV->setFont(font);
+        label_phV->setFont(font5);
+        label_phV->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_7->addWidget(label_phV);
+
+        label_23 = new QLabel(page_8);
+        label_23->setObjectName(QString::fromUtf8("label_23"));
+        label_23->setFont(font5);
+        label_23->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_phV, 1, 1, 1, 1);
+        horizontalLayout_7->addWidget(label_23);
 
+        label_phA = new QLabel(page_8);
+        label_phA->setObjectName(QString::fromUtf8("label_phA"));
+        label_phA->setFont(font5);
+        label_phA->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_7->addWidget(label_phA);
+
+
+        verticalLayout_9->addLayout(horizontalLayout_7);
+
+        horizontalLayout_9 = new QHBoxLayout();
+        horizontalLayout_9->setSpacing(0);
+        horizontalLayout_9->setObjectName(QString::fromUtf8("horizontalLayout_9"));
         label_21 = new QLabel(page_8);
         label_21->setObjectName(QString::fromUtf8("label_21"));
-        label_21->setFont(font);
+        label_21->setFont(font5);
+        label_21->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_21, 5, 0, 1, 1);
+        horizontalLayout_9->addWidget(label_21);
 
         label_phKw = new QLabel(page_8);
         label_phKw->setObjectName(QString::fromUtf8("label_phKw"));
-        label_phKw->setFont(font);
+        label_phKw->setFont(font5);
+        label_phKw->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_phKw, 5, 1, 1, 1);
+        horizontalLayout_9->addWidget(label_phKw);
 
-        label_23 = new QLabel(page_8);
-        label_23->setObjectName(QString::fromUtf8("label_23"));
-        label_23->setFont(font);
+        horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
-        gridLayout_7->addWidget(label_23, 1, 2, 1, 1);
+        horizontalLayout_9->addItem(horizontalSpacer_3);
 
-        label_phA = new QLabel(page_8);
-        label_phA->setObjectName(QString::fromUtf8("label_phA"));
-        label_phA->setFont(font);
 
-        gridLayout_7->addWidget(label_phA, 1, 3, 1, 1);
+        verticalLayout_9->addLayout(horizontalLayout_9);
+
+        horizontalLayout_8 = new QHBoxLayout();
+        horizontalLayout_8->setSpacing(0);
+        horizontalLayout_8->setObjectName(QString::fromUtf8("horizontalLayout_8"));
+        label_24 = new QLabel(page_8);
+        label_24->setObjectName(QString::fromUtf8("label_24"));
+        label_24->setFont(font5);
+        label_24->setTextFormat(Qt::AutoText);
+        label_24->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_8->addWidget(label_24);
+
+        label_phW = new QLabel(page_8);
+        label_phW->setObjectName(QString::fromUtf8("label_phW"));
+        label_phW->setFont(font5);
+        label_phW->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+
+        horizontalLayout_8->addWidget(label_phW);
 
         label_20 = new QLabel(page_8);
         label_20->setObjectName(QString::fromUtf8("label_20"));
-        label_20->setFont(font);
+        label_20->setFont(font5);
+        label_20->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_20, 3, 2, 1, 1);
+        horizontalLayout_8->addWidget(label_20);
 
         label_phF = new QLabel(page_8);
         label_phF->setObjectName(QString::fromUtf8("label_phF"));
-        label_phF->setFont(font);
+        label_phF->setFont(font5);
+        label_phF->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
 
-        gridLayout_7->addWidget(label_phF, 3, 3, 1, 1);
+        horizontalLayout_8->addWidget(label_phF);
 
-        label_18 = new QLabel(page_8);
-        label_18->setObjectName(QString::fromUtf8("label_18"));
-        label_18->setFont(font1);
-        label_18->setAlignment(Qt::AlignCenter);
 
-        gridLayout_7->addWidget(label_18, 0, 0, 1, 4);
+        verticalLayout_9->addLayout(horizontalLayout_8);
 
         stackedWidget_Main->addWidget(page_8);
 
         verticalLayout_4->addWidget(stackedWidget_Main);
 
+        verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+
+        verticalLayout_4->addItem(verticalSpacer);
+
 
         verticalLayout_3->addWidget(frame);
 
         stackedWidget->addWidget(page_main);
         page_Setting = new QWidget();
         page_Setting->setObjectName(QString::fromUtf8("page_Setting"));
-        QFont font2;
-        font2.setPointSize(8);
-        page_Setting->setFont(font2);
+        page_Setting->setFont(font6);
         verticalLayout_5 = new QVBoxLayout(page_Setting);
         verticalLayout_5->setSpacing(0);
         verticalLayout_5->setContentsMargins(11, 11, 11, 11);
@@ -506,7 +669,11 @@ public:
         verticalLayout_5->setContentsMargins(0, 0, 0, 0);
         frame_2 = new QFrame(page_Setting);
         frame_2->setObjectName(QString::fromUtf8("frame_2"));
-        frame_2->setFont(font);
+        QFont font7;
+        font7.setFamily(QString::fromUtf8("ori1Uni"));
+        font7.setPointSize(7);
+        font7.setStyleStrategy(QFont::NoAntialias);
+        frame_2->setFont(font7);
         frame_2->setFrameShape(QFrame::StyledPanel);
         frame_2->setFrameShadow(QFrame::Raised);
         verticalLayout_7 = new QVBoxLayout(frame_2);
@@ -516,7 +683,7 @@ public:
         verticalLayout_7->setContentsMargins(0, 0, 0, 0);
         stackedWidget_Setting = new QStackedWidget(frame_2);
         stackedWidget_Setting->setObjectName(QString::fromUtf8("stackedWidget_Setting"));
-        stackedWidget_Setting->setFont(font);
+        stackedWidget_Setting->setFont(font7);
         stackedWidget_Setting->setStyleSheet(QString::fromUtf8(""));
         page_2 = new QWidget();
         page_2->setObjectName(QString::fromUtf8("page_2"));
@@ -528,26 +695,30 @@ public:
         gridLayout_2->setContentsMargins(0, 0, 0, 0);
         label_SaveName = new QLabel(page_2);
         label_SaveName->setObjectName(QString::fromUtf8("label_SaveName"));
-        label_SaveName->setFont(font);
+        QFont font8;
+        font8.setFamily(QString::fromUtf8("ori1Uni"));
+        font8.setPointSize(6);
+        font8.setStyleStrategy(QFont::NoAntialias);
+        label_SaveName->setFont(font8);
 
         gridLayout_2->addWidget(label_SaveName, 3, 0, 1, 1);
 
         label_chName_2 = new QLabel(page_2);
         label_chName_2->setObjectName(QString::fromUtf8("label_chName_2"));
-        label_chName_2->setFont(font1);
+        label_chName_2->setFont(font5);
         label_chName_2->setAlignment(Qt::AlignCenter);
 
         gridLayout_2->addWidget(label_chName_2, 0, 0, 1, 2);
 
         label_MSName = new QLabel(page_2);
         label_MSName->setObjectName(QString::fromUtf8("label_MSName"));
-        label_MSName->setFont(font);
+        label_MSName->setFont(font8);
 
         gridLayout_2->addWidget(label_MSName, 2, 0, 1, 1);
 
         label_addressData = new QLabel(page_2);
         label_addressData->setObjectName(QString::fromUtf8("label_addressData"));
-        label_addressData->setFont(font);
+        label_addressData->setFont(font8);
         label_addressData->setStyleSheet(QString::fromUtf8(""));
         label_addressData->setAlignment(Qt::AlignCenter);
 
@@ -555,20 +726,20 @@ public:
 
         label_addressName = new QLabel(page_2);
         label_addressName->setObjectName(QString::fromUtf8("label_addressName"));
-        label_addressName->setFont(font);
+        label_addressName->setFont(font8);
 
         gridLayout_2->addWidget(label_addressName, 1, 0, 1, 1);
 
         label_MSData = new QLabel(page_2);
         label_MSData->setObjectName(QString::fromUtf8("label_MSData"));
-        label_MSData->setFont(font);
+        label_MSData->setFont(font8);
         label_MSData->setAlignment(Qt::AlignCenter);
 
         gridLayout_2->addWidget(label_MSData, 2, 1, 1, 1);
 
         label_SaveData = new QLabel(page_2);
         label_SaveData->setObjectName(QString::fromUtf8("label_SaveData"));
-        label_SaveData->setFont(font);
+        label_SaveData->setFont(font8);
         label_SaveData->setAlignment(Qt::AlignCenter);
 
         gridLayout_2->addWidget(label_SaveData, 3, 1, 1, 1);
@@ -584,20 +755,20 @@ public:
         gridLayout_5->setContentsMargins(0, 0, 0, 0);
         label_chName_3 = new QLabel(page_6);
         label_chName_3->setObjectName(QString::fromUtf8("label_chName_3"));
-        label_chName_3->setFont(font1);
+        label_chName_3->setFont(font5);
         label_chName_3->setAlignment(Qt::AlignCenter);
 
         gridLayout_5->addWidget(label_chName_3, 0, 0, 1, 2);
 
         label_42 = new QLabel(page_6);
         label_42->setObjectName(QString::fromUtf8("label_42"));
-        label_42->setFont(font);
+        label_42->setFont(font7);
 
         gridLayout_5->addWidget(label_42, 1, 0, 1, 1);
 
         label_V_3 = new QLabel(page_6);
         label_V_3->setObjectName(QString::fromUtf8("label_V_3"));
-        label_V_3->setFont(font);
+        label_V_3->setFont(font7);
         label_V_3->setStyleSheet(QString::fromUtf8(""));
         label_V_3->setAlignment(Qt::AlignCenter);
 
@@ -620,9 +791,9 @@ public:
         verticalLayout_2->setContentsMargins(0, 0, 0, 0);
         frame_5 = new QFrame(page_3);
         frame_5->setObjectName(QString::fromUtf8("frame_5"));
-        QFont font3;
-        font3.setPointSize(26);
-        frame_5->setFont(font3);
+        QFont font9;
+        font9.setPointSize(26);
+        frame_5->setFont(font9);
         frame_5->setFrameShape(QFrame::StyledPanel);
         frame_5->setFrameShadow(QFrame::Raised);
         gridLayout = new QGridLayout(frame_5);
@@ -644,7 +815,7 @@ public:
 
         stackedWidget->setCurrentIndex(0);
         stackedWidget_Main->setCurrentIndex(0);
-        stackedWidget_Setting->setCurrentIndex(1);
+        stackedWidget_Setting->setCurrentIndex(0);
 
 
         QMetaObject::connectSlotsByName(Widget);
@@ -654,50 +825,51 @@ public:
     {
         Widget->setWindowTitle(QApplication::translate("Widget", "Widget", nullptr));
         label->setText(QApplication::translate("Widget", "SmartPDU", nullptr));
-        label_modbus_type->setText(QApplication::translate("Widget", "ModbusType: ", nullptr));
-        label_3->setText(QApplication::translate("Widget", "Ip:192.168.155.132", nullptr));
-        label_5->setText(QApplication::translate("Widget", "Time:14:32:16", nullptr));
-        label_4->setText(QApplication::translate("Widget", "Date:2024.4.18", nullptr));
-        label_2->setText(QApplication::translate("Widget", "Version:1.1.0", nullptr));
+        label_2->setText(QApplication::translate("Widget", "\347\211\210\346\234\254:V1.1.0", nullptr));
+        label_3->setText(QApplication::translate("Widget", "IP\345\234\260\345\235\200:192.168.155.132", nullptr));
+        label_4->setText(QApplication::translate("Widget", "\346\227\245\346\234\237:2024.04.18", nullptr));
         label_modbus_Addr->setText(QApplication::translate("Widget", "ModbusAddress:", nullptr));
-        label_16->setText(QApplication::translate("Widget", "0.0", nullptr));
-        label_12->setText(QApplication::translate("Widget", "Sum(Kw):", nullptr));
+        label_modbus_type->setText(QApplication::translate("Widget", "ModbusType: ", nullptr));
+        label_5->setText(QApplication::translate("Widget", "14:32:16", nullptr));
+        label_17->setText(QApplication::translate("Widget", "\346\227\266\351\227\264:", nullptr));
+        label_6->setText(QApplication::translate("Widget", "\350\276\223\345\205\245\346\225\260\346\215\256", nullptr));
+        label_7->setText(QApplication::translate("Widget", "\347\224\265\345\216\213:", nullptr));
         label_8->setText(QApplication::translate("Widget", "0", nullptr));
-        label_10->setText(QApplication::translate("Widget", "Power(W):", nullptr));
-        label_7->setText(QApplication::translate("Widget", "Volt(V):", nullptr));
-        label_15->setText(QApplication::translate("Widget", "0%", nullptr));
-        label_11->setText(QApplication::translate("Widget", "Factor:", nullptr));
-        label_9->setText(QApplication::translate("Widget", "Cur(A):", nullptr));
+        label_9->setText(QApplication::translate("Widget", "\347\224\265\346\265\201:", nullptr));
         label_13->setText(QApplication::translate("Widget", "0.0", nullptr));
+        label_10->setText(QApplication::translate("Widget", "\345\212\237\347\216\207:", nullptr));
+        label_16->setText(QApplication::translate("Widget", "0.0", nullptr));
+        label_12->setText(QApplication::translate("Widget", "\350\200\227\347\224\265\351\207\217:", nullptr));
         label_14->setText(QApplication::translate("Widget", "0", nullptr));
-        label_6->setText(QApplication::translate("Widget", "Input Vol", nullptr));
-        label_39->setText(QApplication::translate("Widget", "Sum(Kw):", nullptr));
-        label_S->setText(QApplication::translate("Widget", "0", nullptr));
+        label_11->setText(QApplication::translate("Widget", "\345\233\240\346\225\260:", nullptr));
+        label_15->setText(QApplication::translate("Widget", "0%", nullptr));
+        label_chName->setText(QApplication::translate("Widget", "\350\276\223\345\207\272\351\200\232\351\201\223 CH", nullptr));
+        label_34->setText(QApplication::translate("Widget", "\347\212\266\346\200\201:", nullptr));
+        label_V->setText(QApplication::translate("Widget", "OFF", nullptr));
+        label_36->setText(QApplication::translate("Widget", "\347\224\265\346\265\201:", nullptr));
         label_A->setText(QApplication::translate("Widget", "0.0", nullptr));
-        label_37->setText(QApplication::translate("Widget", "Power(W):", nullptr));
+        label_37->setText(QApplication::translate("Widget", "\345\212\237\347\216\207:", nullptr));
         label_W->setText(QApplication::translate("Widget", "0.0", nullptr));
-        label_34->setText(QApplication::translate("Widget", "Switch", nullptr));
-        label_V->setText(QApplication::translate("Widget", "OFF", nullptr));
-        label_36->setText(QApplication::translate("Widget", "Cur(A):", nullptr));
-        label_38->setText(QApplication::translate("Widget", "Factor:", nullptr));
+        label_39->setText(QApplication::translate("Widget", "\350\200\227\347\224\265\351\207\217:", nullptr));
+        label_S->setText(QApplication::translate("Widget", "0", nullptr));
+        label_38->setText(QApplication::translate("Widget", "\345\233\240\346\225\260:", nullptr));
         label_F->setText(QApplication::translate("Widget", "0%", nullptr));
-        label_chName->setText(QApplication::translate("Widget", "Output CH", nullptr));
-        label_chName_4->setText(QApplication::translate("Widget", "Sensor", nullptr));
-        label_43->setText(QApplication::translate("Widget", "Temp", nullptr));
+        label_chName_4->setText(QApplication::translate("Widget", "\346\270\251\346\271\277\345\272\246", nullptr));
+        label_43->setText(QApplication::translate("Widget", "\346\270\251\345\272\246\357\274\232", nullptr));
         label_Temp->setText(QApplication::translate("Widget", "0", nullptr));
-        label_44->setText(QApplication::translate("Widget", "Humidity", nullptr));
+        label_44->setText(QApplication::translate("Widget", "\346\271\277\345\272\246\357\274\232", nullptr));
         label_Humidity->setText(QApplication::translate("Widget", "0 %", nullptr));
-        label_24->setText(QApplication::translate("Widget", "Power(W):", nullptr));
-        label_phW->setText(QApplication::translate("Widget", "0.0", nullptr));
-        label_22->setText(QApplication::translate("Widget", "Volt(V):", nullptr));
+        label_18->setText(QApplication::translate("Widget", "\350\276\223\345\207\272\351\200\232\351\201\223 CHA", nullptr));
+        label_22->setText(QApplication::translate("Widget", "\347\224\265\345\216\213:", nullptr));
         label_phV->setText(QApplication::translate("Widget", "0", nullptr));
-        label_21->setText(QApplication::translate("Widget", "Sum(Kw):", nullptr));
-        label_phKw->setText(QApplication::translate("Widget", "0", nullptr));
-        label_23->setText(QApplication::translate("Widget", "Cur(A):", nullptr));
+        label_23->setText(QApplication::translate("Widget", "\347\224\265\346\265\201:", nullptr));
         label_phA->setText(QApplication::translate("Widget", "0.0", nullptr));
-        label_20->setText(QApplication::translate("Widget", "Factor:", nullptr));
+        label_21->setText(QApplication::translate("Widget", "\350\200\227\347\224\265\351\207\217:", nullptr));
+        label_phKw->setText(QApplication::translate("Widget", "0", nullptr));
+        label_24->setText(QApplication::translate("Widget", "\345\212\237\347\216\207:", nullptr));
+        label_phW->setText(QApplication::translate("Widget", "0.0", nullptr));
+        label_20->setText(QApplication::translate("Widget", "\345\233\240\346\225\260:", nullptr));
         label_phF->setText(QApplication::translate("Widget", "0%", nullptr));
-        label_18->setText(QApplication::translate("Widget", "Output CHA", nullptr));
         label_SaveName->setText(QApplication::translate("Widget", "Save:", nullptr));
         label_chName_2->setText(QApplication::translate("Widget", "Set MODBUS", nullptr));
         label_MSName->setText(QApplication::translate("Widget", "Mode:", nullptr));

BIN
Qt/Qt_Test_242/volviewform.o


+ 29 - 5
Qt/Qt_Test_242/widget.cpp

@@ -123,14 +123,22 @@ void Widget::setShowPHIndex(int nIndex)
 void Widget::UpdateDate()
 {
     QDateTime currentTime = QDateTime::currentDateTime();
+#ifdef Language_Zh
+    QString strDate="日期:"+currentTime.toString("yyyy.MM.dd");
+#else
     QString strDate="Date:"+currentTime.toString("yyyy.MM.dd");
-    QString strTime="Time:"+currentTime.toString("HH:mm:ss");
+#endif
+    QString strTime=currentTime.toString("HH:mm:ss");
     if(ui)
     {
         ui->label_4->setText(strDate);
         ui->label_5->setText(strTime);
     }
+#ifdef Language_Zh
+    QString strIP="IP地址:"+ReadIP();
+#else
     QString strIP="IP:"+ReadIP();
+#endif
     ui->label_3->setText(strIP);
 
     if(pdu_Ctrl::instance()->m_nModbusMSType!=1)
@@ -199,7 +207,11 @@ void Widget::SetIP(QString strIP)
 
 void Widget::setCH(int nIndex)
 {
+#ifdef Language_Zh
+    QString  strShow=QString("输出通道CH%1").arg(nIndex);
+#else
     QString  strShow=QString("Output CH%1").arg(nIndex);
+#endif
     SetData(ui->label_chName,strShow);
 
 }
@@ -208,13 +220,13 @@ void Widget::setPH(int nIndex,int nPHType)
     QString  strShow="";
     switch (nPHType) {
     case 1:
-        strShow="-A";
+        strShow="-L1";
         break;
     case 2:
-        strShow="-B";
+        strShow="-L2";
         break;
     case 3:
-        strShow="-C";
+        strShow="-L3";
         break;
     default:
         break;
@@ -223,10 +235,18 @@ void Widget::setPH(int nIndex,int nPHType)
     QString  strPHShow="";
     if(nIndex<=0)
     {
+#ifdef Language_Zh
+        strPHShow=QString("输入通道%1").arg(strShow);
+#else
         strPHShow=QString("Input Vol%1").arg(strShow);
+#endif
     }else
     {
-        strPHShow=QString("Output CH%1%2").arg(nIndex).arg(strShow);
+#ifdef Language_Zh
+        strPHShow=QString("输出通道CH%1%2").arg(nIndex).arg(strShow);
+#else
+        strPHShow=QString("输出通道CH%1%2").arg(nIndex).arg(strShow);
+#endif
     }
     SetData(ui->label_18,strPHShow);
     qDebug()<<"CH_Select:"<<nIndex<<"PH_Select:"<<nPHType;
@@ -466,6 +486,9 @@ void Widget::CtrlBtnSet(int nIndex, int nData)
 
 void Widget::slot_TimerRun()
 {
+#ifdef JY242
+    pageUp();
+#else
     int nIndex=ui->stackedWidget->currentIndex();
     int nSubIndex=ui->stackedWidget_Main->currentIndex();
     if(nIndex==0&&nSubIndex==2)//通道页面标记
@@ -484,4 +507,5 @@ void Widget::slot_TimerRun()
         }
         qDebug()<<"Timer Once ----nChidIndex="<<nChidIndex;
     }
+#endif
 }

+ 1 - 0
Qt/Qt_Test_242/widget.h

@@ -14,6 +14,7 @@ class Widget;
 }
 //ST7735驱动
 #define ST7735_ERROR
+#define JY242 //景园2.42寸屏幕
 
 #ifdef ST7735_ERROR
 //ST7735 驱动使用GRB红色与蓝色位置相反

BIN
Qt/Qt_Test_242/widget.o


File diff suppressed because it is too large
+ 854 - 438
Qt/Qt_Test_242/widget.ui


+ 13 - 9
control/PDU-Triphasic_IO/App/Hlw8110/Hlw8110.c

@@ -112,6 +112,7 @@ extern AC_Output_struct_Reg  AC3PPDU_Output[Output_ChN_default + 2];
 
 extern uint32_t AC3PPDU_Modbus_Reg[AC3PPDU_Modbus_Reg_len];
 float hlw8110_store[Output_ChN_default + 1] = {0};
+extern uint32_t hlw8110_base[Output_ChN_default + 1];
 //extern uint32_t HLW8110_BasekWh[Output_ChN_default + 1];
 //extern uint32_t Hlw8110_Flash_value[Output_ChN_default + 1];
 //uint32_t Hlw8110_Flash_Backup[Output_ChN_default + 1] = {0};
@@ -476,21 +477,24 @@ unsigned char Judge_CheckSum_HLW8110_Calfactor(void)
 void Init_HLW8110(void)
 {
 	Uart_HLW8110_WriteREG_EN();
-	DelayNms(10);
+	DelayNms(20);
 	
 //电流通道A设置命令,指定当前用于计算视在功率、功率因数、相角、瞬时有功功率、瞬时视在功率和有功功率过载的信号指示 的通道为通道A	
 	Uart_HLW8110_Set_Channel_A();			
-	DelayNms(10);
+	DelayNms(20);
 	Uart_Write_HLW8110_Reg(REG_SYSCON_ADDR,2,0x0a04);	//开启A通道,关闭B通道,电压通道PGA = 1,电流通道PGA = 16
-	DelayNms(10);
-	
-
+	DelayNms(20);
+	Uart_Write_HLW8110_Reg(REG_SYSCON_ADDR,2,0x0a04);
+	DelayNms(20);
 	Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0001);	//1,使能PFA 脉冲输出和有功电能寄存器累加;
+	DelayNms(20);
+	Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0001);
+	DelayNms(20);
 //	Uart_Write_HLW8110_Reg(REG_EMUCON_ADDR,2,0x0018);	//正向和负向过零点均发生变化,ZXD0 = 1,ZXD1 = 1
 	Uart_Write_HLW8110_Reg(REG_EMUCON2_ADDR,2,0x0065);	//0x0001是EMUCON2的默认值,waveEn = 1,zxEn = 1,A通道电量寄存器,读后不清0,EPA_CB = 1;打开功率因素检测
-	DelayNms(10);
-
-	
+	DelayNms(20);
+	Uart_Write_HLW8110_Reg(REG_EMUCON2_ADDR,2,0x0065);
+	DelayNms(20);
 	Uart_HLW8110_WriteREG_DIS();
 //	DelayNms(3);	
   //读取地址是0x6F至0x77的寄存器,验证系数是否正确
@@ -1078,7 +1082,7 @@ void read_Hlw8110(uint8_t cs_x,uint8_t read_kWh_flag)
 	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 3] = AC3PPDU_Output[cs_x + CH1_out].AC_U;
 	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 4] = AC3PPDU_Output[cs_x + CH1_out].AC_S;
 	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 5] = AC3PPDU_Output[cs_x + CH1_out].AC_F;
-	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 6] = (hlw8110_store[cs_x + CH1_out] *1000);
+	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 6] = (hlw8110_base[cs_x + CH1_out] + hlw8110_store[cs_x + CH1_out] *1000);
 	AC3PPDU_Modbus_Reg[Mb_Dbuff_Out1Para_Addr + temp1 + 7] = AC3PPDU_Output[cs_x + CH1_out].AC_Q;
 	
 	// 

+ 12 - 20
control/PDU-Triphasic_IO/App/IO/key_io.c

@@ -38,44 +38,36 @@ void key_io_init(void * value)
 
 
 
-bool get_rst()
+uint8_t get_rst()
 {
+	uint8_t ret = 0;
 	FlagStatus status = SET;
-	bool ret = false;
-	uint32_t count = 100;
-
+	//bool ret = false;
 	if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET)
 	{
-		while(count--);
-		if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET)
-		{
-			ret = true;
-		}
+		ret = 1;
 	}
+	
 	return ret;
 }
-bool get_test()
+uint8_t get_test()
 {
 	FlagStatus status = SET;
-	bool ret = false;
-	uint32_t count = 100;
+	uint8_t ret = 0;
 
 	if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET)
 	{
-		while(count--);
-		if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET)
-		{
-			ret = true;
-		}
+			ret = 1;
 	}
+
 	return ret;
 }
 
-bool get_detection()
+uint8_t get_detection()
 {
 	FlagStatus status = SET;
-	bool ret = false;
+	uint8_t ret = 0;
 	if((status = gpio_input_bit_get(KEY_IO_IO,KEY_DETECTION)) == RESET)
-		ret = true;
+		ret = 1;
 	return ret;
 }

+ 3 - 5
control/PDU-Triphasic_IO/App/IO/key_io.h

@@ -3,15 +3,13 @@
 
 
 #include "stdint.h"
-#include "stdbool.h"
 
 
 
-
-bool get_rst();
-bool get_test();
+unsigned char get_rst();
+unsigned char get_test();
 void key_io_init(void* value);
-bool get_detection();
+unsigned char get_detection();
 
 #endif
 

File diff suppressed because it is too large
+ 522 - 267
control/PDU-Triphasic_IO/App/Main/Main.c


+ 11 - 11
control/PDU-Triphasic_IO/App/ReadEeprom/ReadEeprom.c

@@ -187,17 +187,17 @@ void  ReadEeprom(void)
 		}
 	}
 	// read Ch N open or close delay
-	AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] = Eeprom_Rbuf[ERom_RL_TonN_Addr];				//add by liyi 
-	AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] = Eeprom_Rbuf[ERom_RL_ToffN_Addr];
-	if((AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] < RELAY_ontime_default) || (AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] > RELAY_ontime_max))
-	{
-		AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] = RELAY_ontime_default;						//add by liyi
-	}
-	if((AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] < RELAY_offtime_default) || (AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] > RELAY_offtime_max))
-	{
-		AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] = RELAY_offtime_default;				//add by liyi
-	}
-	
+//	AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] = Eeprom_Rbuf[ERom_RL_TonN_Addr];				//add by liyi 
+//	AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] = Eeprom_Rbuf[ERom_RL_ToffN_Addr];
+//	if((AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] < RELAY_ontime_default) || (AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] > RELAY_ontime_max))
+//	{
+//		AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_TonN_Addr] = RELAY_ontime_default;						//add by liyi
+//	}
+//	if((AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] < RELAY_offtime_default) || (AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] > RELAY_offtime_max))
+//	{
+//		AC3PPDU_Modbus_Reg[Mb_Dbuff_RL_ToffN_Addr] = RELAY_offtime_default;				//add by liyi
+//	}
+//	
 	//read consumer from eeprom   
 	for(i =0; i < Output_ChN_default;i++)
 	{

+ 13 - 13
control/PDU-Triphasic_IO/HW/Timer/Timer.c

@@ -198,18 +198,18 @@ void TIMER14_IRQHandler(void)
 	}
 	// Ch N  add by liyi
 	
-	if(RL_N_begin_delay_flag > 0)
-	{
-		if(RL_N_delay_cnt < RL_N_delay_Limit)
-		{
-			RL_N_delay_cnt++;
-		}else
-		{
-			RL_N_delay_cnt = 0;
-			RL_N_end_delay_flag = 1;
-			RL_N_begin_delay_flag = 0;
-		}
-	}
+//	if(RL_N_begin_delay_flag > 0)
+//	{
+//		if(RL_N_delay_cnt < RL_N_delay_Limit)
+//		{
+//			RL_N_delay_cnt++;
+//		}else
+//		{
+//			RL_N_delay_cnt = 0;
+//			RL_N_end_delay_flag = 1;
+//			RL_N_begin_delay_flag = 0;
+//		}
+//	}
 	
 	if(Delay_N_mS > 0)
 	{
@@ -271,7 +271,7 @@ void TIMER16_IRQHandler(void)
 		Read_data_cnt = 0;
 		Start_Read_Flag = true;
 	}
-	if(s_iCnt1000 == 60)
+	if(s_iCnt1000 == 10)
 	{
 		s_iCnt1000 = 0;
 		write_kwh2Eeprom_flag = 1;

File diff suppressed because it is too large
+ 3151 - 2476
control/PDU-Triphasic_IO/Project/JLinkLog.txt


File diff suppressed because it is too large
+ 281 - 119
control/PDU-Triphasic_IO/Project/triphasic_3.uvguix.Gowon


+ 63 - 4
control/PDU-Triphasic_IO/Project/triphasic_3.uvoptx

@@ -120,12 +120,11 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>DLGUARM</Key>
-          <Name>x</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Key>DLGTARM</Key>
-          <Name>(6010=-1,-1,-1,-1,0)(6018=-1,-1,-1,-1,0)(6019=-1,-1,-1,-1,0)(6008=-1,-1,-1,-1,0)(6009=-1,-1,-1,-1,0)(6014=-1,-1,-1,-1,0)(6015=-1,-1,-1,-1,0)(6003=-1,-1,-1,-1,0)(6000=-1,-1,-1,-1,0)</Name>
+          <Name>(6010=-1,-1,-1,-1,0)(6018=-1,-1,-1,-1,0)(6019=-1,-1,-1,-1,0)(6008=-1,-1,-1,-1,0)(6009=-1,-1,-1,-1,0)(6014=120,153,378,884,0)(6015=-1,-1,-1,-1,0)(6003=-1,-1,-1,-1,0)(6000=-1,-1,-1,-1,0)</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
@@ -135,7 +134,7 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>JL2CM3</Key>
-          <Name>-U69545328 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BF11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32E23x.FLM -FS08000000 -FL010000 -FP0($$Device:GD32E230C8$Flash\GD32E23x.FLM)</Name>
+          <Name>-U69545264 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BF11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO31 -FD20000000 -FC1000 -FN1 -FF0GD32E23x.FLM -FS08000000 -FL010000 -FP0($$Device:GD32E230C8$Flash\GD32E23x.FLM)</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
@@ -143,7 +142,24 @@
           <Name>UL2V8M(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32E23x -FS08000000 -FL010000 -FP0($$Device:GD32E230C8$Flash\GD32E23x.FLM))</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
-      <Breakpoint/>
+      <Breakpoint>
+        <Bp>
+          <Number>0</Number>
+          <Type>0</Type>
+          <LineNumber>57</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>134219940</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>1</BreakIfRCount>
+          <Filename>..\ARM\System\gd32e230_it.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression>\\triphasic_3_3_IO_Deraction_250A__1_8_no_dog\../ARM/System/gd32e230_it.c\57</Expression>
+        </Bp>
+      </Breakpoint>
       <WatchWindow1>
         <Ww>
           <count>0</count>
@@ -155,7 +171,50 @@
           <WinNumber>1</WinNumber>
           <ItemText>Eeprom_Rbuf</ItemText>
         </Ww>
+        <Ww>
+          <count>2</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>RL_Func_statu</ItemText>
+        </Ww>
+        <Ww>
+          <count>3</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>AC3PPDU_Modbus_Reg</ItemText>
+        </Ww>
+        <Ww>
+          <count>4</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>RL_now_state</ItemText>
+        </Ww>
+        <Ww>
+          <count>5</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>AC3PPDU_RL_time</ItemText>
+        </Ww>
+        <Ww>
+          <count>6</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>AC3PPDU_RL_time</ItemText>
+        </Ww>
+        <Ww>
+          <count>7</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>a</ItemText>
+        </Ww>
+        <Ww>
+          <count>8</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>b</ItemText>
+        </Ww>
       </WatchWindow1>
+      <MemoryWindow1>
+        <Mm>
+          <WinNumber>1</WinNumber>
+          <SubType>2</SubType>
+          <ItemText>0x20000FB8</ItemText>
+          <AccSizeX>0</AccSizeX>
+        </Mm>
+      </MemoryWindow1>
       <Tracepoint>
         <THDelay>0</THDelay>
       </Tracepoint>

+ 3 - 3
control/PDU-Triphasic_IO/Project/triphasic_3.uvprojx

@@ -49,7 +49,7 @@
             <InvalidFlash>1</InvalidFlash>
           </TargetStatus>
           <OutputDirectory>.\Objects\</OutputDirectory>
-          <OutputName>triphasic_3_3_IO_Deraction_250A_1111</OutputName>
+          <OutputName>triphasic_3_3_IO_Deraction_250A_-1-9</OutputName>
           <CreateExecutable>1</CreateExecutable>
           <CreateLib>0</CreateLib>
           <CreateHexFile>1</CreateHexFile>
@@ -313,7 +313,7 @@
           </ArmAdsMisc>
           <Cads>
             <interw>1</interw>
-            <Optim>0</Optim>
+            <Optim>7</Optim>
             <oTime>0</oTime>
             <SplitLS>0</SplitLS>
             <OneElfS>1</OneElfS>
@@ -373,7 +373,7 @@
             <ScatterFile></ScatterFile>
             <IncludeLibs></IncludeLibs>
             <IncludeLibsPath></IncludeLibsPath>
-            <Misc></Misc>
+            <Misc>--info stack</Misc>
             <LinkerInputFile></LinkerInputFile>
             <DisabledWarnings></DisabledWarnings>
           </LDads>