66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
#ifndef MODBUSTKTRANSPORT_H
|
|
#define MODBUSTKTRANSPORT_H
|
|
|
|
#include "TKTransportInterface.h"
|
|
#include "ModbusRepository.h"
|
|
#include <QTimer>
|
|
#include "ModbusCCDefs.h"
|
|
|
|
|
|
class CModbusTKTransport : public CTKTransportInterface
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum eModbusTKSMStates
|
|
{
|
|
MODBUS_ZT1_TK_STANDBY_STATE,
|
|
MODBUS_ZT1_TK_SHOW_STATE,
|
|
MODBUS_ZT1_TK_WAIT_FOR_CLEAR_STATE,
|
|
|
|
MODBUS_ZT2_TK_STANDBY_STATE,
|
|
MODBUS_ZT2_TK_SHOW_STATE,
|
|
MODBUS_ZT2_TK_WAIT_FOR_CLEAR_STATE
|
|
};
|
|
|
|
|
|
|
|
CModbusTKTransport(CModbusRepository *Repo);
|
|
~CModbusTKTransport();
|
|
|
|
|
|
int SendTKToCC(int ZT);
|
|
int ClearTK(int ZT);
|
|
unsigned int CancelAllTK();
|
|
|
|
virtual bool IsZT2TKProcessing();
|
|
virtual bool IsZT1TKProcessing();
|
|
virtual bool IsTKProcessing();
|
|
virtual int AddNewZT1Detection(CZTDetectionData Detection);
|
|
virtual int AddNewZT2Detection(CZTDetectionData Detection);
|
|
virtual unsigned int BeginTKEmission();
|
|
virtual unsigned int SetInputStates(bool AN1State, bool ZT1CDVState, bool AN2State, bool ZT2CDVState);
|
|
|
|
|
|
virtual unsigned int CancelMaintenanceCurrentTK();
|
|
virtual unsigned int ExitMaintenance();
|
|
virtual unsigned int EnterMaintenance();
|
|
|
|
private:
|
|
CModbusRepository *mModbusRepo;
|
|
QList<CZTDetectionData> mZT1TKDataList,mZT2TKDataList;
|
|
bool mZT1CDVState, mZT2CDVState;
|
|
bool mMaintenanceMode, mForceZT1Clear, mForceZT2Clear;
|
|
int mModbusTKZT1SMState,mModbusTKZT2SMState;
|
|
QTimer *mZT1TKStateMachineTimer, *mZT2TKStateMachineTimer;
|
|
bool mZT1Clear, mZT2Clear;
|
|
|
|
int RegOffset(qint16 Reg){return (int)Reg-MODBUS_ZT_DATA_BASE_REG;}
|
|
|
|
public slots:
|
|
void ExecZT1SM();
|
|
void ExecZT2SM();
|
|
void ModbusCCUpdated();
|
|
};
|
|
|
|
#endif // MODBUSTKTRANSPORT_H
|