public static function checkAlive() { foreach (eqLogic::byTimeout(1, true) as $eqLogic) { $sendReport = false; $cmds = $eqLogic->getCmd(); foreach ($cmds as $cmd) { if ($cmd->getEventOnly() == 1) { $sendReport = true; } } $logicalId = 'noMessage' . $eqLogic->getId(); if ($sendReport) { $noReponseTimeLimit = $eqLogic->getTimeout(); if (count(message::byPluginLogicalId('core', $logicalId)) == 0) { if ($eqLogic->getStatus('lastCommunication', date('Y-m-d H:i:s')) < date('Y-m-d H:i:s', strtotime('-' . $noReponseTimeLimit . ' minutes' . date('Y-m-d H:i:s')))) { $message = __('Attention', __FILE__) . ' ' . $eqLogic->getHumanName(); $message .= __(' n\'a pas envoyé de message depuis plus de ', __FILE__) . $noReponseTimeLimit . __(' min (vérifier les piles)', __FILE__); message::add('core', $message, '', $logicalId); foreach ($cmds as $cmd) { if ($cmd->getEventOnly() == 1) { $cmd->event('error::timeout'); } } } } else { if ($eqLogic->getStatus('lastCommunication', date('Y-m-d H:i:s')) > date('Y-m-d H:i:s', strtotime('-' . $noReponseTimeLimit . ' minutes' . date('Y-m-d H:i:s')))) { foreach (message::byPluginLogicalId('core', $logicalId) as $message) { $message->remove(); } } } } } }