. * * * Used covert alarm ID in the JnxDomAlarm traps from Hex to a * descriptive string. * @package LibreNMS * @link http://librenms.org * @copyright 2019 KanREN, Inc * @author Heath Barnhart */ namespace LibreNMS\Snmptrap\Handlers; class JnxDomAlarmId { public static function getAlarms($currentAlarm) { $alarmBin = preg_split( "//", sprintf("%024s", decbin(hexdec(str_replace(" ", "", $currentAlarm)))), -1, PREG_SPLIT_NO_EMPTY ); $alarmDescr = [ 'input loss of signal', 'input loss of lock', 'input rx path not ready', 'input laser power high', 'input laser power low', 'output laser bias current high', 'output laser bias current low', 'output laser power high', 'output laser power low', 'output data not ready', 'output tx path not ready', 'output laser fault', 'output loss of lock', 'module temperature high', 'module temperature low', 'module not ready', 'module power down', 'wire unplugged or down', 'module unplugged or down', 'module voltage high', 'module voltage low', ]; $index = 0; $descr = []; foreach ($alarmBin as $syntax) { if ($syntax == "1") { $descr[$index] = $alarmDescr[$index]; } $index++; } $message = implode(', ', $descr); return $message; } }