public function calculateLam(Switches $switch, $pcbID = -1) { $base = $this->getSwitchTypeValue($switch->getSwitchType()); $sEnv = $switch->getEnvironment(); $piE = $this->systemService->getPiE(141, $sEnv); $stress = $switch->getOperatingCurrent() / $switch->getRatedResistiveCurrent(); $load = $switch->getLoadType(); switch ($load) { case 'Resistive': $piL = exp(pow($stress / 0.8, 2)); break; case 'Inductive': $piL = exp(pow($stress / 0.4, 2)); break; case 'Lamp': $piL = exp(pow($stress / 0.2, 2)); break; case 'Worstcase': $piL = exp(pow($stress / 0.2, 2)); break; } $typeS = $switch->getSwitchType(); if ($typeS == 'Pushbutton' || $typeS == 'Toggle') { $piC = pow($switch->getContactCnt(), 0.33); } else { $piC = 1; } $qual = $switch->getQuality(); if ($qual == 'MIL-SPEC') { $piQ = 1; } else { $piQ = 2; } $lambda = $base * $piL * $piC * $piQ * $piE * pow(10, -6); return $lambda; }
/** * @Route("/newSwitch", name="newSwitch") * @Template() */ public function newSwitchAction() { $post = $this->get('request')->request; $id = $post->get('id'); $formData = $post->get('formData'); $objF = json_decode($formData); $obj = $objF->switchForm; $switch = new Switches(); $switch->setParams($obj); $service = $this->get('ikaros_switchService'); $lambda = $service->calculateLam($switch); $serviceParts = $this->get('ikaros_partService'); $e = $serviceParts->setLams($lambda, $switch, $id); if ($e != "") { return new Response(json_encode(array('e' => $e)), 400, array('Content-Type' => 'application/json; charset=utf-8')); } return new Response(json_encode(array('Label' => $switch->getLabel(), 'Lam' => $switch->getLam(), 'SwitchType' => $switch->getSwitchType(), 'Quality' => $switch->getQuality(), 'Environment' => $switch->getEnvironment(), 'LoadType' => $switch->getLoadType(), 'ContactCnt' => $switch->getContactCnt(), 'OperatingCurrent' => $switch->getOperatingCurrent(), 'RatedResistiveCurrent' => $switch->getRatedResistiveCurrent(), 'idP' => $switch->getIDPart())), 200, array('Content-Type' => 'application/json; charset=utf-8')); }