Masterctrl/Sources/LoraNetworkCommIF.h
2021-05-26 04:15:57 -04:00

46 lines
1.3 KiB
C++

#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