Commit suite au Fuck-Up de Windows

This commit is contained in:
jfmartel 2023-03-06 08:17:08 -05:00
parent ac4e5aeb93
commit 526f4f76d8
16 changed files with 471 additions and 29 deletions

Binary file not shown.

264
MasterCtrl.pro.user.5a351af Normal file
View File

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.2.1, 2023-02-25T13:35:02. -->
<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"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.14.2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.14.2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{dc2b548b-27bc-4e25-8500-cc36640735d8}</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.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="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="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">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.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="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="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>
<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"></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 locally</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></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="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">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">MasterCtrl</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/Main/PicDev/Projets/MasterCtrl/Masterctrl/MasterCtrl.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">MasterCtrl.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">D:/Main/PicDev/Projets/MasterCtrl/Masterctrl</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>

View File

@ -18,6 +18,7 @@ CLoraSettingsGui::SetSettings(CSettings *settings)
{
ui->mLoraAddressSpinBx->setValue(settings->mChaletLoraAddress);
ui->mComportComboBox->setCurrentText(settings->mChaletComPort);
ui->mUseLoraIFCheckBx->setChecked(settings->mChaletUseLoraIF);
return RET_OK;
}
@ -36,3 +37,8 @@ QString CLoraSettingsGui::GetChaletLoraComPort()
{
return ui->mComportComboBox->currentText();
}
bool CLoraSettingsGui::GetChaletUseLoraIF()
{
return ui->mUseLoraIFCheckBx->isChecked();
}

View File

@ -20,6 +20,7 @@ public:
QString GetChaletLoraComPort();
quint8 GetChaletLoraChannel();
quint16 GetChaletLoraAddress();
bool GetChaletUseLoraIF();
private:
Ui::CLoraSettingsGui *ui;

View File

@ -188,6 +188,19 @@
Chaloupe = 8</string>
</property>
</widget>
<widget class="QCheckBox" name="mUseLoraIFCheckBx">
<property name="geometry">
<rect>
<x>20</x>
<y>160</y>
<width>191</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Use LoraInterface (restart needed)</string>
</property>
</widget>
</widget>
</widget>
<resources/>

View File

@ -235,6 +235,7 @@ void CSettingsWindow::DoneButtonClicked(bool checked)
Settings->mChaletComPort = mLoraSettingsPage->GetChaletLoraComPort();
Settings->mChaletLoraAddress = mLoraSettingsPage->GetChaletLoraAddress();
Settings->mChaletLoraChannel = mLoraSettingsPage->GetChaletLoraChannel();
Settings->mChaletUseLoraIF = mLoraSettingsPage->GetChaletUseLoraIF();
mProgramHandle->SaveSettings(Settings);
mProgramHandle->SettingsWindowClosed();

View File

@ -21,12 +21,71 @@ CLoraModuleInterface::~CLoraModuleInterface()
//This the handling of the Microcontroller (LoraModuleInterface)
int CLoraModuleInterface::NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
{
switch(MessageID)
{
case LORA_IF_GET_STATUS_RESPONSE:
{
unsigned char model = Data.at(0);
qDebug("LoraModuleInterface status received : %d",model);
break;
}
case LORA_IF_SEND_FRAME_RESPONSE:
{
qDebug("LoraModuleInterface sent frame to end Lora device");
break;
}
case LORA_IF_NEW_FRAME_RESPONSE: //LoraInterface received a message from the Lora end point (chalet for example). Let's decode it and send it to the destination device
{
CNetworkProtocol *mTempProtocol = new CNetworkProtocol; //Let's instanciate a temp protocol class to avoid messing with our own derived class...
int FwdDeviceID;
int FwdDeviceAddress;
int FwdMessageID;
int FwdDataSize;
QByteArray FwdData;
if(mTempProtocol->ProtocolAnalyseBufferStatically(Data,FwdDeviceID,FwdDeviceAddress,FwdMessageID,FwdDataSize,FwdData) == PROTOCOL_RET_OK_PACKET_COMPLETE)
{
mDevicePtr->NewDeviceFrameReceived(FwdDeviceID,FwdDeviceAddress,FwdMessageID,FwdDataSize,FwdData);
}
else
{
qDebug("LoraModuleInterface received an invalid packet from end Lora device in NewFrameReceived");
}
delete mTempProtocol;
break;
}
case LORA_IF_GET_MODULE_CONFIG_RESPONSE:
{
break;
}
case LORA_IF_GET_RSSI_RESPONSE:
{
break;
}
case LORA_IF_SET_MODULE_CONFIG_RESPONSE:
{
break;
}
case LORA_IF_GET_STATUS_REQUEST:
case LORA_IF_SEND_FRAME_REQUEST:
case LORA_IF_GET_MODULE_CONFIG_REQUEST:
case LORA_IF_GET_RSSI_REQUEST:
case LORA_IF_SET_MODULE_CONFIG_REQUEST:
default:
{
qDebug("CLoraModuleInterface: Received invalid response from LoraModule: %d",MessageID);
break;
}
}
return RET_OK;
}
//This is to answer to CChaletDevice requests
//This is the CAbstractNetworkCommIF class implementation (to answer to CChaletDevice requests).
int CLoraModuleInterface::SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray *Data)
{
qDebug("LoraInterfce: New frame received from MasterCtrl class");
return RET_OK;
}
@ -34,7 +93,9 @@ int CLoraModuleInterface::SendNetworkMessage(int DeviceID, int DeviceAddress, in
void CLoraModuleInterface::LoraModuleStatusTimerExpired()
{
QByteArray Packet = GetTxPacket(LORA_IF_GET_STATUS_REQUEST,0,0,0,1,ID_LORA_INTERFACE);
mLoraModuleIFSerialPort.write(Packet);
mLoraModuleIFSerialPort.waitForBytesWritten(500);
}
int CLoraModuleInterface::SetLoraModuleInterfaceParameters(QString ComPort, qint32 BaudRate)
@ -61,7 +122,7 @@ int CLoraModuleInterface::SetLoraModuleInterfaceParameters(QString ComPort, qint
return RET_ERROR;
}
qDebug("Lora serial port opened");
qDebug("LoraModuleInterface serial port opened");
return RET_OK;

View File

@ -9,6 +9,7 @@
#include "NetworkDevice.h"
#include <QTimer>
#include <QSerialPort>
#include <QByteArrayList>
class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAbstractNetworkCommIF
{
@ -16,7 +17,7 @@ class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAb
public:
CLoraModuleInterface();
~CLoraModuleInterface();
virtual ~CLoraModuleInterface();
int SetLoraModuleInterfaceParameters(QString ComPort,qint32 BaudRate);

View File

@ -66,7 +66,7 @@ int CLoraNetworkCommIF::SendLoraFrame(unsigned short DestAddress, unsigned char
{
mLoraDeviceSerialPort.write(GetLoraFrame(DestAddress,DestChannel,Payload));
mLoraDeviceSerialPort.write(Payload);
// mLoraDeviceSerialPort.write(Payload);
mLoraDeviceSerialPort.waitForBytesWritten(500);
return RET_OK;
@ -77,7 +77,7 @@ void CLoraNetworkCommIF::LoraDeviceNewDataReady()
{
QByteArray NewData = mLoraDeviceSerialPort.readAll();
// QString Printf = "New Lora Data: ";
// QString Printf = "New Lora Data: ";
AnalyzeRxBuffer(NewData);

View File

@ -7,6 +7,10 @@
CMasterCtrl::CMasterCtrl()
{
qDebug("Creation...");
mChaletLoraModuleInterface = 0;
mChaletLoraNetworkCommInterface = 0;
// mDeadBoltDevice = new CDeadboltDevice(1);
mAVReceiverDevice = new CAVReceiverDevice();
mVoipMsSMSClient = new CVoipMsSMSClient;
@ -15,12 +19,24 @@ CMasterCtrl::CMasterCtrl()
mSettingsWindow = new CSettingsWindow();
mSettingsWindow->mProgramHandle = this;
mSettingsManager.LoadSettings(&mMasterCtrlSettings);
if(mMasterCtrlSettings.mChaletUseLoraIF == true)
{
mChaletLoraModuleInterface = new CLoraModuleInterface(); //JFM LoraInterface Dev
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraModuleInterface); //JFM LoraInterface Dev
}
else
{
mChaletLoraNetworkCommInterface = new CLoraNetworkCommIF();//JFM LoraInterface Dev
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraNetworkCommInterface);//JFM LoraInterface Dev
}
// mChaletLoraNetworkCommInterface = new CLoraNetworkCommIF();//JFM LoraInterface Dev
mChaletLoraModuleInterface = new CLoraModuleInterface();
// mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraNetworkCommInterface);//JFM LoraInterface Dev
mChaletLoraDevice = new CChaletLoraDevice(1,mChaletLoraModuleInterface);
// mChaletLoraInterface = new CChaletLoraInterface(mRooftopTowerLoraDevice);
@ -45,8 +61,10 @@ CMasterCtrl::~CMasterCtrl()
delete mEthernetNetworkServer;
delete mContactsRepository;
delete mSprinklerManager;
//delete mChaletLoraNetworkCommInterface; //JFM LoraInterface Dev
delete mChaletLoraModuleInterface;
if(mChaletLoraNetworkCommInterface != 0)
delete mChaletLoraNetworkCommInterface; //JFM LoraInterface Dev
if(mChaletLoraModuleInterface != 0)
delete mChaletLoraModuleInterface;
delete mChaletLoraDevice;
delete mIspindelDevice;
// delete mMasterCtrlSettings;
@ -89,7 +107,7 @@ void CMasterCtrl::Start()
connect(mVoipMsSMSClient,SIGNAL(DIDSFetched(QStringList)),mSettingsWindow,SLOT(DIDsListFetched(QStringList)));
mSettingsManager.LoadSettings(&mMasterCtrlSettings);
mSettingsWindow->SetSettingsData(&mMasterCtrlSettings);
mVoipMsSMSClient->SetVOIPMsSettings(&mMasterCtrlSettings.mVoipMSSettings);
mVoipMsSMSClient->DownloadSMSFromServer();
@ -99,12 +117,21 @@ void CMasterCtrl::Start()
mAVReceiverDevice->Start();
/* //JFM LoraInterface Dev
mChaletLoraNetworkCommInterface->mMyLoraAddress = 5;
mChaletLoraNetworkCommInterface->mMyLoraChannel = 4;
mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel);
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
*/ //JFM LoraInterface Dev
//JFM LoraInterface Dev
if(mMasterCtrlSettings.mChaletUseLoraIF)
{
mChaletLoraModuleInterface->SetLoraModuleInterfaceParameters(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
}
else
{
mChaletLoraNetworkCommInterface->mMyLoraAddress = 5;
mChaletLoraNetworkCommInterface->mMyLoraChannel = 4;
mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel);
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
}
//JFM LoraInterface Dev
// mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings("COM5",QSerialPort::Baud9600);
mChaletLoraDevice->Start();
@ -152,8 +179,16 @@ unsigned int CMasterCtrl::SettingsWindowClosed()
{
mVoipMsSMSClient->SetVOIPMsSettings(&mMasterCtrlSettings.mVoipMSSettings);
mVoipMsSMSClient->DownloadSMSFromServer();
//mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel); //JFM LoraInterface Dev
//mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600); //JFM LoraInterface Dev
if(mChaletLoraModuleInterface != 0)
{
mChaletLoraModuleInterface->SetLoraModuleInterfaceParameters(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600);
}
if(mChaletLoraNetworkCommInterface != 0)
{
mChaletLoraNetworkCommInterface->SetLoraDestinationAddress(mMasterCtrlSettings.mChaletLoraAddress,mMasterCtrlSettings.mChaletLoraChannel); //JFM LoraInterface Dev
mChaletLoraNetworkCommInterface->SetLoraSerialPortSettings(mMasterCtrlSettings.mChaletComPort,QSerialPort::Baud9600); //JFM LoraInterface Dev
}
return RET_OK;
}

View File

@ -43,7 +43,7 @@ public:
CChaletLoraDevice *mChaletLoraDevice;
// CChaletLoraInterface *mChaletLoraInterface;
// CLoraNetworkCommIF *mChaletLoraNetworkCommInterface;
CLoraNetworkCommIF *mChaletLoraNetworkCommInterface;
CLoraModuleInterface *mChaletLoraModuleInterface;
// CAppIconWidget mAppWidget;

View File

@ -155,7 +155,7 @@ QByteArray CNetworkProtocol::GetTxPacket(unsigned char MessageID, unsigned char
// }
//}
int CNetworkProtocol::RxStateMachine(unsigned char Data)
int CNetworkProtocol::RxStateMachine(unsigned char Data, bool DoStaticAnalysis)
{
int ret = PROTOCOL_RET_OK_PACKET_INCOMPLETE;
@ -310,11 +310,14 @@ int CNetworkProtocol::RxStateMachine(unsigned char Data)
}
// mDataBuffer = QByteArray(&mRxData[DATA_START],RxSize);
NewFrameReceived(SenderID,SenderAddress,RxCmd,RxSize,mDataBuffer);
ret = PROTOCOL_RET_OK_PACKET_COMPLETE;
if(mIsResetManual == false)
if(DoStaticAnalysis == false)
{
ResetRxStateMachine();
NewFrameReceived(SenderID,SenderAddress,RxCmd,RxSize,mDataBuffer);
if(mIsResetManual == false)
{
ResetRxStateMachine();
}
}
break;
}
@ -360,7 +363,7 @@ int CNetworkProtocol::AnalyzeRxBuffer(QByteArray Buffer)
{
if(ret == PROTOCOL_RET_OK_BAD_HEADER)
{
qDebug("Protocol Bad header");
// qDebug("Protocol Bad header");
}
else
{
@ -376,3 +379,47 @@ void CNetworkProtocol::SetManualPacketReset(bool Manual)
{
mIsResetManual = Manual;
}
int CNetworkProtocol::ProtocolAnalyseBufferStatically(QByteArray InputBuffer, int &BufDeviceID, int &BufDeviceAddress, int &BufMessageID, int &BufDataSize, QByteArray &BufData)
{
int ret = PROTOCOL_RET_ERROR_EMPTY_BUFFER;
for(int i = 0; i < InputBuffer.size(); i++)
{
ret = RxStateMachine(InputBuffer.at(i));
if(ret != PROTOCOL_RET_OK_PACKET_INCOMPLETE)
{
if(ret == PROTOCOL_RET_OK_BAD_HEADER)
{
qDebug("Protocol Bad header");
}
if(ret == PROTOCOL_RET_OK_PACKET_COMPLETE)
{
BufDeviceID = SenderID;
BufDeviceAddress = SenderAddress;
BufMessageID = RxCmd;
BufDataSize = RxSize;
BufData = mDataBuffer;
}
ResetRxStateMachine();
return ret;
}
}
ResetRxStateMachine();
return ret;
}
bool CNetworkProtocol::ProtocolIsBusyReceiving()
{
if(RxState == RxHeader)
{
return false;
}
return true;
}
int CNetworkProtocol::NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
{
return RET_ERROR;
}

View File

@ -18,7 +18,7 @@ public:
void PrepareForNewPacket();
void SetManualPacketReset(bool Manual);
virtual int NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data) = 0;
virtual int NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);// = 0;
enum ProtocolRetValues
{
@ -37,6 +37,8 @@ public:
int ProtocolGetCmd(){return RxCmd;}
int ProtocolGetDataSize(){return RxSize;}
QByteArray ProtocolGetData(){return mDataBuffer;}
int ProtocolAnalyseBufferStatically(QByteArray InputBuffer, int &BufDeviceID, int &BufDeviceAddress, int &BufMessageID, int &BufDataSize, QByteArray &BufData);
bool ProtocolIsBusyReceiving();
private:
@ -44,7 +46,7 @@ private:
unsigned char CalcCRC(char *Buffer, int Size);
// int TxData(unsigned char MessageID,unsigned char Flags,unsigned char *Data,int Size, unsigned char Address,unsigned char ID);
int RxStateMachine(unsigned char Data);
int RxStateMachine(unsigned char Data, bool DoStaticAnalysis = false);
//State Machine states
enum States

View File

@ -54,6 +54,7 @@ void CProgramSettings::LoadDefaultSettings(CSettings *Settings)
Settings->mChaletComPort = "COM3";
Settings->mChaletLoraAddress = 6;
Settings->mChaletLoraChannel = 4;
Settings->mChaletUseLoraIF = true;
}
unsigned int CProgramSettings::SaveSettings(CSettings *SettingsData)
@ -95,6 +96,7 @@ QDataStream &operator<<(QDataStream &out, const CSettings &source)
out << source.mChaletComPort;
out << source.mChaletLoraAddress;
out << source.mChaletLoraChannel;
out << source.mChaletUseLoraIF;
return out;
}
@ -105,6 +107,7 @@ QDataStream &operator>>(QDataStream &in, CSettings &dest)
in >> dest.mChaletComPort;
in >> dest.mChaletLoraAddress;
in >> dest.mChaletLoraChannel;
in >> dest.mChaletUseLoraIF;
return in;
}
@ -154,5 +157,6 @@ CSettings& CSettings::operator =(const CSettings &source)
this->mChaletComPort = source.mChaletComPort;
this->mChaletLoraAddress = source.mChaletLoraAddress;
this->mChaletLoraChannel = source.mChaletLoraChannel;
this->mChaletUseLoraIF = source.mChaletUseLoraIF;
return *this;
}

View File

@ -30,6 +30,7 @@ public:
QString mChaletComPort;
quint16 mChaletLoraAddress;
quint8 mChaletLoraChannel;
bool mChaletUseLoraIF;
CSettings &operator=(const CSettings &source);

View File

@ -11,6 +11,7 @@
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QLabel>
@ -31,6 +32,7 @@ public:
QComboBox *mComportComboBox;
QLabel *label_5;
QLabel *label_6;
QCheckBox *mUseLoraIFCheckBx;
void setupUi(QWidget *CLoraSettingsGui)
{
@ -80,6 +82,9 @@ public:
label_6 = new QLabel(groupBox);
label_6->setObjectName(QString::fromUtf8("label_6"));
label_6->setGeometry(QRect(20, 110, 91, 31));
mUseLoraIFCheckBx = new QCheckBox(groupBox);
mUseLoraIFCheckBx->setObjectName(QString::fromUtf8("mUseLoraIFCheckBx"));
mUseLoraIFCheckBx->setGeometry(QRect(20, 160, 191, 20));
retranslateUi(CLoraSettingsGui);
@ -108,6 +113,7 @@ public:
label_5->setText(QCoreApplication::translate("CLoraSettingsGui", "Com Port:", nullptr));
label_6->setText(QCoreApplication::translate("CLoraSettingsGui", "Chalet = 7\n"
"Chaloupe = 8", nullptr));
mUseLoraIFCheckBx->setText(QCoreApplication::translate("CLoraSettingsGui", "Use LoraInterface (restart needed)", nullptr));
} // retranslateUi
};