|
@@ -338,5 +338,59 @@ class OltReportController extends Controller
|
|
|
'results' => $results
|
|
|
));
|
|
|
}
|
|
|
+
|
|
|
+ public function onuSignalAction($oltServerId, $oltDeviceId) {
|
|
|
+
|
|
|
+ $em = $this->get('doctrine')->getManager();
|
|
|
+ $onus = $em->getRepository('StatsBundle:Onu')->createQueryBuilder('o')
|
|
|
+ ->select('o.txPower','o.rxPowerOlt', 'o.ponSerialNumber')
|
|
|
+ ->where('o.deviceServer = :oltServerId')
|
|
|
+ ->andWhere('o.oltDeviceId = :oltDeviceId')
|
|
|
+ ->setParameter('oltServerId', $oltServerId)
|
|
|
+ ->setParameter('oltDeviceId', $oltDeviceId)
|
|
|
+ ->getQuery()->getResult();
|
|
|
+
|
|
|
+ $colors = $signals = array();
|
|
|
+
|
|
|
+ foreach($onus as $data) {
|
|
|
+ if($data['txPower'] == null || $data['rxPowerOlt'] == null) continue;
|
|
|
+
|
|
|
+ $color = $this->getRxColor($data['rxPowerOlt']);
|
|
|
+
|
|
|
+ if(!isset($signals[$color])) $signals[$color] = array();
|
|
|
+
|
|
|
+ $signals[$color][] = array('x' => $data['txPower'],'y' => $data['rxPowerOlt'], 'extraData' => $data['ponSerialNumber'], 'id' => "{$data['ponSerialNumber']}~{$oltDeviceId}~{$oltServerId}");
|
|
|
+
|
|
|
+ //$colors[] = $this->getRxColor($data['rxPowerOlt']);
|
|
|
+ }
|
|
|
+ $_signals = array();
|
|
|
+ foreach($signals as $color => $points) {
|
|
|
+ $_signals[$color] = json_encode($points);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $this->render('StatsBundle:Device:Report/onuSignal.html.twig', array(
|
|
|
+ 'signals' => $_signals
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ private function getRxColor($value) {
|
|
|
+
|
|
|
+
|
|
|
+ if($value < -30)
|
|
|
+ return "#a00400"; //bordó
|
|
|
+ elseif($value >= -30 and $value < -28)
|
|
|
+ return "#ff4d3f"; //rojo
|
|
|
+ elseif($value >= -28 and $value < -26)
|
|
|
+ return "#ffa732"; //amarillo
|
|
|
+ elseif($value >= -26 and $value < -20)
|
|
|
+ return "#00a65a"; //verde
|
|
|
+ elseif($value >= -20 and $value < -15)
|
|
|
+ return "#ffa732"; //amarillo
|
|
|
+ elseif($value >= -15 and $value < -13)
|
|
|
+ return "#ff4d3f"; //rojo
|
|
|
+ else
|
|
|
+ return "#a00400"; //bordó
|
|
|
+ }
|
|
|
|
|
|
}
|