Nouvel Ampli

Lora Interface
This commit is contained in:
2022-12-20 13:00:16 -05:00
parent a98f292e65
commit ac4e5aeb93
11 changed files with 183 additions and 7 deletions
@@ -2,15 +2,76 @@
CLoraModuleInterface::CLoraModuleInterface()
{
connect(&mLoraModuleIFSerialPort,SIGNAL(readyRead()),this,SLOT(NewLoraModuleIFDataReady()));
mLoraModuleIFStatusTimer = new QTimer();
mLoraModuleIFStatusTimer->setSingleShot(false);
mLoraModuleIFStatusTimer->setInterval(1000);
mLoraModuleIFStatusTimer->start();
connect(mLoraModuleIFStatusTimer,SIGNAL(timeout()),this,SLOT(LoraModuleStatusTimerExpired()));
}
CLoraModuleInterface::~CLoraModuleInterface()
{
delete mLoraModuleIFStatusTimer;
}
//This the handling of the Microcontroller (LoraModuleInterface)
int CLoraModuleInterface::NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data)
{
return RET_OK;
}
//This is to answer to CChaletDevice requests
int CLoraModuleInterface::SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray *Data)
{
return RET_OK;
}
void CLoraModuleInterface::LoraModuleStatusTimerExpired()
{
}
int CLoraModuleInterface::SetLoraModuleInterfaceParameters(QString ComPort, qint32 BaudRate)
{
mLoraModuleIFComPortName = ComPort;
mLoraModuleIFComPortBaudRate = BaudRate;
if(mLoraModuleIFSerialPort.isOpen())
{
mLoraModuleIFSerialPort.close();
}
mLoraModuleIFSerialPort.setPortName(mLoraModuleIFComPortName);
if(mLoraModuleIFSerialPort.setBaudRate(mLoraModuleIFComPortBaudRate) == 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(mLoraModuleIFSerialPort.open(QIODevice::ReadWrite) == false)
{
qDebug("Could not open Lora device port");
return RET_ERROR;
}
qDebug("Lora serial port opened");
return RET_OK;
return RET_OK;
}
void CLoraModuleInterface::NewLoraModuleIFDataReady()
{
QByteArray NewData = mLoraModuleIFSerialPort.readAll();
AnalyzeRxBuffer(NewData);
}
@@ -7,6 +7,8 @@
#include "NetworkProtocol.h"
#include "AbstractNetworkInterface.h"
#include "NetworkDevice.h"
#include <QTimer>
#include <QSerialPort>
class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAbstractNetworkCommIF
{
@@ -14,6 +16,16 @@ class CLoraModuleInterface : public QObject, public CNetworkProtocol, public CAb
public:
CLoraModuleInterface();
~CLoraModuleInterface();
int SetLoraModuleInterfaceParameters(QString ComPort,qint32 BaudRate);
QTimer *mLoraModuleIFStatusTimer;
QSerialPort mLoraModuleIFSerialPort;
QString mLoraModuleIFComPortName;
qint32 mLoraModuleIFComPortBaudRate;
@@ -22,6 +34,10 @@ public:
//NetworkCommIF implementation
virtual int SendNetworkMessage(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray *Data);
public slots:
void LoraModuleStatusTimerExpired();
void NewLoraModuleIFDataReady();
};
#endif // LORAMODULEINTERFACE_H