Dev Lora
This commit is contained in:
parent
d3d6e095d7
commit
02e968c724
@ -5,8 +5,10 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
|||||||
#CONFIG += console
|
#CONFIG += console
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
Sources/Chalet/ChaletData.h \
|
||||||
|
Sources/Chalet/ChaletInterface.h \
|
||||||
Sources/Chalet/ChaletLoraDevice.h \
|
Sources/Chalet/ChaletLoraDevice.h \
|
||||||
Sources/Chalet/LoraDevice.h \
|
Sources/LoraNetworkCommIF.h \
|
||||||
Sources/MasterCtrl.h \
|
Sources/MasterCtrl.h \
|
||||||
Sources/GlobalDefine.h \
|
Sources/GlobalDefine.h \
|
||||||
Sources/485NetworkCommIF.h \
|
Sources/485NetworkCommIF.h \
|
||||||
@ -34,11 +36,14 @@ HEADERS += \
|
|||||||
Sources/Sprinkler/SprinklerInterface.h \
|
Sources/Sprinkler/SprinklerInterface.h \
|
||||||
Sources/Sprinkler/SprinklerMgr.h \
|
Sources/Sprinkler/SprinklerMgr.h \
|
||||||
Sources/AvReceiver/AvReceiverInterface.h \
|
Sources/AvReceiver/AvReceiverInterface.h \
|
||||||
Sources/AvReceiver/AvReceiverData.h
|
Sources/AvReceiver/AvReceiverData.h \
|
||||||
|
Sources/Chalet/ChaletNetworkMessage.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
|
Sources/Chalet/ChaletData.cpp \
|
||||||
|
Sources/Chalet/ChaletInterface.cpp \
|
||||||
Sources/Chalet/ChaletLoraDevice.cpp \
|
Sources/Chalet/ChaletLoraDevice.cpp \
|
||||||
Sources/Chalet/LoraDevice.cpp \
|
Sources/LoraNetworkCommIF.cpp \
|
||||||
Sources/main.cpp \
|
Sources/main.cpp \
|
||||||
Sources/MasterCtrl.cpp \
|
Sources/MasterCtrl.cpp \
|
||||||
Sources/485NetworkCommIF.cpp \
|
Sources/485NetworkCommIF.cpp \
|
||||||
@ -64,7 +69,8 @@ SOURCES += \
|
|||||||
Sources/Sprinkler/SprinklerInterface.cpp \
|
Sources/Sprinkler/SprinklerInterface.cpp \
|
||||||
Sources/Sprinkler/SprinklerMgr.cpp \
|
Sources/Sprinkler/SprinklerMgr.cpp \
|
||||||
Sources/AvReceiver/AvReceiverInterface.cpp \
|
Sources/AvReceiver/AvReceiverInterface.cpp \
|
||||||
Sources/AvReceiver/AvReceiverData.cpp
|
Sources/AvReceiver/AvReceiverData.cpp \
|
||||||
|
Sources/Chalet/ChaletNetworkMessage.cpp
|
||||||
|
|
||||||
DEFINES -= Q_OS_UNIX
|
DEFINES -= Q_OS_UNIX
|
||||||
|
|
||||||
|
|||||||
514
MasterCtrl.pro.user.22
Normal file
514
MasterCtrl.pro.user.22
Normal file
@ -0,0 +1,514 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 4.11.1, 2020-08-28T06:43:31. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{5a351af6-dc3b-4afc-af92-7da5e3a5cd12}</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="QString">-fno-delayed-template-parsing</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_mingw73_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="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl</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="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.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>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl</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="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">true</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.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>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Main/PicDev/Projets/MasterCtrl/build-MasterCtrl-Desktop_Qt_5_14_2_MinGW_64_bit-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="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">true</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.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>
|
||||||
|
</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>
|
||||||
|
<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:D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/MasterCtrl.pro</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/MasterCtrl.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">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl</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">Qt 4.8.7</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 4.8.7</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{8820e404-d75e-4d7e-80ff-354d5dfc06d1}</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">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/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="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.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>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/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="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.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>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</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>
|
||||||
|
<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:D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/MasterCtrl.pro</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/MasterCtrl.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">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></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>
|
||||||
53
Sources/Chalet/ChaletData.cpp
Normal file
53
Sources/Chalet/ChaletData.cpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#include "ChaletData.h"
|
||||||
|
#include <QDataStream>
|
||||||
|
|
||||||
|
CChaletMainStatus::CChaletMainStatus()
|
||||||
|
{
|
||||||
|
mInverterRelayStatus = UNKNOWN_STATE;
|
||||||
|
mWiFiModuleStatus = UNKNOWN_STATE;
|
||||||
|
mBatteryCurrent = 0;
|
||||||
|
mBatteryVoltage = 0;
|
||||||
|
mIsOnline = false;
|
||||||
|
mHarakiriDone = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//int CChaletMainStatus::FromByteArray(QByteArray Data)
|
||||||
|
//{
|
||||||
|
//// QDataStream Strm(Data);
|
||||||
|
//// Strm.device()->seek(0);
|
||||||
|
|
||||||
|
//// mInverterRelayStatus >> Data;
|
||||||
|
//// mWiFiModuleStatus = Data[1];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//// ChaletStatus[0] = GetChaletPowerRelayState(); //Inverter relay status
|
||||||
|
//// ChaletStatus[1] = GetWiFiSate(); //Wifi Module state
|
||||||
|
//// ChaletStatus[2] = 3; //Battery Voltage 1
|
||||||
|
//// ChaletStatus[3] = 4; //Battery voltage 2
|
||||||
|
//// ChaletStatus[4] = 5; //Battery current 1
|
||||||
|
//// ChaletStatus[5] = 6; //Batgtery current 2
|
||||||
|
//// ChaletStatus[6] = 7; //Battery SOC
|
||||||
|
//// ChaletStatus[7] = 8; //Snatch
|
||||||
|
//// ChaletStatus[8] = 9;
|
||||||
|
//// ChaletStatus[9] = 10;
|
||||||
|
|
||||||
|
// return RET_OK;
|
||||||
|
//}
|
||||||
|
|
||||||
|
QByteArray CChaletMainStatus::ToByteArray()
|
||||||
|
{
|
||||||
|
QByteArray Data;
|
||||||
|
Data.clear();
|
||||||
|
QDataStream Strm(&Data,QIODevice::WriteOnly);
|
||||||
|
|
||||||
|
Strm << mInverterRelayStatus;
|
||||||
|
Strm << mWiFiModuleStatus;
|
||||||
|
Strm << mBatteryVoltage;
|
||||||
|
Strm << mBatteryCurrent;
|
||||||
|
Strm << mBatterySOC;
|
||||||
|
|
||||||
|
return Data;
|
||||||
|
}
|
||||||
34
Sources/Chalet/ChaletData.h
Normal file
34
Sources/Chalet/ChaletData.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#ifndef CHALETDATA_H
|
||||||
|
#define CHALETDATA_H
|
||||||
|
#include <QString>
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
#include <QDateTime>
|
||||||
|
#include <QByteArray>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class CChaletMainStatus
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
QByteArray ToByteArray();
|
||||||
|
// int FromByteArray(QByteArray Data);
|
||||||
|
|
||||||
|
CChaletMainStatus();
|
||||||
|
|
||||||
|
quint8 mInverterRelayStatus;
|
||||||
|
quint8 mWiFiModuleStatus;
|
||||||
|
|
||||||
|
float mBatteryVoltage;
|
||||||
|
float mBatteryCurrent;
|
||||||
|
float mBatterySOC;
|
||||||
|
|
||||||
|
bool mHarakiriDone;
|
||||||
|
bool mIsOnline;
|
||||||
|
|
||||||
|
QDateTime mLastLoraStatus;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // CHALETDATA_H
|
||||||
95
Sources/Chalet/ChaletInterface.cpp
Normal file
95
Sources/Chalet/ChaletInterface.cpp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#include "ChaletInterface.h"
|
||||||
|
|
||||||
|
CChaletInterface::CChaletInterface(int Address, CAbstractNetworkCommIF *NetworkInterface, CChaletLoraDevice *DevicePtr):
|
||||||
|
CNetworkDevice(ID_CHALET_INTERFACE,Address,NetworkInterface)
|
||||||
|
{
|
||||||
|
mChaletLoraDevice = DevicePtr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int CChaletInterface::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
|
||||||
|
Q_UNUSED(DeviceID)
|
||||||
|
Q_UNUSED(DeviceAddress)
|
||||||
|
Q_UNUSED(DataSize)
|
||||||
|
Q_UNUSED(Data)
|
||||||
|
|
||||||
|
switch(MessageID)
|
||||||
|
{
|
||||||
|
case CHALET_INTERFACE_ACK:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_GENERAL_STATUS_REQUEST:
|
||||||
|
{
|
||||||
|
QByteArray data = mChaletLoraDevice->GetChaletMainStatus().ToByteArray();
|
||||||
|
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_INTERFACE,mDeviceAddress,CHALET_INTERFACE_GENERAL_STATUS_RESPONSE,data.size(),data);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_AC_POWER_STATE_STATUS_REQUEST:
|
||||||
|
{
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_AC_POWER_SET_STATE_REQUEST:
|
||||||
|
{
|
||||||
|
qDebug("AC power state set request received from interface");
|
||||||
|
if(Data[0] == (char)1)
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendInverterPowerRelayState(true);
|
||||||
|
}
|
||||||
|
else if(Data[0] == (char)0)
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendInverterPowerRelayState(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_BATTERY_VOLTAGE_REQUEST:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_WIFI_SET_STATE_REQUEST:
|
||||||
|
{
|
||||||
|
qDebug("WiFi state set request received from interface");
|
||||||
|
if(Data[0] == (char)1)
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendWiFiModuleSetState(true);
|
||||||
|
}
|
||||||
|
else if(Data[0] == (char)0)
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendWiFiModuleSetState(false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_DO_HARAKIRI_REQUEST:
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendDOHarakiri();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_REBOOT_CPU_REQUEST:
|
||||||
|
{
|
||||||
|
mChaletLoraDevice->SendRebootCmd();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_INTERFACE_GENERAL_STATUS_RESPONSE:
|
||||||
|
case CHALET_INTERFACE_AC_POWER_STATE_STATUS_RESPONSE:
|
||||||
|
case CHALET_INTERFACE_AC_POWER_SET_STATE_RESPONSE:
|
||||||
|
case CHALET_INTERFACE_BATTERY_VOLTAGE_RESPONSE:
|
||||||
|
case CHALET_INTERFACE_WIFI_SET_STATE_RESPONSE:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
21
Sources/Chalet/ChaletInterface.h
Normal file
21
Sources/Chalet/ChaletInterface.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef CCHALETINTERFACE_H
|
||||||
|
#define CCHALETINTERFACE_H
|
||||||
|
|
||||||
|
#include "NetworkDevice.h"
|
||||||
|
#include "ChaletLoraDevice.h"
|
||||||
|
|
||||||
|
|
||||||
|
class CChaletInterface: public QObject, public CNetworkDevice
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
|
||||||
|
CChaletInterface(int Address, CAbstractNetworkCommIF *NetworkInterface, CChaletLoraDevice *DevicePtr);
|
||||||
|
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
private:
|
||||||
|
CChaletLoraDevice *mChaletLoraDevice;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CCHALETINTERFACE_H
|
||||||
@ -1,84 +1,288 @@
|
|||||||
#include "ChaletLoraDevice.h"
|
#include "ChaletLoraDevice.h"
|
||||||
#include <QSerialPortInfo>
|
#include "GlobalDefine.h"
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
CChaletLoraDevice::CChaletLoraDevice()
|
|
||||||
|
CChaletLoraDevice::CChaletLoraDevice(int Address, CAbstractNetworkCommIF *NetworkInterface):
|
||||||
|
CNetworkDevice(ID_CHALET_DEVICE,Address,NetworkInterface)
|
||||||
{
|
{
|
||||||
mMyLoraAddress = 5;
|
NetworkInterface->mDevicePtr = this;
|
||||||
mMyLoraChannel = 4;
|
mDeviceAddress = Address;
|
||||||
|
mDeviceID = ID_CHALET_DEVICE;
|
||||||
|
|
||||||
QByteArray Test;
|
|
||||||
Test.resize(4);
|
|
||||||
Test[0] = 0xDE;
|
|
||||||
Test[1] = 0xAD;
|
|
||||||
Test[2] = 0xBE;
|
|
||||||
Test[3] = 0xEF;
|
|
||||||
|
|
||||||
GetLoraFrame(4,4,Test);
|
|
||||||
|
|
||||||
mLoraStatusRefreshTimer = new QTimer;
|
|
||||||
mLoraStatusRefreshTimer->setInterval(1000);
|
|
||||||
mLoraStatusRefreshTimer->setSingleShot(false);
|
|
||||||
connect(mLoraStatusRefreshTimer,SIGNAL(timeout()),this,SLOT(LoraStatusRefreshTimerExpired()));
|
|
||||||
|
|
||||||
mLoraStatusRefreshTimer->start();
|
|
||||||
|
|
||||||
|
mChaletStatusTimer = new QTimer();
|
||||||
|
mChaletStatusTimer->setInterval(1000);
|
||||||
|
mChaletStatusTimer->setSingleShot(true);
|
||||||
|
connect(mChaletStatusTimer,SIGNAL(timeout()),this,SLOT(CommTimerExpired()));
|
||||||
}
|
}
|
||||||
|
|
||||||
CChaletLoraDevice::~CChaletLoraDevice()
|
CChaletLoraDevice::~CChaletLoraDevice()
|
||||||
{
|
{
|
||||||
mLoraStatusRefreshTimer->stop();
|
delete mChaletStatusTimer;
|
||||||
delete mLoraStatusRefreshTimer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int CChaletLoraDevice::Init()
|
int CChaletLoraDevice::Start()
|
||||||
{
|
{
|
||||||
QList<QSerialPortInfo> PortsList = QSerialPortInfo::availablePorts();
|
ScheduleChaletStatusRequest();
|
||||||
|
mChaletStatusTimer->start(1000);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < PortsList.size(); i++)
|
int CChaletLoraDevice::NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
switch(MessageID)
|
||||||
{
|
{
|
||||||
qDebug("Port found: %s - %s",qPrintable(PortsList.at(i).portName()),qPrintable(PortsList.at(i).description()));
|
case CHALET_ACK:
|
||||||
|
{
|
||||||
|
CmdResponseReceived(CHALET_ACK);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_GENERAL_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
float temp;
|
||||||
|
qDebug("Chalet Status RX");
|
||||||
|
char VoltageArray[4];
|
||||||
|
|
||||||
|
mChaletMainStatus.mInverterRelayStatus = Data[0];
|
||||||
|
mChaletMainStatus.mWiFiModuleStatus = Data[1];
|
||||||
|
VoltageArray[0] = Data[2];
|
||||||
|
VoltageArray[1] = Data[3];
|
||||||
|
VoltageArray[2] = Data[4];
|
||||||
|
VoltageArray[3] = Data[5];
|
||||||
|
memcpy(&temp,VoltageArray,4);
|
||||||
|
mChaletMainStatus.mBatteryVoltage = temp;
|
||||||
|
CmdResponseReceived(CHALET_GENERAL_STATUS_REQUEST);
|
||||||
|
qDebug("voltage: %f",mChaletMainStatus.mBatteryVoltage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_AC_POWER_STATE_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
mChaletMainStatus.mInverterRelayStatus = Data[0];
|
||||||
|
CmdResponseReceived(CHALET_AC_POWER_SET_STATE_RESPONSE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_AC_POWER_SET_STATE_RESPONSE:
|
||||||
|
{
|
||||||
|
qDebug("Lora set Inverter Power response : 0x%d",(int)Data[0]);
|
||||||
|
mChaletMainStatus.mInverterRelayStatus = Data[0];
|
||||||
|
CmdResponseReceived(CHALET_AC_POWER_SET_STATE_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_BATTERY_VOLTAGE_RESPONSE:
|
||||||
|
{
|
||||||
|
CmdResponseReceived(CHALET_BATTERY_VOLTAGE_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_BATTERY_CURRENT_RESPONSE:
|
||||||
|
{
|
||||||
|
CmdResponseReceived(CHALET_BATTERY_CURRENT_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_WIFI_STATUS_RESPONSE:
|
||||||
|
{
|
||||||
|
mChaletMainStatus.mWiFiModuleStatus = Data[0];
|
||||||
|
CmdResponseReceived(CHALET_WIFI_STATUS_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_WIFI_SET_STATE_RESPONSE:
|
||||||
|
{
|
||||||
|
qDebug("Lora set WiFi response : 0x%d",(int)Data[0]);
|
||||||
|
mChaletMainStatus.mWiFiModuleStatus = Data[0];
|
||||||
|
CmdResponseReceived(CHALET_WIFI_SET_STATE_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_DO_HARAKIRI_CONFIRMATION:
|
||||||
|
{
|
||||||
|
if(Data[0] == (char)1)
|
||||||
|
{
|
||||||
|
qDebug("ChaletDuino has commited suicide (HARAKIRI)");
|
||||||
|
mChaletMainStatus.mHarakiriDone = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug("HARAKIRI magic word invalid.");
|
||||||
|
}
|
||||||
|
CmdResponseReceived(CHALET_DO_HARAKIRI_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CHALET_REBOOT_CPU_RESPONSE:
|
||||||
|
{
|
||||||
|
if(Data[0] == (char)1)
|
||||||
|
{
|
||||||
|
qDebug("ChaletDuino is rebooting");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug("Reboot magic word invalid");
|
||||||
|
}
|
||||||
|
CmdResponseReceived(CHALET_DO_HARAKIRI_REQUEST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return RET_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
mLoraModuleSerialPort.setPortName("COM3");
|
void CChaletLoraDevice::CommTimerExpired()
|
||||||
mLoraModuleSerialPort.setBaudRate(QSerialPort::Baud9600);
|
{
|
||||||
mLoraModuleSerialPort.setDataBits(QSerialPort::Data8);
|
if(mPendingNetworkMsgList.isEmpty())
|
||||||
mLoraModuleSerialPort.setParity(QSerialPort::NoParity);
|
|
||||||
mLoraModuleSerialPort.setFlowControl(QSerialPort::NoFlowControl);
|
|
||||||
if(mLoraModuleSerialPort.open(QIODevice::ReadWrite) == false)
|
|
||||||
{
|
{
|
||||||
qDebug("Could not open Chalet Lora serial port");
|
qDebug("Empty command list in comm timer ");
|
||||||
return RET_ERROR;
|
ScheduleChaletStatusRequest();
|
||||||
|
mChaletStatusTimer->start(1000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(mPendingNetworkMsgList.first().PendingResponse == true)
|
||||||
|
{
|
||||||
|
//The current command is still waiting for a response. Check how many times we tried to send it
|
||||||
|
qDebug("Cmd 0x%x timetout... retrying",mPendingNetworkMsgList.first().mMessageID);
|
||||||
|
if(mPendingNetworkMsgList.first().ResendCounter >= 5)
|
||||||
|
{
|
||||||
|
//TODO: manage this. Module offline?
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mPendingNetworkMsgList[0].ResendCounter++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray Test;
|
qDebug("Sending chalet request 0x%x",mPendingNetworkMsgList.at(0).mMessageID);
|
||||||
Test.resize(5);
|
|
||||||
Test[0] = 0xDE;
|
|
||||||
Test[1] = 0xAD;
|
|
||||||
Test[2] = 0xBE;
|
|
||||||
Test[3] = 0xEF;
|
|
||||||
Test[4] = '\r';
|
|
||||||
|
|
||||||
GetLoraFrame(4,4,Test);
|
mPendingNetworkMsgList[0].PendingResponse = true;
|
||||||
|
SendChaletCommand(mPendingNetworkMsgList.at(0).mMessageID,mPendingNetworkMsgList.at(0).mData.size(),mPendingNetworkMsgList.at(0).mData);
|
||||||
|
|
||||||
mLoraModuleSerialPort.write(GetLoraFrame(4,4,Test));
|
//Harakiri and Reboot commands should not stay in the queue...
|
||||||
|
if(mPendingNetworkMsgList.at(0).mMessageID == CHALET_DO_HARAKIRI_REQUEST ||
|
||||||
|
mPendingNetworkMsgList.at(0).mMessageID == CHALET_REBOOT_CPU_REQUEST)
|
||||||
|
{
|
||||||
|
mPendingNetworkMsgList.clear();
|
||||||
|
ScheduleChaletStatusRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
mChaletStatusTimer->start(5000); //we should get an answer within 5 seconds.
|
||||||
|
// SendChaletCommand(CHALET_GENERAL_STATUS_REQUEST,0,QByteArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendWiFiModuleSetState(bool State)
|
||||||
|
{
|
||||||
|
QByteArray Data;
|
||||||
|
Data.resize(1);
|
||||||
|
if(State)
|
||||||
|
{
|
||||||
|
Data[0] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Data[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ScheduleChaletCommand(CHALET_WIFI_SET_STATE_REQUEST,1,Data);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendInverterPowerRelayState(bool State)
|
||||||
|
{
|
||||||
|
QByteArray Data;
|
||||||
|
Data.resize(1);
|
||||||
|
if(State)
|
||||||
|
{
|
||||||
|
Data[0] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Data[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ScheduleChaletCommand(CHALET_AC_POWER_SET_STATE_REQUEST,Data);
|
||||||
|
// SendChaletCommand(CHALET_AC_POWER_SET_STATE_REQUEST,1,Data);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendDOHarakiri()
|
||||||
|
{
|
||||||
|
QByteArray Data; //Magic word...
|
||||||
|
Data.clear();
|
||||||
|
Data.append(0xBA);
|
||||||
|
Data.append(0xAD);
|
||||||
|
Data.append(0xBE);
|
||||||
|
Data.append(0xEF);
|
||||||
|
|
||||||
|
ScheduleChaletCommand(CHALET_DO_HARAKIRI_REQUEST,Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendRebootCmd()
|
||||||
|
{
|
||||||
|
QByteArray Data; //Magic word...
|
||||||
|
Data.clear();
|
||||||
|
Data.append(0xBA);
|
||||||
|
Data.append(0xAD);
|
||||||
|
Data.append(0xCA);
|
||||||
|
Data.append(0xFE);
|
||||||
|
|
||||||
|
ScheduleChaletCommand(CHALET_REBOOT_CPU_REQUEST,Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::SendChaletCommand(int CmdID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
mNetworkInterfacePtr->SendNetworkMessage(ID_CHALET_DEVICE,mDeviceAddress,CmdID,DataSize,Data);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::CmdResponseReceived(int CmdID)
|
||||||
|
{
|
||||||
|
Q_UNUSED(CmdID)
|
||||||
|
|
||||||
|
qDebug("Chalet response received from cmd: 0x%x",CmdID);
|
||||||
|
if(mPendingNetworkMsgList.size() == 0)
|
||||||
|
{
|
||||||
|
qDebug("Cmd ack received but list is empty!!!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CChaletNetworkMessage Msg = mPendingNetworkMsgList.takeFirst();
|
||||||
|
if(Msg.mMessageID != CmdID)
|
||||||
|
{
|
||||||
|
qDebug("Inconsistency between active cmd and ack received [received 0x%x] != [cur 0x%x]!!!", Msg.mMessageID,CmdID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mPendingNetworkMsgList.size() == 0) //If no message is left pending... schedule status request
|
||||||
|
{
|
||||||
|
ScheduleChaletStatusRequest();
|
||||||
|
mChaletStatusTimer->start(1000);//Next status request will be sent in 1000ms
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mChaletStatusTimer->start(500); //wait a little and send the next cmd.
|
||||||
|
}
|
||||||
|
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CChaletLoraDevice::LoraStatusRefreshTimerExpired()
|
int CChaletLoraDevice::ScheduleChaletStatusRequest()
|
||||||
{
|
{
|
||||||
QByteArray Test;
|
ScheduleChaletCommand(CHALET_GENERAL_STATUS_REQUEST,0,QByteArray());
|
||||||
Test.resize(4);
|
|
||||||
Test[0] = 0xBA;
|
|
||||||
Test[1] = 0xAD;
|
|
||||||
Test[2] = 0xCA;
|
|
||||||
Test[3] = 0xFE;
|
|
||||||
// Test[4] = '\r';
|
|
||||||
|
|
||||||
GetLoraFrame(4,4,Test);
|
|
||||||
|
|
||||||
mLoraModuleSerialPort.write(GetLoraFrame(4,4,Test));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
Q_UNUSED(DataSize)
|
||||||
|
CChaletNetworkMessage Command(CmdID,Data);
|
||||||
|
mPendingNetworkMsgList.append(Command);
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CChaletLoraDevice::ScheduleChaletCommand(int CmdID, QByteArray Data)
|
||||||
|
{
|
||||||
|
CChaletNetworkMessage Command(CmdID,Data);
|
||||||
|
mPendingNetworkMsgList.append(Command);
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,27 +1,50 @@
|
|||||||
#ifndef CCHALETLORADEVICE_H
|
#ifndef CCHALETLORADEVICE_H
|
||||||
#define CCHALETLORADEVICE_H
|
#define CCHALETLORADEVICE_H
|
||||||
|
#include <QByteArray>
|
||||||
#include "GlobalDefine.h"
|
#include <QObject>
|
||||||
#include "LoraDevice.h"
|
|
||||||
#include <QSerialPort>
|
#include <QSerialPort>
|
||||||
|
#include "LoraNetworkCommIF.h"
|
||||||
|
#include "NetworkDevice.h"
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
#include "ChaletData.h"
|
||||||
|
#include "ChaletNetworkMessage.h"
|
||||||
|
#include <QList>
|
||||||
|
|
||||||
|
#define LORA_MAGIC_WORD 0xBAADCAFE
|
||||||
|
|
||||||
|
|
||||||
class CChaletLoraDevice : public QObject, public CLoraDevice
|
class CChaletLoraDevice : public QObject, public CNetworkDevice
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CChaletLoraDevice();
|
CChaletLoraDevice(int Address,CAbstractNetworkCommIF *NetworkInterface);
|
||||||
~CChaletLoraDevice();
|
~CChaletLoraDevice();
|
||||||
int Init();
|
|
||||||
QTimer *mLoraStatusRefreshTimer;
|
|
||||||
|
|
||||||
|
virtual int NewDeviceFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
private:
|
QTimer *mChaletStatusTimer;
|
||||||
QSerialPort mLoraModuleSerialPort;
|
int Start();
|
||||||
|
|
||||||
|
CChaletMainStatus GetChaletMainStatus() {return mChaletMainStatus;}
|
||||||
|
|
||||||
|
CChaletMainStatus mChaletMainStatus;
|
||||||
|
QList<CChaletNetworkMessage> mPendingNetworkMsgList;
|
||||||
|
|
||||||
|
int SendWiFiModuleSetState(bool State);
|
||||||
|
int SendInverterPowerRelayState(bool State);
|
||||||
|
int SendDOHarakiri();
|
||||||
|
int SendRebootCmd();
|
||||||
|
int SendChaletCommand(int CmdID,int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
int CmdResponseReceived(int CmdID);
|
||||||
|
int ScheduleChaletStatusRequest();
|
||||||
|
int ScheduleChaletCommand(int CmdID, int DataSize, QByteArray Data);
|
||||||
|
int ScheduleChaletCommand(int CmdID,QByteArray Data);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void LoraStatusRefreshTimerExpired();
|
void CommTimerExpired();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CCHALETLORADEVICE_H
|
#endif // CCHALETLORADEVICE_H
|
||||||
|
|||||||
10
Sources/Chalet/ChaletNetworkMessage.cpp
Normal file
10
Sources/Chalet/ChaletNetworkMessage.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include "ChaletNetworkMessage.h"
|
||||||
|
|
||||||
|
CChaletNetworkMessage::CChaletNetworkMessage(int MessageID, QByteArray Data)
|
||||||
|
{
|
||||||
|
mMessageID = MessageID;
|
||||||
|
mData = Data;
|
||||||
|
|
||||||
|
PendingResponse = false;
|
||||||
|
ResendCounter = 0;
|
||||||
|
}
|
||||||
16
Sources/Chalet/ChaletNetworkMessage.h
Normal file
16
Sources/Chalet/ChaletNetworkMessage.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef HALETNETWORKMESSAGE_H
|
||||||
|
#define HALETNETWORKMESSAGE_H
|
||||||
|
#include <QByteArray>
|
||||||
|
|
||||||
|
class CChaletNetworkMessage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CChaletNetworkMessage(int MessageID, QByteArray Data);
|
||||||
|
|
||||||
|
int mMessageID;
|
||||||
|
QByteArray mData;
|
||||||
|
bool PendingResponse;
|
||||||
|
int ResendCounter;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // HALETNETWORKMESSAGE_H
|
||||||
@ -1,25 +0,0 @@
|
|||||||
#include "LoraDevice.h"
|
|
||||||
|
|
||||||
CLoraDevice::CLoraDevice()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray CLoraDevice::GetLoraFrame(unsigned short DestAddress, unsigned char DestChannel, QByteArray Payload)
|
|
||||||
{
|
|
||||||
QByteArray OutputFrame;
|
|
||||||
OutputFrame.clear();
|
|
||||||
|
|
||||||
//E32 modules frame is [Address_MSB][Address_LSB][Channel][Payload]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char AddressByte = (char)((DestAddress >> 8) & 0x00FF);
|
|
||||||
OutputFrame.append(AddressByte);
|
|
||||||
AddressByte = (char)(DestAddress & 0x00FF);
|
|
||||||
OutputFrame.append(AddressByte);
|
|
||||||
OutputFrame.append(DestChannel);
|
|
||||||
OutputFrame.append(Payload);
|
|
||||||
|
|
||||||
return OutputFrame;
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
#ifndef CLORADEVICE_H
|
|
||||||
#define CLORADEVICE_H
|
|
||||||
#include <QByteArray>
|
|
||||||
|
|
||||||
class CLoraDevice
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CLoraDevice();
|
|
||||||
|
|
||||||
unsigned short mMyLoraAddress;
|
|
||||||
unsigned char mMyLoraChannel;
|
|
||||||
|
|
||||||
QByteArray GetLoraFrame(unsigned short DestAddress,unsigned char DestChannel,QByteArray Payload);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CLORADEVICE_H
|
|
||||||
@ -180,6 +180,20 @@ void CEthernetNetworkServer::DeviceSocketDataAvail()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case ID_CHALET_INTERFACE:
|
||||||
|
{
|
||||||
|
if(mDevicesMgrHandle->CreateNewChaletInterface(DeviceAddress,(CAbstractNetworkCommIF*)NetworkIF) == RET_OK)
|
||||||
|
{
|
||||||
|
Result = RES_CREATION_SUCCESS;
|
||||||
|
qDebug("Created new Chalet Interface");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Result = RES_CREATION_FAILED;
|
||||||
|
qDebug("Could not create Chalet Interface in ethernet server");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
Result = RES_CREATION_UNKNOWN_DEVICE;
|
Result = RES_CREATION_UNKNOWN_DEVICE;
|
||||||
|
|||||||
@ -8,4 +8,8 @@
|
|||||||
|
|
||||||
#define ETHERNET_NETWORK_STATUS_TIMEOUT 5000
|
#define ETHERNET_NETWORK_STATUS_TIMEOUT 5000
|
||||||
|
|
||||||
|
#define ON_STATE 1
|
||||||
|
#define OFF_STATE 0
|
||||||
|
#define UNKNOWN_STATE -1
|
||||||
|
|
||||||
#endif // GLOBALDEFINE_H
|
#endif // GLOBALDEFINE_H
|
||||||
|
|||||||
113
Sources/LoraNetworkCommIF.cpp
Normal file
113
Sources/LoraNetworkCommIF.cpp
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
#include "LoraNetworkCommIF.h"
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
|
||||||
|
CLoraNetworkCommIF::CLoraNetworkCommIF()
|
||||||
|
{
|
||||||
|
connect(&mLoraDeviceSerialPort,SIGNAL(readyRead()),this,SLOT(LoraDeviceNewDataReady()));
|
||||||
|
|
||||||
|
mLoraMagicResponse.clear();
|
||||||
|
mLoraMagicResponse.append(0xDE);
|
||||||
|
mLoraMagicResponse.append(0xAD);
|
||||||
|
mLoraMagicResponse.append(0xBE);
|
||||||
|
mLoraMagicResponse.append(0xEF);
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray CLoraNetworkCommIF::GetLoraFrame(unsigned short DestAddress, unsigned char DestChannel, QByteArray Payload)
|
||||||
|
{
|
||||||
|
QByteArray OutputFrame;
|
||||||
|
OutputFrame.clear();
|
||||||
|
|
||||||
|
//E32 modules frame is [Address_MSB][Address_LSB][Channel][Payload]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
char AddressByte = (char)((DestAddress >> 8) & 0x00FF);
|
||||||
|
OutputFrame.append(AddressByte);
|
||||||
|
AddressByte = (char)(DestAddress & 0x00FF);
|
||||||
|
OutputFrame.append(AddressByte);
|
||||||
|
OutputFrame.append(DestChannel);
|
||||||
|
OutputFrame.append(Payload);
|
||||||
|
|
||||||
|
return OutputFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLoraNetworkCommIF::SetLoraSerialPortSettings(QString PortName, qint32 BaudRate)
|
||||||
|
{
|
||||||
|
mLoraSerialPortName = PortName;
|
||||||
|
mLoraSerialPortBaudRate = BaudRate;
|
||||||
|
|
||||||
|
if(mLoraDeviceSerialPort.isOpen())
|
||||||
|
{
|
||||||
|
mLoraDeviceSerialPort.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
mLoraDeviceSerialPort.setPortName(mLoraSerialPortName);
|
||||||
|
if(mLoraDeviceSerialPort.setBaudRate(BaudRate) == false)
|
||||||
|
{
|
||||||
|
qDebug("Invalid Lora Device serial port baud rate...");
|
||||||
|
}
|
||||||
|
|
||||||
|
//The other serial port parameters (parity, stop bits, data bits) are all set to mentally sane default values so no need to set them.
|
||||||
|
if(mLoraDeviceSerialPort.open(QIODevice::ReadWrite) == false)
|
||||||
|
{
|
||||||
|
qDebug("Could not open Lora device port");
|
||||||
|
return RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug("Lora serial port opened");
|
||||||
|
return RET_OK;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLoraNetworkCommIF::SendLoraFrame(unsigned short DestAddress, unsigned char DestChannel, QByteArray Payload)
|
||||||
|
{
|
||||||
|
mLoraDeviceSerialPort.write(GetLoraFrame(DestAddress,DestChannel,Payload));
|
||||||
|
mLoraDeviceSerialPort.waitForBytesWritten(500);
|
||||||
|
return RET_OK;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CLoraNetworkCommIF::LoraDeviceNewDataReady()
|
||||||
|
{
|
||||||
|
QByteArray NewData = mLoraDeviceSerialPort.readAll();
|
||||||
|
|
||||||
|
// QString Printf = "New Lora Data: ";
|
||||||
|
|
||||||
|
AnalyzeRxBuffer(NewData);
|
||||||
|
|
||||||
|
// for(int i = 0; i < NewData.size(); i++)
|
||||||
|
// {
|
||||||
|
|
||||||
|
|
||||||
|
// int snatch = NewData.at(i) & 0xFF;
|
||||||
|
|
||||||
|
//// mRxLoraTestMsgBuf <<= 8;
|
||||||
|
//// mRxLoraTestMsgBuf |= snatch;
|
||||||
|
//// if(mRxLoraTestMsgBuf == (qint32)LORA_MAGIC_WORD)
|
||||||
|
//// {
|
||||||
|
//// SendLoraFrame(6,4,mLoraMagicResponse);
|
||||||
|
//// qDebug("Magic word received, sending magic response!");
|
||||||
|
//// }
|
||||||
|
|
||||||
|
// QString bleh;
|
||||||
|
// bleh = QString().asprintf("0x%X - ",snatch);
|
||||||
|
// Printf.append(bleh);
|
||||||
|
// }
|
||||||
|
// qDebug("%s",qPrintable(Printf));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLoraNetworkCommIF::NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
mDevicePtr->NewDeviceFrameReceived(DeviceID,DeviceAddress,MessageID,DataSize,Data);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CLoraNetworkCommIF::SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
|
||||||
|
{
|
||||||
|
QByteArray Packet = GetTxPacket(MessageID,0,Data.data(),DataSize,DeviceAddress,DeviceID);
|
||||||
|
SendLoraFrame(6,4,Packet);
|
||||||
|
// SendLoraFrame(4,4,Packet);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
45
Sources/LoraNetworkCommIF.h
Normal file
45
Sources/LoraNetworkCommIF.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#ifndef CLORANETWORKCOMMIF_H
|
||||||
|
#define CLORANETWORKCOMMIF_H
|
||||||
|
#include <QByteArray>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSerialPort>
|
||||||
|
#include "NetworkProtocol.h"
|
||||||
|
#include "AbstractNetworkInterface.h"
|
||||||
|
#include "NetworkDevice.h"
|
||||||
|
#define LORA_MAGIC_WORD 0xBAADCAFE
|
||||||
|
|
||||||
|
|
||||||
|
class CLoraNetworkCommIF : public QObject, public CNetworkProtocol, public CAbstractNetworkCommIF
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CLoraNetworkCommIF();
|
||||||
|
|
||||||
|
QString mLoraSerialPortName;
|
||||||
|
qint32 mLoraSerialPortBaudRate;
|
||||||
|
|
||||||
|
|
||||||
|
unsigned short mMyLoraAddress;
|
||||||
|
unsigned char mMyLoraChannel;
|
||||||
|
QSerialPort mLoraDeviceSerialPort;
|
||||||
|
|
||||||
|
int SendLoraFrame(unsigned short DestAddress,unsigned char DestChannel,QByteArray Payload);
|
||||||
|
int SetLoraSerialPortSettings(QString PortName, qint32 BaudRate);
|
||||||
|
|
||||||
|
//NetworkProtocol implementation
|
||||||
|
int NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
//NetworkCommIF implementation
|
||||||
|
virtual int SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QByteArray GetLoraFrame(unsigned short DestAddress,unsigned char DestChannel,QByteArray Payload);
|
||||||
|
qint32 mRxLoraTestMsgBuf;
|
||||||
|
QByteArray mLoraMagicResponse;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void LoraDeviceNewDataReady();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CLORADEVICE_H
|
||||||
@ -15,7 +15,12 @@ CMasterCtrl::CMasterCtrl()
|
|||||||
mSystemTrayManager->mProgramHandle = this;
|
mSystemTrayManager->mProgramHandle = this;
|
||||||
mSettingsWindow = new CSettingsWindow();
|
mSettingsWindow = new CSettingsWindow();
|
||||||
mSettingsWindow->mProgramHandle = this;
|
mSettingsWindow->mProgramHandle = this;
|
||||||
mChaletLora = new CChaletLoraDevice;
|
|
||||||
|
mChaletLoraNetworkCommInterface = new CLoraNetworkCommIF();
|
||||||
|
mChaletLoraNetworkCommInterface->mMyLoraAddress = 5;
|
||||||
|
mChaletLoraNetworkCommInterface->mMyLoraChannel = 4;
|
||||||
|
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraNetworkCommInterface);
|
||||||
|
// mChaletLoraInterface = new CChaletLoraInterface(mRooftopTowerLoraDevice);
|
||||||
|
|
||||||
|
|
||||||
mEthernetNetworkServer = new CEthernetNetworkServer;
|
mEthernetNetworkServer = new CEthernetNetworkServer;
|
||||||
@ -36,7 +41,8 @@ CMasterCtrl::~CMasterCtrl()
|
|||||||
delete mEthernetNetworkServer;
|
delete mEthernetNetworkServer;
|
||||||
delete mContactsRepository;
|
delete mContactsRepository;
|
||||||
delete mSprinklerManager;
|
delete mSprinklerManager;
|
||||||
delete mChaletLora;
|
delete mChaletLoraNetworkCommInterface;
|
||||||
|
delete mChaletLoraDevice;
|
||||||
// delete mMasterCtrlSettings;
|
// delete mMasterCtrlSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,6 +61,7 @@ void CMasterCtrl::Start()
|
|||||||
// FrameBuffer.seek(0);
|
// FrameBuffer.seek(0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mContactsRepository->LoadContacts();
|
mContactsRepository->LoadContacts();
|
||||||
|
|
||||||
mNetworkDevicesManager->mVoipMSInterfaceHandle = mVoipMsSMSClient;
|
mNetworkDevicesManager->mVoipMSInterfaceHandle = mVoipMsSMSClient;
|
||||||
@ -62,6 +69,7 @@ void CMasterCtrl::Start()
|
|||||||
mNetworkDevicesManager->mProgramHandle = this;
|
mNetworkDevicesManager->mProgramHandle = this;
|
||||||
mNetworkDevicesManager->mSprinklerMgrHandle = mSprinklerManager;
|
mNetworkDevicesManager->mSprinklerMgrHandle = mSprinklerManager;
|
||||||
mNetworkDevicesManager->mAvReceiverDevice = mAVReceiverDevice;
|
mNetworkDevicesManager->mAvReceiverDevice = mAVReceiverDevice;
|
||||||
|
mNetworkDevicesManager->mChaletLoraDevice = mChaletLoraDevice;
|
||||||
|
|
||||||
|
|
||||||
mEthernetNetworkServer->mDevicesMgrHandle = mNetworkDevicesManager;
|
mEthernetNetworkServer->mDevicesMgrHandle = mNetworkDevicesManager;
|
||||||
@ -84,8 +92,9 @@ void CMasterCtrl::Start()
|
|||||||
|
|
||||||
mAVReceiverDevice->Start();
|
mAVReceiverDevice->Start();
|
||||||
|
|
||||||
|
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM3",QSerialPort::Baud9600);
|
||||||
|
mChaletLoraDevice->Start();
|
||||||
|
|
||||||
mChaletLora->Init();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,9 @@
|
|||||||
#include "ContactRepository.h"
|
#include "ContactRepository.h"
|
||||||
#include "SprinklerMgr.h"
|
#include "SprinklerMgr.h"
|
||||||
#include "ChaletLoraDevice.h"
|
#include "ChaletLoraDevice.h"
|
||||||
|
//#include "ChaletLoraInterface.h"
|
||||||
|
#include "LoraNetworkCommIF.h"
|
||||||
|
|
||||||
//#include "AppIconWidget.h"
|
//#include "AppIconWidget.h"
|
||||||
|
|
||||||
class CMasterCtrl : public QObject
|
class CMasterCtrl : public QObject
|
||||||
@ -34,7 +37,10 @@ public:
|
|||||||
CEthernetNetworkServer *mEthernetNetworkServer;
|
CEthernetNetworkServer *mEthernetNetworkServer;
|
||||||
CContactRepository *mContactsRepository;
|
CContactRepository *mContactsRepository;
|
||||||
CSprinklerMgr *mSprinklerManager;
|
CSprinklerMgr *mSprinklerManager;
|
||||||
CChaletLoraDevice *mChaletLora;
|
|
||||||
|
CChaletLoraDevice *mChaletLoraDevice;
|
||||||
|
// CChaletLoraInterface *mChaletLoraInterface;
|
||||||
|
CLoraNetworkCommIF *mChaletLoraNetworkCommInterface;
|
||||||
// CAppIconWidget mAppWidget;
|
// CAppIconWidget mAppWidget;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@ CNetworkDevicesMgr::CNetworkDevicesMgr()
|
|||||||
mProgramHandle = 0;
|
mProgramHandle = 0;
|
||||||
mSprinklerMgrHandle = 0;
|
mSprinklerMgrHandle = 0;
|
||||||
mAvReceiverDevice = 0;
|
mAvReceiverDevice = 0;
|
||||||
|
mChaletLoraDevice = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CNetworkDevicesMgr::~CNetworkDevicesMgr()
|
CNetworkDevicesMgr::~CNetworkDevicesMgr()
|
||||||
@ -92,6 +93,17 @@ int CNetworkDevicesMgr::CreateNewAvReceiverInterface(int Address, CAbstractNetwo
|
|||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CNetworkDevicesMgr::CreateNewChaletInterface(int Address, CAbstractNetworkCommIF *NetworkIF)
|
||||||
|
{
|
||||||
|
if(mChaletLoraDevice == 0)
|
||||||
|
{
|
||||||
|
return RET_ERROR;
|
||||||
|
}
|
||||||
|
CChaletInterface *ChaletInterface = new CChaletInterface(Address, NetworkIF,mChaletLoraDevice);
|
||||||
|
mNetworkDevicesList.append((CNetworkDevice*)ChaletInterface);
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
|
void CNetworkDevicesMgr::EthernetNetworkDeviceDisconnected(CNetworkDevice *Device)
|
||||||
{
|
{
|
||||||
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
|
qDebug("Device disconnected. ID: %d, Address: %d",Device->GetDeviceID(),Device->GetDeviceAddress());
|
||||||
|
|||||||
@ -7,6 +7,8 @@
|
|||||||
#include "SprinklerInterface.h"
|
#include "SprinklerInterface.h"
|
||||||
#include "AbstractNetworkInterface.h"
|
#include "AbstractNetworkInterface.h"
|
||||||
#include "AvReceiverInterface.h"
|
#include "AvReceiverInterface.h"
|
||||||
|
#include "ChaletInterface.h"
|
||||||
|
|
||||||
#include "QList"
|
#include "QList"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
@ -15,6 +17,7 @@ class CMasterCtrl;
|
|||||||
class CContactRepository;
|
class CContactRepository;
|
||||||
class CSprinklerMgr;
|
class CSprinklerMgr;
|
||||||
class CAVReceiverDevice;
|
class CAVReceiverDevice;
|
||||||
|
class CChaletLoraDevice;
|
||||||
|
|
||||||
class CNetworkDevicesMgr: public QObject
|
class CNetworkDevicesMgr: public QObject
|
||||||
{
|
{
|
||||||
@ -30,12 +33,14 @@ public:
|
|||||||
int CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF);
|
int CreateNewSprinklerDevice(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||||
int CreateNewSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
int CreateNewSprinklerInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||||
int CreateNewAvReceiverInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
int CreateNewAvReceiverInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||||
|
int CreateNewChaletInterface(int Address, CAbstractNetworkCommIF *NetworkIF);
|
||||||
|
|
||||||
int FindDeviceByPtr(CNetworkDevice *Device);
|
int FindDeviceByPtr(CNetworkDevice *Device);
|
||||||
CNetworkDevice *GetDevice(int DeviceID, int Address);
|
CNetworkDevice *GetDevice(int DeviceID, int Address);
|
||||||
QList<CNetworkDevice*> GetDevices(int DeviceID);
|
QList<CNetworkDevice*> GetDevices(int DeviceID);
|
||||||
|
|
||||||
CAVReceiverDevice *mAvReceiverDevice;
|
CAVReceiverDevice *mAvReceiverDevice;
|
||||||
|
CChaletLoraDevice *mChaletLoraDevice;
|
||||||
CVoipMsSMSClient *mVoipMSInterfaceHandle;
|
CVoipMsSMSClient *mVoipMSInterfaceHandle;
|
||||||
CContactRepository *mContactRepositoryHandle;
|
CContactRepository *mContactRepositoryHandle;
|
||||||
CMasterCtrl *mProgramHandle;
|
CMasterCtrl *mProgramHandle;
|
||||||
|
|||||||
@ -351,7 +351,7 @@ void CNetworkProtocol::PrepareForNewPacket()
|
|||||||
int CNetworkProtocol::AnalyzeRxBuffer(QByteArray Buffer)
|
int CNetworkProtocol::AnalyzeRxBuffer(QByteArray Buffer)
|
||||||
{
|
{
|
||||||
int ret = PROTOCOL_RET_ERROR_EMPTY_BUFFER;
|
int ret = PROTOCOL_RET_ERROR_EMPTY_BUFFER;
|
||||||
qDebug("Rx %d bytes",Buffer.size());
|
// qDebug("Rx %d bytes",Buffer.size());
|
||||||
for(int i = 0; i < Buffer.size(); i++)
|
for(int i = 0; i < Buffer.size(); i++)
|
||||||
{
|
{
|
||||||
ret = RxStateMachine(Buffer.at(i));
|
ret = RxStateMachine(Buffer.at(i));
|
||||||
|
|||||||
@ -58,6 +58,8 @@ enum DEVICES_IDS
|
|||||||
ID_SPRINKLER_INTERFACE,
|
ID_SPRINKLER_INTERFACE,
|
||||||
ID_DEADBOLT_INTERFACE,
|
ID_DEADBOLT_INTERFACE,
|
||||||
ID_AVRECEIVER_INTERFACE,
|
ID_AVRECEIVER_INTERFACE,
|
||||||
|
ID_CHALET_INTERFACE,
|
||||||
|
ID_CHALET_DEVICE,
|
||||||
ID_NB_DEVICE_ID
|
ID_NB_DEVICE_ID
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -246,4 +248,51 @@ enum AV_RECEIVER_INTERFACE_CMDS
|
|||||||
MAX_AV_RECEIVER_INTERFACE_CMD
|
MAX_AV_RECEIVER_INTERFACE_CMD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum CHALET_INTERFACE_CMDS
|
||||||
|
{
|
||||||
|
CHALET_INTERFACE_ACK = 1,
|
||||||
|
CHALET_INTERFACE_GENERAL_STATUS_REQUEST,
|
||||||
|
CHALET_INTERFACE_GENERAL_STATUS_RESPONSE,
|
||||||
|
CHALET_INTERFACE_AC_POWER_STATE_STATUS_REQUEST,
|
||||||
|
CHALET_INTERFACE_AC_POWER_STATE_STATUS_RESPONSE,
|
||||||
|
CHALET_INTERFACE_AC_POWER_SET_STATE_REQUEST,
|
||||||
|
CHALET_INTERFACE_AC_POWER_SET_STATE_RESPONSE,
|
||||||
|
CHALET_INTERFACE_BATTERY_VOLTAGE_REQUEST,
|
||||||
|
CHALET_INTERFACE_BATTERY_VOLTAGE_RESPONSE,
|
||||||
|
CHALET_INTERFACE_WIFI_SET_STATE_REQUEST,
|
||||||
|
CHALET_INTERFACE_WIFI_SET_STATE_RESPONSE,
|
||||||
|
CHALET_INTERFACE_DO_HARAKIRI_REQUEST,
|
||||||
|
CHALET_INTERFACE_DO_HARAKIRI_RESPONSE,
|
||||||
|
CHALET_INTERFACE_REBOOT_CPU_REQUEST,
|
||||||
|
CHALET_INTERFACE_REBOOT_CPU_RESPONSE,
|
||||||
|
|
||||||
|
MAX_CHALET_INTERFACE_CMD
|
||||||
|
};
|
||||||
|
|
||||||
|
enum CHALET_CMDS
|
||||||
|
{
|
||||||
|
CHALET_ACK = 1,
|
||||||
|
CHALET_GENERAL_STATUS_REQUEST, //2
|
||||||
|
CHALET_GENERAL_STATUS_RESPONSE, //3
|
||||||
|
CHALET_AC_POWER_STATE_STATUS_REQUEST,
|
||||||
|
CHALET_AC_POWER_STATE_STATUS_RESPONSE,
|
||||||
|
CHALET_AC_POWER_SET_STATE_REQUEST,
|
||||||
|
CHALET_AC_POWER_SET_STATE_RESPONSE,
|
||||||
|
CHALET_BATTERY_VOLTAGE_REQUEST,
|
||||||
|
CHALET_BATTERY_VOLTAGE_RESPONSE, //9
|
||||||
|
CHALET_BATTERY_CURRENT_REQUEST,
|
||||||
|
CHALET_BATTERY_CURRENT_RESPONSE,
|
||||||
|
CHALET_WIFI_STATUS_REQUEST,
|
||||||
|
CHALET_WIFI_STATUS_RESPONSE, //D
|
||||||
|
CHALET_WIFI_SET_STATE_REQUEST,
|
||||||
|
CHALET_WIFI_SET_STATE_RESPONSE, //F
|
||||||
|
CHALET_DO_HARAKIRI_REQUEST,
|
||||||
|
CHALET_DO_HARAKIRI_CONFIRMATION,
|
||||||
|
CHALET_REBOOT_CPU_REQUEST, //12
|
||||||
|
CHALET_REBOOT_CPU_RESPONSE,
|
||||||
|
|
||||||
|
|
||||||
|
MAX_CHALET_CMD
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -420,10 +420,10 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
if(EarlierDate < mVOIPMsSettings.mStartDate )
|
if(EarlierDate < mVOIPMsSettings.mStartDate )
|
||||||
{
|
{
|
||||||
//Clipping span.
|
//Clipping span.
|
||||||
qDebug("Clipping span...");
|
// qDebug("Clipping span...");
|
||||||
EarlierDate = mVOIPMsSettings.mStartDate;
|
EarlierDate = mVOIPMsSettings.mStartDate;
|
||||||
|
|
||||||
qDebug("Requesting data for last block of span");
|
// qDebug("Requesting data for last block of span");
|
||||||
mSMSDownloadState = VOIPMS_SMS_DOWNLOAD_LAST_BLOCK_MSGS_STATE;
|
mSMSDownloadState = VOIPMS_SMS_DOWNLOAD_LAST_BLOCK_MSGS_STATE;
|
||||||
}
|
}
|
||||||
// qDebug("Continue receiving from %s to %s ...",mCurStartDate.toString("yyyy-MM-dd").toUtf8().data(),EarlierDate.toString("yyyy-MM-dd").toUtf8().data());
|
// qDebug("Continue receiving from %s to %s ...",mCurStartDate.toString("yyyy-MM-dd").toUtf8().data(),EarlierDate.toString("yyyy-MM-dd").toUtf8().data());
|
||||||
|
|||||||
2786
compile_commands.json
Normal file
2786
compile_commands.json
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user