Détection automatique Modbus
Détection automatique au démarrage de la présence du HPC sur le réseau. Si oui, le Modbus est activé, si non les I/O discrets sont utilisés.
This commit is contained in:
@@ -54,6 +54,27 @@ int CModbusCCMgr::StartModbusCCServer()
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
bool CModbusCCMgr::CheckForCCPartner(const int msTimeout, const int port)
|
||||
{
|
||||
QTcpServer *DummyServer = new QTcpServer();
|
||||
DummyServer->listen(QHostAddress::Any,port);
|
||||
|
||||
if(DummyServer->waitForNewConnection(msTimeout) == true)
|
||||
{
|
||||
QTcpSocket* DummySocket = DummyServer->nextPendingConnection();
|
||||
DummySocket->disconnectFromHost();
|
||||
DummySocket->waitForDisconnected(1000);
|
||||
delete DummySocket;
|
||||
DummyServer->close();
|
||||
delete DummyServer;
|
||||
return true;
|
||||
}
|
||||
DummyServer->close();
|
||||
delete DummyServer;
|
||||
return false;
|
||||
}
|
||||
|
||||
int CModbusCCMgr::CloseModbusCCServer()
|
||||
{
|
||||
mModbusServer->close();
|
||||
@@ -74,7 +95,7 @@ int CModbusCCMgr::CloseModbusCCServer()
|
||||
delete mModbusTCPSocketHandle;
|
||||
}
|
||||
|
||||
CZTLog::instance()->AddLogString(QString("Serveur Modbus Commande Centralisée démarré sur le port %1").arg(mModbusPort),true);
|
||||
CZTLog::instance()->AddLogString(QString("Serveur Modbus Commande Centralisée fermé"),true);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
int StartModbusCCServer();
|
||||
int CloseModbusCCServer();
|
||||
bool IsModbusConnected();
|
||||
static bool CheckForCCPartner(const int msTimeout, const int port);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user