123 lines
3.1 KiB
PHP
Executable File
123 lines
3.1 KiB
PHP
Executable File
<?php
|
|
|
|
session_start();
|
|
|
|
require("../functions.php");
|
|
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 1);
|
|
|
|
$db = new SQLite3('../db-test/test.db');
|
|
|
|
//Befehl zum Starten des Skripts
|
|
$command = escapeshellcmd('python3 /var/www/html/python/cable-check.py');
|
|
|
|
//output1 und bridges1 sind die Ergebnisse des ersten Durchlaufs
|
|
$output1 = json_decode(shell_exec($command), true);
|
|
$bridges1 = $output1["data"];
|
|
|
|
//Zeigt schon der Erste durchlauf Fehler auf, kann abgebrochen werden (1. Fehlerfall)
|
|
if($output1["logs"]["errorcode"] != 10) {
|
|
?>
|
|
<h3>
|
|
Die Prüfung konnte nicht abgeschlossen werden. <i>Fehler <?php echo $output1["logs"]["errorcode"]; ?></i>
|
|
</h3>
|
|
<?php
|
|
include("../errorcodes.php");
|
|
die();
|
|
}
|
|
|
|
//wenn bis hierhin ok: weitere Prüfung
|
|
$output2 = json_decode(shell_exec($command), true);
|
|
$bridges2 = $output2["data"];
|
|
|
|
//Die Messungen sind nicht identisch (egal ob wg Fehlercodes oder Daten, ungleiche Messungen sind immer schlecht) -> 2. Fehlerfall
|
|
//es wäre schon sehr eigenartig, wenn verschiedene Fehlercodes nacheinander ausgespuckt würden (Wackelkontakt?)
|
|
if($bridges1 !== $bridges2) {
|
|
|
|
measurementsDiffer($bridges1, $bridges2);
|
|
|
|
}
|
|
|
|
// Isoliere die Brücken und speichere sie als $bridges (hiermit wird später alles weitere verarbeitet)
|
|
$bridges = array_map(function($entry) {
|
|
return $entry[0];
|
|
}, $bridges1);
|
|
|
|
//Isoliere die Fehlercodes der ersten Messung; da Messungen identisch reicht erste Messung
|
|
$errors = array_filter($bridges1, function($entry) {
|
|
return $entry[1] !== 0;
|
|
});
|
|
|
|
//Wenn Fehlerspeicher gefüllt: Ausgabe und Abbruch
|
|
if (!empty($errors)) {
|
|
|
|
measurementsContainErrors($bridges1);
|
|
|
|
}
|
|
|
|
// ----------
|
|
//Ab hier wird die Logik geprüft, die Messung ist bis hierhin äußerlich in Ordnung
|
|
// ----------
|
|
|
|
|
|
$bridges = translateArray($bridges, $translationMap, $translationMap2);
|
|
|
|
$cleaned_output = [];
|
|
$errors = [];
|
|
|
|
$ok = true;
|
|
|
|
// iteriere durch die Messung und prüfe, ob stets gilt [[20,20],[22,22]]
|
|
//wenn nein: Kurzschluss ($errors)
|
|
foreach($bridges as $bridge) {
|
|
if($bridge[0] == $bridge[1]) {
|
|
$cleaned_output[] = $bridge[0];
|
|
}
|
|
else {
|
|
$ok = false;
|
|
$errors[] = $bridge;
|
|
}
|
|
}
|
|
|
|
|
|
//Haupt-Steckergrafik
|
|
$url = 'stecker.php?mode=fill&data=' . urlencode(json_encode($cleaned_output));
|
|
|
|
?>
|
|
|
|
<div class="content-header">Ergebnis</div>
|
|
<hr />
|
|
<h2>Vollständigkeit</h2>
|
|
<p><i>Die folgende Grafik zeigt Ihnen, auf welchen Adern eine durchgängige Verbindung erkannt wurde. Nur, wenn alle Pins grün gefüllt sind, ist das Spurkabel in Ordnung!</i></p>
|
|
<img src="<?php echo $url; ?>" />
|
|
|
|
|
|
<?php
|
|
|
|
|
|
$url = 'stecker.php?data=' . urlencode(json_encode($errors)); // Kodiert es für die URL
|
|
|
|
|
|
?>
|
|
|
|
|
|
<h2>Unzulässigkeiten</h2>
|
|
<p><i>Die folgende Grafik zeigt Ihnen, auf welchen Adern eine Verbindung zu einer anderen Ader erkannt wurde. Ist die Grafik leer, sind alle Adern korrekt isoliert.</i></p>
|
|
<?php
|
|
|
|
if($ok != true) {
|
|
?>
|
|
<p style='color: red !important'>
|
|
Es wurde mindestens ein Kurzschluss gefunden!
|
|
</p>
|
|
<?php
|
|
}
|
|
?>
|
|
<img src="<?php echo $url; ?>" />
|
|
|
|
|
|
|
|
<div class="save-button" onclick="window.location.href='#cable-check';"><img src="/vendor/icons/nav-arrow-left.svg" \>Zurück</div>
|
|
|