public function GetTableRawData($extFlightId, $extParams, $extFromTime, $extToTime)
 {
     $flightId = $extFlightId;
     $paramCodeArr = $extParams;
     $fromTime = $extFromTime;
     $toTime = $extToTime;
     $Fl = new Flight();
     $flightInfo = $Fl->GetFlightInfo($flightId);
     $bruType = $flightInfo['bruType'];
     $apTableName = $flightInfo['apTableName'];
     $bpTableName = $flightInfo['bpTableName'];
     $startCopyTime = $flightInfo['startCopyTime'];
     unset($Fl);
     $Bru = new Bru();
     $bruInfo = $Bru->GetBruInfo($bruType);
     $stepLength = $bruInfo['stepLength'];
     $stepDivider = $bruInfo['stepDivider'];
     $startCopyTime = $flightInfo['startCopyTime'];
     $cycloApTableName = $bruInfo['gradiApTableName'];
     $cycloBpTableName = $bruInfo['gradiBpTableName'];
     if ($fromTime < $startCopyTime) {
         $fromTime = $startCopyTime;
     }
     $startFrame = floor(($fromTime - $startCopyTime) / $stepLength);
     $endFrame = ceil(($toTime - $startCopyTime) / $stepLength);
     $framesCount = $endFrame - $startFrame;
     $Ch = new Channel();
     $normParam = $Ch->NormalizeTime($stepDivider, $stepLength, $framesCount, $startCopyTime, $startFrame, $endFrame);
     $globalRawParamArr = array();
     array_push($globalRawParamArr, $normParam);
     for ($i = 0; $i < count($paramCodeArr); $i++) {
         $paramType = $Bru->GetParamType($paramCodeArr[$i], $cycloApTableName, $cycloBpTableName);
         if ($paramType == PARAM_TYPE_AP) {
             $paramInfo = $Bru->GetParamInfoByCode($cycloApTableName, '', $paramCodeArr[$i], PARAM_TYPE_AP);
             $normParam = $Ch->GetNormalizedApParam($apTableName, $stepDivider, $paramInfo["code"], $paramInfo["freq"], $paramInfo["prefix"], $startFrame, $endFrame);
             array_push($globalRawParamArr, $normParam);
         } else {
             if ($paramType == PARAM_TYPE_BP) {
                 $paramInfo = $Bru->GetParamInfoByCode('', $cycloBpTableName, $paramCodeArr[$i], PARAM_TYPE_BP);
                 $normParam = $Ch->GetNormalizedBpParam($bpTableName, $stepDivider, $paramInfo["code"], $paramInfo["freq"], $paramInfo["prefix"], $startFrame, $endFrame);
                 array_push($globalRawParamArr, $normParam);
             }
         }
     }
     unset($Ch);
     unset($Bru);
     return $globalRawParamArr;
 }
 public function CreateTemplate($extBruTypeId, $extTplName, $extParams)
 {
     $bruTypeId = $extBruTypeId;
     $tplName = $extTplName;
     $paramsToAdd = $extParams;
     $Bru = new Bru();
     $bruInfo = $Bru->GetBruInfoById($bruTypeId);
     $gradiApTableName = $bruInfo['gradiApTableName'];
     $gradiBpTableName = $bruInfo['gradiBpTableName'];
     $PSTTableName = $bruInfo['paramSetTemplateListTableName'];
     $paramsWithType = array();
     $Ch = new Channel();
     for ($i = 0; $i < count($paramsToAdd); $i++) {
         $paramInfo = $Bru->GetParamInfoByCode($gradiApTableName, $gradiBpTableName, $paramsToAdd[$i]);
         if ($paramInfo['paramType'] == PARAM_TYPE_AP) {
             $paramsWithType[PARAM_TYPE_AP][] = array('code' => $paramsToAdd[$i], 'min' => -1, 'max' => 1);
         } else {
             if ($paramInfo['paramType'] == PARAM_TYPE_BP) {
                 $paramsWithType[PARAM_TYPE_BP][] = array('code' => $paramsToAdd[$i]);
             }
         }
     }
     unset($Bru);
     $PSTempl = new PSTempl();
     $PSTempl->DeleteTemplate($PSTTableName, $tplName, $this->_user->username);
     $apCount = count($paramsWithType[PARAM_TYPE_AP]);
     for ($i = 0; $i < count($paramsWithType[PARAM_TYPE_AP]); $i++) {
         $paramCode = $paramsWithType[PARAM_TYPE_AP][$i];
         $yMax = $paramsWithType[PARAM_TYPE_AP][$i]['max'];
         $yMin = $paramsWithType[PARAM_TYPE_AP][$i]['min'];
         $curCorridor = 0;
         if ($yMax > 0) {
             $curCorridor = $yMax - $yMin;
         } else {
             $curCorridor = -($yMin - $yMax);
         }
         $axisMax = $yMax + $i * $curCorridor;
         $axisMin = $yMin - ($apCount - $i) * $curCorridor;
         $PSTempl->AddParamToTemplateWithMinMax($PSTTableName, $tplName, $paramCode['code'], $axisMin, $axisMax, $this->_user->username);
     }
     if (isset($paramsWithType[PARAM_TYPE_BP])) {
         $busyCorridor = ($apCount - 1) / $apCount * 100;
         $freeCorridor = 100 - $busyCorridor;
         // 100%
         $bpCount = count($paramsWithType[PARAM_TYPE_BP]);
         $curCorridor = $freeCorridor / $bpCount;
         $j = 0;
         for ($i = $apCount; $i < $apCount + $bpCount; $i++) {
             $axisMax = 100 - $curCorridor * $j;
             $axisMin = 0 - $curCorridor * $j;
             $PSTempl->AddParamToTemplateWithMinMax($PSTTableName, $tplName, $paramsWithType[PARAM_TYPE_BP][$j]['code'], $axisMin, $axisMax, $this->_user->username);
             $j++;
         }
     }
     unset($Ch);
     unset($PSTempl);
     return "ok";
 }
 public function UpdateParamColor($extFlightId, $extParamCode, $extParamColor)
 {
     $flightId = $extFlightId;
     $paramCode = $extParamCode;
     $color = $extParamColor;
     $Fl = new Flight();
     $flightInfo = $Fl->GetFlightInfo($flightId);
     $bruType = $flightInfo['bruType'];
     unset($Fl);
     $Bru = new Bru();
     $bruInfo = $Bru->GetBruInfo($bruType);
     $cycloApTableName = $bruInfo['gradiApTableName'];
     $cycloBpTableName = $bruInfo['gradiBpTableName'];
     $paramInfo = $Bru->GetParamInfoByCode($cycloApTableName, $cycloBpTableName, $paramCode);
     if ($paramInfo["paramType"] == PARAM_TYPE_AP) {
         $Bru->UpdateParamColor($cycloApTableName, $paramCode, $color);
     } else {
         if ($paramInfo["paramType"] == PARAM_TYPE_BP) {
             $Bru->UpdateParamColor($cycloBpTableName, $paramCode, $color);
         }
     }
     unset($Bru);
 }