浏览代码

mejoras en parseo

Luciano Andrade 11 年之前
父节点
当前提交
720b9511ff
共有 2 个文件被更改,包括 15 次插入7 次删除
  1. 10 3
      OSS_SNMP/MIBS/DocsIfCmts.php
  2. 5 4
      OSS_SNMP/SNMP.php

+ 10 - 3
OSS_SNMP/MIBS/DocsIfCmts.php

@@ -169,7 +169,6 @@ class DocsIfCmts extends \OSS_SNMP\MIB {
 		$oid = self::OID_docsQosCmtsIfIndex;
 	    }
 	    $ifIndex = $this->getSNMP()->realWalk($oid);
-		var_dump($oid, $ifIndex);
             foreach((array)$ifIndex as $k => $v){
 		$k_prim = preg_split("|\.|",$k);
 		if(!isset($k_prim[14]) OR !isset($k_prim[15]) OR !isset($k_prim[16]) OR !isset($k_prim[17]) OR !isset($k_prim[18]) OR !isset($k_prim[19])){
@@ -277,8 +276,16 @@ accessDenied(7)   The CMTS has sent a Registration Aborted message   to the CM
     }
 
 
-    public function docsIfCmStatusTxPower(){
-	return $this->getSNMP()->walk1d(self::OID_docsIfCmStatusTxPower);
+    public function docsIfCmStatusTxPower($decode=false){
+	if(!$decode) return $this->getSNMP()->walk1d(self::OID_docsIfCmStatusTxPower);
+	else{
+		$rtr = array();
+		foreach($this->getSNMP()->realWalk(self::OID_docsIfCmStatusTxPower) as $_oid => $val){
+			$k = substr($_oid, strlen(self::OID_docsIfCmStatusTxPower)+2);
+			$rtr[$k] = $this->getSNMP()->parseSnmpValue($val);
+		}
+		return $rtr;
+	}
     }
 
    public function getCmStatus($index){

+ 5 - 4
OSS_SNMP/SNMP.php

@@ -357,11 +357,12 @@ class SNMP
                     $rtn = (string)$value;
                 break;
 
-            case 'INTEGER':
-                if( !is_numeric( $value ) and substr($value, 0,1) != '-')
-                    $rtn = (float)substr( substr( $value, strpos( $value, '(' ) + 1 ), 0, -1 );
-                else
+            case 'INTEGER': //case : INTEGER : someText(intValue) // INTEGER : -3.15 Unidad
+                if( strpos( $value, '(' ) !== false and substr($value, 0,1) != '-'){
+                    $rtn = (float)substr( substr( $value, strpos( $value, '(' ) + 1 ), 0);
+                }else{
                     $rtn = (float)$value;
+		}
 
 		if($rtn == (int)$rtn) $rtn = (int) $rtn;
                 break;