|
@@ -80,8 +80,8 @@ class StatsOnuCommand extends BaseCommand
|
|
|
$row['tenancyId'] = $tenancyId;
|
|
|
$row['ip'] = "NULL";
|
|
|
$row['mac'] = "NULL";
|
|
|
- $row['serialNumber'] = "NULL";
|
|
|
- $row['ponSerialNumber'] = "'".strtolower($sn)."'";
|
|
|
+ $row['serialNumber'] = "'".$this->snCalulate($sn)."'";
|
|
|
+ $row['ponSerialNumber'] = "'".$this->psnCalulate($sn)."'";
|
|
|
$row['ponPort'] = "'".$ponPort."'";
|
|
|
|
|
|
foreach($metrics as $m => $metric) {
|
|
@@ -185,4 +185,66 @@ class StatsOnuCommand extends BaseCommand
|
|
|
|
|
|
return $rx;
|
|
|
}
|
|
|
+
|
|
|
+ private function hex2str($hex) {
|
|
|
+ $hex = strtoupper($hex);
|
|
|
+ $str = "";
|
|
|
+ for($i=0;$i<strlen($hex);$i+=2)
|
|
|
+ $str .= chr(hexdec(substr($hex,$i,2)));
|
|
|
+
|
|
|
+ return $str;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function str2hex($string){
|
|
|
+ $string = strtoupper($string);
|
|
|
+ $hex = "";
|
|
|
+ for ($i=0; $i < strlen($string); $i++)
|
|
|
+ $hex .= dechex(ord($string[$i]));
|
|
|
+
|
|
|
+ return $hex;
|
|
|
+ }
|
|
|
+
|
|
|
+ //HWTC22BDED0C > 4857544322BDED0C
|
|
|
+ private function snCalulate($value) {
|
|
|
+ $value = str_replace(" ","",$value);
|
|
|
+
|
|
|
+ if(strlen($value) == 16)
|
|
|
+ return strtolower($value);
|
|
|
+
|
|
|
+ if(strlen($value) == 12) {
|
|
|
+ $vendoId = $this->str2hex(substr($value,0,4));
|
|
|
+ $rest = substr($value,4);
|
|
|
+ return strtolower($vendoId.$rest);
|
|
|
+ }
|
|
|
+
|
|
|
+ return strtolower($value);
|
|
|
+ }
|
|
|
+
|
|
|
+ //4857544322BDED0C > HWTC22BDED0C
|
|
|
+ private function psnCalulate($value) {
|
|
|
+ $value = str_replace(" ","",$value);
|
|
|
+
|
|
|
+ if(strlen($value) == 12)
|
|
|
+ return strtolower($value);
|
|
|
+
|
|
|
+ if(strlen($value) == 16) {
|
|
|
+ $vendorId = substr($value,0,8);
|
|
|
+ $hex = strtoupper($vendorId);
|
|
|
+ $isNumeric = true;
|
|
|
+ for($i=0;$i<strlen($hex);$i+=2) {
|
|
|
+ if(!is_numeric(substr($hex,$i,2))) {
|
|
|
+ $isNumeric = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if($isNumeric) {
|
|
|
+ $vendoId = $this->hex2str($hex);
|
|
|
+ $rest = substr($value,8);
|
|
|
+ return strtolower($vendoId.$rest);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return strtolower($value);
|
|
|
+ }
|
|
|
}
|