ZT/sources/Modbus/ModbusCCMgr.h

50 lines
1.2 KiB
C++

#ifndef CMODBUSSLAVE_H
#define CMODBUSSLAVE_H
#include <QObject>
#include "ModbusBackend.h"
#include <QTcpServer>
#include "ModbusRepository.h"
#include <QTimer>
class CModbusCCMgr : public CModbusBackend
{
Q_OBJECT
public:
explicit CModbusCCMgr(CModbusRepository *Repo, int ModbusPort, int DevID);
virtual ~CModbusCCMgr();
int StartModbusCCServer();
bool IsModbusConnected();
virtual void RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length);
virtual void ModbusRequestException(quint8 ExceptionCode, quint8 FctCode);
private:
QTcpServer *mModbusServer;
int mModbusPort;
QTimer *mZTWatchdogTimer, *mCCWatchdogTimer;
qint16 mZTWatchdog;
qint16 mCCWatchdogState;
bool mCCLinkState;
QDateTime *mLastDateTime;
signals:
void RepoHasChanged();
void ModbusCCConnected();
void ModbusCCDisconnected();
void ModbusCCLinkLost();
void ModbusCCLinkRecovered();
void ModbusDateTimeReceived(QDateTime *DateTime);
public slots:
void NewModbusConnection();
void ConnectionLost();
void ModbusZTWatchdogTimeout();
void ModbusCCWatchdogTimeout();
};
#endif // CMODBUSSLAVE_H