199 lines
5.2 KiB
PHP
199 lines
5.2 KiB
PHP
<?php
|
|
|
|
// ===========================================================================================
|
|
// Analyse-Funktionen für die Spurkabelprüfung, Federleistenprüfung und Selbstidiagnose
|
|
// ===========================================================================================
|
|
|
|
|
|
|
|
//Übsersetzungstabelle (Intern -> Steckerpin, gilt für Programmsteckerprüfung)
|
|
$translationMap = [
|
|
"0" => "18",
|
|
"1" => "19",
|
|
"2" => "20",
|
|
"3" => "21",
|
|
"4" => "22",
|
|
"5" => "23",
|
|
"6" => "24",
|
|
"7" => "25",
|
|
"8" => "10",
|
|
"9" => "11",
|
|
"10" => "12",
|
|
"11" => "13",
|
|
"12" => "14",
|
|
"13" => "15",
|
|
"14" => "16",
|
|
"15" => "17",
|
|
"16" => "34",
|
|
"17" => "35",
|
|
"18" => "36",
|
|
"19" => "37",
|
|
"20" => "38",
|
|
"21" => "39",
|
|
"22" => "40",
|
|
"23" => "41",
|
|
"24" => "26",
|
|
"25" => "27",
|
|
"26" => "28",
|
|
"27" => "29",
|
|
"28" => "30",
|
|
"29" => "31",
|
|
"30" => "32",
|
|
"31" => "33"
|
|
];
|
|
|
|
//Übsersetzungstabelle (Intern -> Steckerpin, gilt für Spurkabelprüfung)
|
|
$translationMap2 = [
|
|
"0" => "25",
|
|
"1" => "24",
|
|
"2" => "23",
|
|
"3" => "22",
|
|
"4" => "21",
|
|
"5" => "20",
|
|
"6" => "19",
|
|
"7" => "18",
|
|
"8" => "17",
|
|
"9" => "16",
|
|
"10" => "15",
|
|
"11" => "14",
|
|
"12" => "13",
|
|
"13" => "12",
|
|
"14" => "11",
|
|
"15" => "10",
|
|
"16" => "41",
|
|
"17" => "40",
|
|
"18" => "39",
|
|
"19" => "38",
|
|
"20" => "37",
|
|
"21" => "36",
|
|
"22" => "35",
|
|
"23" => "34",
|
|
"24" => "33",
|
|
"25" => "32",
|
|
"26" => "31",
|
|
"27" => "30",
|
|
"28" => "29",
|
|
"29" => "28",
|
|
"30" => "27",
|
|
"31" => "26"
|
|
];
|
|
|
|
// Diese Funktion übersetzt die interne Pin-Bezeichnung in die des Herstellers gem. translationMap
|
|
// weil die Hardware der Spurkabelprüfer anders verschaltet ist, als die des Programmsetckerprüfers, wird nach zwei Übersetzungstabellen bei der Spurkabelprüfung gearbeitet
|
|
// nodes[0] wird gem Standardtabelle gehandhabt, nodes[1] nach translationMap2 - unsauber, aber nur durhc Software lösbar
|
|
function translateArray($inputArray, $translationMap, $translationMap2 = null) {
|
|
return array_map(function($subArray) use ($translationMap, $translationMap2) {
|
|
$map1 = $translationMap;
|
|
$map2 = $translationMap2 ?? $translationMap; // Wenn keine zweite Map, nimm die erste
|
|
return [
|
|
$map1[$subArray[0]] ?? $subArray[0],
|
|
$map2[$subArray[1]] ?? $subArray[1]
|
|
];
|
|
}, $inputArray);
|
|
}
|
|
|
|
function measurementsDiffer($bridges1, $bridges2) {
|
|
//Isoliere die Brücken
|
|
$bridges1 = array_map(function($entry) {
|
|
return $entry[0];
|
|
}, $bridges1);
|
|
|
|
$bridges2 = array_map(function($entry) {
|
|
return $entry[0];
|
|
}, $bridges2);
|
|
|
|
//Zeichne die Steckergrafik
|
|
$url1 = "../stecker.php?data=" . urlencode(json_encode(translateArray($bridges1, $translationMap)));
|
|
$url2 = "../stecker.php?data=" . urlencode(json_encode(translateArray($bridges2, $translationMap)));
|
|
|
|
|
|
|
|
|
|
?>
|
|
<p>
|
|
Es gab einen Fehler bei der Messung!</br>Messung 1 und Messung 2 lieferten keine übereinstimmenden Ergebnisse.<br>Bitte prüfen Sie, ob alle Steckverbindungen fest sitzen und vermeiden Sie Bewegungen, welche die Messung beeinträchtigen können.</br>Stellen Sie sicher, dass keine der Verbindungen gegen Erde kurzgeschlossen ist, da dies die Messung beeinträchtigt.<br>Erwägen Sie, eine erneute Messung durchzuführen.
|
|
</p>
|
|
<br>
|
|
<p>Ergebnis Messung 1:</p>
|
|
<i><?php print_r($output1); ?><i>
|
|
<img src="<?php echo $url1; ?>" />
|
|
<p>Ergebnis Messung 2:</p>
|
|
<i><?php print_r($output2); ?><i>
|
|
<img src="<?php echo $url2; ?>" />
|
|
<div class="save-button" onclick="window.location.href='#index'; pageload();$('.save-button').html('<img src=\'load.gif\' \>Bitte warten...');"><img src="/vendor/icons/nav-arrow-left.svg" \>Zurück</div>
|
|
|
|
<?php
|
|
|
|
die();
|
|
}
|
|
|
|
|
|
function measurementsContainErrors($bridges) {
|
|
|
|
?>
|
|
<h3>Eine oder mehrere Prüfungen versagten. Vollständige Fehlerausgabe:</h3>
|
|
<table>
|
|
<tr><td>Brücke von</td><td>nach</td><td>Aufgetretene Fehler</td>
|
|
|
|
<?php
|
|
foreach($bridges as $bridge) {
|
|
echo "<tr><td>" . $bridge[0][0] . "</td><td>" . $bridge[0][1] . "</td><td>" . $bridge[1] . "</td></tr>";
|
|
}
|
|
?>
|
|
|
|
</table>
|
|
<hr>
|
|
<h3>Fehlercodes:</h3>
|
|
|
|
<?php
|
|
include("../errorcodes.php");
|
|
die();
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
|
Ootionale Funktion, die implizite Verbindungen herleitet (KI-generiert)
|
|
|
|
|
|
function completeCycleEdges(array $edges): array {
|
|
// 1. Alle einzigartigen Knoten extrahieren
|
|
$nodes = [];
|
|
foreach ($edges as $edge) {
|
|
foreach ($edge as $node) {
|
|
$nodes[$node] = true;
|
|
}
|
|
}
|
|
$nodes = array_keys($nodes);
|
|
|
|
// 2. Sortiere Knoten (optional, für konsistente Reihenfolge)
|
|
sort($nodes);
|
|
|
|
// 3. Erstelle vollständigen Kreis (Verbindung i -> i+1, letzter -> erster)
|
|
$completeEdges = [];
|
|
$numNodes = count($nodes);
|
|
for ($i = 0; $i < $numNodes; $i++) {
|
|
$from = $nodes[$i];
|
|
$to = $nodes[($i + 1) % $numNodes]; // Kreis schließen
|
|
$completeEdges[] = [$from, $to];
|
|
}
|
|
|
|
return $completeEdges;
|
|
}
|
|
|
|
$edges = [[0,1], [2,0]];
|
|
$result = completeCycleEdges($edges);
|
|
|
|
print_r($result);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
?>
|