value = $val; } public function getValue() { return $this->value; } public function max() { for ($i = AlarmStatus::AS_CRIT; $i >= AlarmStatus::AS_WARN; $i--) { if (($this->value & pow(2,$i)) != 0) { return new AlarmStatus($i); } } return new AlarmStatus(AlarmStatus::AS_CLEAR); } public function accu(AlarmStatus $alm_stat) { $this->value = $this->value | pow(2,$alm_stat->getValue()); return $this; } public function join(AlarmBalance $alm_bal) { $this->value = $this->value | $alm_bal->getValue(); return $this; } public function cut(AlarmBalance $alm_bal) { $this->value = $this->value & $alm_bal->getValue(); return $this; } public function substract(AlarmBalance $alm_bal) { $this->value = $this->value & ~($alm_bal->getValue()); return $this; } public function __toString() { $out = "{"; $trenner = ""; for ($i = AlarmStatus::AS_WARN; $i <= AlarmStatus::AS_CRIT; $i++) { if (($this->value & pow(2,$i)) != 0) { $as = new AlarmStatus($i); $out = $out . $trenner . $as; $trenner = ","; } } $out = $out . "}"; return $out; } }