Implement train type & info
This commit is contained in:
parent
fc470c04c0
commit
32a2e9bccd
@ -47,7 +47,7 @@
|
|||||||
//Register addressing
|
//Register addressing
|
||||||
//Outgoing
|
//Outgoing
|
||||||
#define MODBUS_ZT_DATA_BASE_REG 2000
|
#define MODBUS_ZT_DATA_BASE_REG 2000
|
||||||
#define MODBUS_ZT_TABLE_DATA_SIZE 28 //Taille de la table = 28 registres
|
#define MODBUS_ZT_TABLE_DATA_SIZE 28 //Taille de la table en écriture = 28 registres (2000 à 2027)
|
||||||
|
|
||||||
#define MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD 2000
|
#define MODBUS_ZT1_ALARM_DATA_BASE_REG_ADD 2000
|
||||||
#define MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD 2017
|
#define MODBUS_ZT2_ALARM_DATA_BASE_REG_ADD 2017
|
||||||
@ -91,11 +91,19 @@
|
|||||||
#define MODBUS_CC_INHIBIT_ZT2_FLAG_MASK 0x0008
|
#define MODBUS_CC_INHIBIT_ZT2_FLAG_MASK 0x0008
|
||||||
|
|
||||||
#define MODBUS_CC_DATA_BASE_REG_ADD 2028
|
#define MODBUS_CC_DATA_BASE_REG_ADD 2028
|
||||||
#define MODBUS_CC_TABLE_DATA_SIZE 13 //Taille de la table = 28 registres
|
#define MODBUS_CC_TABLE_DATA_SIZE 15 //Taille de la table en lecture = 15 registres (2028 à 2042)
|
||||||
|
|
||||||
|
|
||||||
#define MODBUS_CC_WATCHDOG_BASE_REG_ADD 2028
|
#define MODBUS_CC_WATCHDOG_BASE_REG_ADD 2028
|
||||||
#define MODBUS_CC_AN_BASE_REG_ADD 2029
|
#define MODBUS_CC_AN_BASE_REG_ADD 2029
|
||||||
|
#define MODBUS_CC_ZT1_TRAIN_TYPE_REG_ADD 2030
|
||||||
|
#define MODBUS_CC_ZT2_TRAIN_TYPE_REG_ADD 2031
|
||||||
|
#define MODBUS_CC_ZT1_TRAIN_ID_1_REG_ADD 2032
|
||||||
|
#define MODBUS_CC_ZT1_TRAIN_ID_2_REG_ADD 2033
|
||||||
|
#define MODBUS_CC_ZT1_TRAIN_ID_3_REG_ADD 2034
|
||||||
|
#define MODBUS_CC_ZT2_TRAIN_ID_1_REG_ADD 2035
|
||||||
|
#define MODBUS_CC_ZT2_TRAIN_ID_2_REG_ADD 2036
|
||||||
|
#define MODBUS_CC_ZT2_TRAIN_ID_3_REG_ADD 2037
|
||||||
#define MODBUS_CC_CLK_UPDATE_BASE_REG_ADD 2038
|
#define MODBUS_CC_CLK_UPDATE_BASE_REG_ADD 2038
|
||||||
#define MODUBS_CC_CLK_SEC_BASE_REG_ADD 2039
|
#define MODUBS_CC_CLK_SEC_BASE_REG_ADD 2039
|
||||||
#define MODUBS_CC_CLK_HR_MIN_BASE_REG_ADD 2040
|
#define MODUBS_CC_CLK_HR_MIN_BASE_REG_ADD 2040
|
||||||
|
|||||||
@ -132,6 +132,8 @@ void CModbusCCMgr::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
emit RepoHasChanged();
|
emit RepoHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,3 +162,87 @@ void CModbusCCMgr::ModbusZTWatchdogTimeout()
|
|||||||
mZTWatchdog = 1;
|
mZTWatchdog = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CModbusCCMgr::GetZT1InhibitionFlag()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
qint16 Reg = mModbusRepo->GetSingleReg(MODBUS_CC_AN_BASE_REG_ADD,&OK);
|
||||||
|
|
||||||
|
if(OK)
|
||||||
|
{
|
||||||
|
if((Reg & MODBUS_CC_INHIBIT_ZT1_FLAG_MASK) != 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CModbusCCMgr::GetZT2InhibitionFlag()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
qint16 Reg = mModbusRepo->GetSingleReg(MODBUS_CC_AN_BASE_REG_ADD,&OK);
|
||||||
|
|
||||||
|
if(OK)
|
||||||
|
{
|
||||||
|
if((Reg & MODBUS_CC_INHIBIT_ZT2_FLAG_MASK) != 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QList<qint16> CModbusCCMgr::GetZT1TrainComposition()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
QList<qint16> Compo;
|
||||||
|
Compo = mModbusRepo->GetRegs(MODBUS_CC_ZT1_TRAIN_ID_1_REG_ADD,3,&OK);
|
||||||
|
|
||||||
|
if(OK == false)
|
||||||
|
{
|
||||||
|
Compo << 0 << 0 << 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Compo;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<qint16> CModbusCCMgr::GetZT2TrainComposition()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
QList<qint16> Compo;
|
||||||
|
Compo = mModbusRepo->GetRegs(MODBUS_CC_ZT2_TRAIN_ID_1_REG_ADD,3,&OK);
|
||||||
|
|
||||||
|
if(OK == false)
|
||||||
|
{
|
||||||
|
Compo << 0 << 0 << 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Compo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
qint16 CModbusCCMgr::GetZT1TrainType()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
qint16 Reg = mModbusRepo->GetSingleReg(MODBUS_CC_ZT1_TRAIN_TYPE_REG_ADD,&OK);
|
||||||
|
if(OK)
|
||||||
|
{
|
||||||
|
return Reg;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
qint16 CModbusCCMgr::GetZT2TrainType()
|
||||||
|
{
|
||||||
|
bool OK = false;
|
||||||
|
qint16 Reg = mModbusRepo->GetSingleReg(MODBUS_CC_ZT2_TRAIN_TYPE_REG_ADD,&OK);
|
||||||
|
if(OK)
|
||||||
|
{
|
||||||
|
return Reg;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
@ -21,6 +21,16 @@ public:
|
|||||||
|
|
||||||
virtual void RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length);
|
virtual void RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length);
|
||||||
virtual void ModbusRequestException(quint8 ExceptionCode, quint8 FctCode);
|
virtual void ModbusRequestException(quint8 ExceptionCode, quint8 FctCode);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Helper functions
|
||||||
|
QList<qint16> GetZT1TrainComposition();
|
||||||
|
QList<qint16> GetZT2TrainComposition();
|
||||||
|
bool GetZT1InhibitionFlag();
|
||||||
|
bool GetZT2InhibitionFlag();
|
||||||
|
qint16 GetZT1TrainType();
|
||||||
|
qint16 GetZT2TrainType();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTcpServer *mModbusServer;
|
QTcpServer *mModbusServer;
|
||||||
|
|||||||
@ -204,6 +204,7 @@ quint16 CModbusRepository::GetSingleReg(quint16 Address, bool *OK)
|
|||||||
return Data;
|
return Data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CHRDataMap::CHRDataMap(quint16 StartAddress, quint16 Length)
|
CHRDataMap::CHRDataMap(quint16 StartAddress, quint16 Length)
|
||||||
{
|
{
|
||||||
mStartAddress = StartAddress;
|
mStartAddress = StartAddress;
|
||||||
@ -215,3 +216,5 @@ CHRDataMap::CHRDataMap(quint16 StartAddress, quint16 Length)
|
|||||||
mEndAddress = StartAddress + Length - 1;
|
mEndAddress = StartAddress + Length - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,7 @@ public:
|
|||||||
int WriteMultipleRegs(quint16 StartAddress, QList<qint16> Data);
|
int WriteMultipleRegs(quint16 StartAddress, QList<qint16> Data);
|
||||||
const QList<CHRDataMap> *GetRepo(){return &mHoldingRegisters;}
|
const QList<CHRDataMap> *GetRepo(){return &mHoldingRegisters;}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<CHRDataMap> mHoldingRegisters;
|
QList<CHRDataMap> mHoldingRegisters;
|
||||||
QReadWriteLock mMutex;
|
QReadWriteLock mMutex;
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include "ZTData.h"
|
#include "ZTData.h"
|
||||||
|
|
||||||
const char * CZTData::TrainTypeString[] = {"Inconnu","MR63/73", "MPM10"};
|
const char * CZTData::TrainTypeString[] = {"Inconnu","MR63/73", "MPM10", "MR63", "MR73"};
|
||||||
CZTData::CZTData()
|
CZTData::CZTData()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@ -113,6 +113,8 @@ enum eTrainTypeID
|
|||||||
TRAIN_TYPE_UNKNOWN,
|
TRAIN_TYPE_UNKNOWN,
|
||||||
TRAIN_TYPE_MR63_MR73,
|
TRAIN_TYPE_MR63_MR73,
|
||||||
TRAIN_TYPE_MPM10,
|
TRAIN_TYPE_MPM10,
|
||||||
|
TRAIN_TYPE_MR63,
|
||||||
|
TRAIN_TYPE_MR73,
|
||||||
|
|
||||||
|
|
||||||
TRAIN_TYPE_MAX_ID
|
TRAIN_TYPE_MAX_ID
|
||||||
|
|||||||
@ -210,6 +210,8 @@ private:
|
|||||||
bool mZT2Present; //Flag qui indique si la station possède une ZT2
|
bool mZT2Present; //Flag qui indique si la station possède une ZT2
|
||||||
bool mAutoExportZT1CSV,mAutoExportZT2CSV; //Flags qui indiquent s'il faut créer des fichiers CSV pour chaque log. Configurable dans la page ingénierie.
|
bool mAutoExportZT1CSV,mAutoExportZT2CSV; //Flags qui indiquent s'il faut créer des fichiers CSV pour chaque log. Configurable dans la page ingénierie.
|
||||||
unsigned int mZT1PEQType; //Type de la dernière panne équipement lorsqu'il y en a une.
|
unsigned int mZT1PEQType; //Type de la dernière panne équipement lorsqu'il y en a une.
|
||||||
|
QList<qint16> mZT1TrainComposition; //Composition du train franchissant ZT1 (obtenue par Modbus)
|
||||||
|
QList<qint16> mZT2TrainComposition; //Composition du train franchissant ZT2 (obtenue par Modbus)
|
||||||
|
|
||||||
CZT1Log mZT1Log; //Les données du log ZT1 du passage courant (un seul train)
|
CZT1Log mZT1Log; //Les données du log ZT1 du passage courant (un seul train)
|
||||||
CZT2Log mZT2Log;
|
CZT2Log mZT2Log;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user