Correction de la lecture de la date & heure (format BCD) envoyée par le
HPC.
This commit is contained in:
parent
442024be91
commit
749b66566c
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
/ZT.pro.user.Pj2362
|
||||||
/Escape.ZT
|
/Escape.ZT
|
||||||
/LOG/LogZT.txt
|
/LOG/LogZT.txt
|
||||||
/ING/IngLog.txt
|
/ING/IngLog.txt
|
||||||
|
|||||||
@ -51,7 +51,7 @@ UTILISER_MODBUS_CC=OUI
|
|||||||
#Adresse modbus de la ZT
|
#Adresse modbus de la ZT
|
||||||
MODBUS_CC_DEVID=1
|
MODBUS_CC_DEVID=1
|
||||||
#Port Modbus/TCP
|
#Port Modbus/TCP
|
||||||
MODBUS_CC_PORT=2183
|
MODBUS_CC_PORT=502
|
||||||
|
|
||||||
#----------------------------------
|
#----------------------------------
|
||||||
#Changer cette valeur à OUI ou NON pour activer le
|
#Changer cette valeur à OUI ou NON pour activer le
|
||||||
|
|||||||
@ -140,13 +140,28 @@ void CModbusCCMgr::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length
|
|||||||
QList<qint16> DateTime = mModbusRepo->GetRegs(MODUBS_CC_CLK_SEC_BASE_REG_ADD,4,&OK);
|
QList<qint16> DateTime = mModbusRepo->GetRegs(MODUBS_CC_CLK_SEC_BASE_REG_ADD,4,&OK);
|
||||||
if(OK)
|
if(OK)
|
||||||
{
|
{
|
||||||
qint8 Secs, Minutes, Hours, Month, Day;
|
qDebug("Registres: [%d][%d][%d][%d]",DateTime.at(0),DateTime.at(1),DateTime.at(2),DateTime.at(3));
|
||||||
Secs = (qint8)(DateTime.at(0) >> 8);
|
quint8 Secs, Minutes, Hours, Month, Day;
|
||||||
Minutes = (qint8)(DateTime.at(1) & 0x00FF);
|
quint8 temp;
|
||||||
Hours = (qint8)(DateTime.at(1) >> 8);
|
temp = (quint8)(DateTime.at(0) >> 8);
|
||||||
Day = (qint8)(DateTime.at(2) & 0x00FF);
|
Secs = BCDToIntByte(temp);
|
||||||
Month = (qint8)(DateTime.at(2) >> 8);
|
|
||||||
qint16 Year = DateTime.at(3);
|
temp = (quint8)(DateTime.at(1) & 0x00FF);
|
||||||
|
Minutes = BCDToIntByte(temp);
|
||||||
|
|
||||||
|
temp = (qint8)(DateTime.at(1) >> 8);
|
||||||
|
Hours = BCDToIntByte(temp);
|
||||||
|
|
||||||
|
temp = (quint8)(DateTime.at(2) & 0x00FF);
|
||||||
|
Day = BCDToIntByte(temp);
|
||||||
|
|
||||||
|
temp = (quint8)(DateTime.at(2) >> 8);
|
||||||
|
Month = BCDToIntByte(temp);
|
||||||
|
|
||||||
|
quint16 Year = DateTime.at(3);
|
||||||
|
Year = BCDToIntWord(Year);
|
||||||
|
|
||||||
|
qDebug("Secs [%d], Minutes[%d], Hours[%d], Month[%d], Day[%d], Year[%d]",Secs,Minutes,Hours,Month,Day,Year);
|
||||||
|
|
||||||
QDateTime NetworkTime;
|
QDateTime NetworkTime;
|
||||||
NetworkTime.setTimeSpec(Qt::UTC);
|
NetworkTime.setTimeSpec(Qt::UTC);
|
||||||
@ -188,6 +203,36 @@ void CModbusCCMgr::RegistersDatabaseUpdated(quint16 StartAddress, quint16 Length
|
|||||||
emit RepoHasChanged();
|
emit RepoHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
quint8 CModbusCCMgr::BCDToIntByte(const quint8 byte)
|
||||||
|
{
|
||||||
|
quint8 out = 0;
|
||||||
|
quint8 temp = 0;
|
||||||
|
|
||||||
|
out += byte & 0x0F;
|
||||||
|
temp = (byte >> 4) & 0x0F;
|
||||||
|
out += (temp * 10);
|
||||||
|
|
||||||
|
return out;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
quint16 CModbusCCMgr::BCDToIntWord(const quint16 word)
|
||||||
|
{
|
||||||
|
quint16 out = 0;
|
||||||
|
quint16 temp = 0;
|
||||||
|
|
||||||
|
out += word & 0x000F;
|
||||||
|
temp = (word >> 4) & 0x000F;
|
||||||
|
out += (temp * 10);
|
||||||
|
temp = (word >> 8) & 0x000F;
|
||||||
|
out += (temp * 100);
|
||||||
|
temp = (word >> 12) & 0x000F;
|
||||||
|
out += (temp * 1000);
|
||||||
|
|
||||||
|
return out;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void CModbusCCMgr::ModbusRequestException(quint8 ExceptionCode, quint8 FctCode)
|
void CModbusCCMgr::ModbusRequestException(quint8 ExceptionCode, quint8 FctCode)
|
||||||
{
|
{
|
||||||
//qDebug("Modbus CC: Request exception occured. ExceptCode: [%d], FctCode: [%d]",ExceptionCode,FctCode);
|
//qDebug("Modbus CC: Request exception occured. ExceptCode: [%d], FctCode: [%d]",ExceptionCode,FctCode);
|
||||||
|
|||||||
@ -63,6 +63,8 @@ private:
|
|||||||
bool mZTWatchdogEnabled;
|
bool mZTWatchdogEnabled;
|
||||||
|
|
||||||
int ResetCCRepository();
|
int ResetCCRepository();
|
||||||
|
quint8 BCDToIntByte(const quint8 byte);
|
||||||
|
quint16 BCDToIntWord(const quint16 word);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void RepoHasChanged();
|
void RepoHasChanged();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user