verzija 1.2

This commit is contained in:
Boris Bilc 2024-07-10 18:29:55 +02:00
parent d41e550dca
commit 5b1e9ec589
5 changed files with 275 additions and 44 deletions

11
.vscode/sftp.json vendored Normal file
View File

@ -0,0 +1,11 @@
{
"name": "MultiBox - my_webapp__3",
"host": "192.168.1.200",
"protocol": "sftp",
"port": 22,
"username": "root",
"remotePath": "/var/www/my_webapp__3/www",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false
}

42
README.html Normal file

File diff suppressed because one or more lines are too long

BIN
icons8-error-48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 B

View File

@ -1,6 +1,6 @@
<?php <?php
$madeby = "Boris Bilc"; $madeby = "Boris Bilc";
$version = "1.1"; $version = "1.2";
// For learning and experimental use only // For learning and experimental use only
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
@ -24,7 +24,7 @@ $version = "1.1";
} }
body { body {
background-color: rgba(22, 22, 22, 100.0); background-color: rgba(25, 25, 25, 100.0);
color: #e0e0e0; color: #e0e0e0;
padding: 30px; padding: 30px;
} }
@ -32,16 +32,22 @@ $version = "1.1";
h1 { h1 {
color: deepskyblue; color: deepskyblue;
font-size: 1.8em; font-size: 1.8em;
font-weight: bold;
} }
h2 { h2 {
color: #FFDB23; color: #FFDB23;
font-size: 1.4em; font-size: 1.4em;
margin-top: 25px;
margin-bottom: 15px;
} }
h3 { h3 {
color: #FFDB23; color: #FFDB23;
font-size: 1.25em; font-size: 1.25em;
margin-top: 20px;
margin-bottom: 15px;
border-bottom: 1px solid #FFDB23;
} }
hr { hr {
@ -50,13 +56,17 @@ $version = "1.1";
} }
input { input {
margin: 2px; margin-left: 12px;
} }
table { table {
color: #E0E0E0 !important; color: #E0E0E0 !important;
} }
.info {
font-size: 10pt;
}
.table-on { .table-on {
color: #d1f200 !important; color: #d1f200 !important;
} }
@ -105,38 +115,56 @@ $version = "1.1";
<body> <body>
<h1> <h1>
TPS1100 Convert Online <img src="TPS1100CNVRT_logo.png" height="48px"> TPS1100 Convert Online
</h1> </h1>
<p> <p>
Aplikacija za izvoz koordinat točk iz datotek GSI (za instrumente TPS1100). PHP skripta za procesiranje datotek GSI (za instrumente TPS1100).
</p> </p>
<p>
Skripta omogoča izvoz koordinat točk z klasifikacijo.<br>
Za pravilen izvoz z klasifikacijo je zahtevana uporaba kodiranja. Za GSI datoteke brez kodiranja uporabi opcijo "Seznam Točk (Brez Kodiranja) [PtId E N H]"<br>
Kodiranje je opisano v navodilih aplikacije "TPS1100 Convert" za Windows OS.<br>
<br>
<b>TPS1100 Convert</b>: <a href="https://multibox.nohost.me/gitea/boris/TPS1100-Convert#tps1100-convert">Aplikacija</a> | <a href="https://multibox.nohost.me/gitea/boris/TPS1100-Convert/releases">Prenos</a> | <a href="https://multibox.nohost.me/gitea/boris/TPS1100-Convert/wiki">Wiki</a> | <a href="https://multibox.nohost.me/gitea/boris/TPS1100-Convert/raw/branch/main/Podatki/Navodila.pdf">Navodila (PDF)</a>
</p>
<hr>
</hr>
<form action="obdelava.php" method="post" enctype="multipart/form-data" target="_blank"> <form action="obdelava.php" method="post" enctype="multipart/form-data" target="_blank">
<h2> <h3>
Datoteka za procesiranje (GSI) Procesiranje GSI datoteke
</h2> </h3>
<hr> <p>
</hr> Naloži GSI datoteko za procesiranje...
</p>
<input type="file" name="fileToUpload" id="fileToUpload" label=" Izberi GSI datoteko..." itemtype="" /><br> <input type="file" name="fileToUpload" id="fileToUpload" label=" Izberi GSI datoteko..." itemtype="" /><br>
<hr>
</hr>
<h3> <h3>
Podatki & Format izvoza Priprava Podatkov
</h3> </h3>
<input type="radio" name="obdelava" id="tockeklas" value="tockeklas" checked="true" /> <p>
<label for="tocke">[ PtId E N H Tip ] - Seznam Točk + Klasifikacija <b>(Kode)</b></label><br> Izberi način priprave za izvoz podatkov...
<input type="radio" name="obdelava" id="tocke" value="tocke" /> </p>
<label for="merjeno">[ PtId E N H ] - Seznam Merjenih Točk <b>(Kode)</b></label><br>
<input type="radio" name="obdelava" id="tockebrez" value="tockebrez" /> <input type="radio" name="obdelava" id="tockebrez" value="tockebrez" />
<label for="zapisnik">[ PtId E N H ] - Seznam Točk (Brez Kodiranja)</label> <label for="tockebrez"> - Seznam Točk (Brez Kodiranja) [PtId E N H]</label><br>
<hr> <input type="radio" name="obdelava" id="tockeklas" value="tockeklas" checked="true" />
</hr> <label for="tockeklas"> - Merjene Točke + Klasifikacija [PtId E N H Class] <img src="icons8-error-48.png" height="21px" alt="Kodiranje" ></label><br>
<input type="radio" name="obdelava" id="tocke" value="tocke" />
<label for="tocke"> - Merjene Točke [PtId E N H] <img src="icons8-error-48.png" height="21px"></label><br>
<input type="radio" name="obdelava" id="geoskripta" value="geoskripta" />
<label for="geoskripta"> - GEO Skripta (za preračune meritev v Geo10/GeoPro) <img src="icons8-error-48.png" height="21px"></label><br>
<br>
<p style="font-size: small;">
<img src="icons8-error-48.png" height="21px"> Datoteka GSI mora vsebovati kodiranje podatkov za pravilno procesiranje. (Stojišča, Orientacije, Meritve, ...)
</p>
<h3> <h3>
Datoteka Format Datoteke
</h3> </h3>
<p>
Izberi tip datoteke za izvoz...
</p>
<input type="radio" name="tipdat" id="txt" value="txt" checked="true" /> <input type="radio" name="tipdat" id="txt" value="txt" checked="true" />
<label for="txt">TXT</label> <label for="txt">TXT</label>
<input type="radio" name="tipdat" id="koo" value="koo" /> <input type="radio" name="tipdat" id="koo" value="koo" />
<label for="txt">KOO</label><br> <label for="txt">KOO</label><br><br>
<input type="submit" value="Pripravi Datoteko" name="submit"> <input type="submit" value="Pripravi Datoteko" name="submit">
</form> </form>
<?php <?php
@ -144,11 +172,10 @@ $version = "1.1";
?> ?>
<hr> <hr>
</hr> </hr>
<br><br><br> <br><br>
<p> <p>
<?php <?php
print "Verzija: " . $version ."<br>"; print "Verzija: " . $version . " | Izdelal: " . $madeby;
print "Skripto pripravil: " . $madeby ."<br>";
?> ?>
</p> </p>
<p> <p>

View File

@ -1,6 +1,6 @@
<?php <?php
// Version: 1.1 $madeby = "Boris Bilc";
// Made by: Boris Bilc $version = "1.2";
// For learning and experimental use only // For learning and experimental use only
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
@ -24,16 +24,37 @@
} }
body { body {
background-color: rgba(0, 0, 0, 100.0); background-color: rgba(30, 30, 30, 100.0);
color: #e0e0e0; color: #e0e0e0;
padding: 10px; padding: 10px;
font-family: 'Courier New', Courier, monospace; font-family: 'Courier New', Courier, monospace;
font-size: 12pt; font-size: 12pt;
} }
h1 {
color: deepskyblue;
font-size: 1.8em;
font-weight: bold;
}
h2 {
color: #FFDB23;
font-size: 1.4em;
margin-top: 25px;
margin-bottom: 15px;
}
h3 { h3 {
color: #FFDB23; color: #FFDB23;
font-size: 1.3em; font-size: 1.25em;
margin-top: 20px;
margin-bottom: 15px;
border-bottom: 1px solid #FFDB23;
}
hr {
color: lightgrey;
border-color: darkorange;
} }
table { table {
@ -87,7 +108,15 @@
<html> <html>
<body> <body>
<h2>TPS1100 Convert Online</h2>
<p>
<?php
print "Verzija: " . $version . " | Izdelal: " . $madeby ." | ";
?>
<a href="https://multibox.nohost.me/website" target="_blank">MultiBox</a>
</p>
<hr>
</hr>
<?php <?php
use Vtiful\Kernel\Format; use Vtiful\Kernel\Format;
@ -104,7 +133,7 @@
echo "Napaka! Izberi datoteko GSI...<br>"; echo "Napaka! Izberi datoteko GSI...<br>";
$uploadOk = 0; $uploadOk = 0;
} else { } else {
echo "Branje datoteke... <b>" . basename($target_file) . "</b><br><br>"; echo "Procesiranje datoteke >>> <b>" . basename($target_file) . "</b><br><br>";
$uploadOk = 1; $uploadOk = 1;
} }
} }
@ -147,7 +176,7 @@
$down_url = "https://gps.multibox.nohost.me/points/"; $down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova; $down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it // If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) { if (file_exists($down_datnova)) {
@ -251,7 +280,7 @@
die('file not found'); die('file not found');
} else { } else {
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
} }
} }
@ -269,7 +298,7 @@
$down_url = "https://gps.multibox.nohost.me/points/"; $down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova; $down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it // If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) { if (file_exists($down_datnova)) {
@ -323,17 +352,17 @@
} }
if ($merjene == 1) { if ($merjene == 1) {
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tMEAS\r\n"; $lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tMEAS\r\n";
print '<div style="color: aqua">'. $lineout . '</div>'; print '<div style="color: white">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX); file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
} }
if ($merjene == 2) { if ($merjene == 2) {
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tREF\r\n"; $lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tREF\r\n";
print '<div style="color: orange">'. $lineout . '</div>'; print '<div style="color: yellow">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX); file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
} }
if ($merjene == 3) { if ($merjene == 3) {
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tORI\r\n"; $lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tORI\r\n";
print '<div style="color: lightgreen">'. $lineout . '</div>'; print '<div style="color: lightgreen">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX); file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
} }
} }
@ -358,7 +387,7 @@
} }
if ($pointSta == 1) { if ($pointSta == 1) {
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tSTA\r\n"; $lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tSTA\r\n";
print '<div style="color: #d1f200">'. $lineout . '</div>'; print '<div style="color: cyan">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX); file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
} }
$pointSta = 0; $pointSta = 0;
@ -373,7 +402,127 @@
die('file not found'); die('file not found');
} else { } else {
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
}
}
// Funkcija za izvoz koordinat točk z klasifikacijo (GSI z kodami)
function izvoz_geoskripta($name)
{
$down_dir = "convert/";
$down_datime = $down_dir . basename($_FILES["fileToUpload"]["name"]);
$down_datnova = str_replace(".GSI", ".GEO", $down_datime);
$down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) {
unlink($down_datnova);
}
$this->obdelavaTocke = $name;
$file_handle = fopen($name, "rb");
$merjene = 0;
$stojisce = 0;
$kode_ok = 0;
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
$parts = explode(' ', $line_of_text);
$word_index = substr($parts[0], 1, 2);
$pointSta = 0;
if ($word_index == 41) {
$kode_ok = 1;
$koda = ltrim(substr($parts[0], 8), "0");
if ($koda == 99) {
$merjene = 2;
$stojisce = 0;
} elseif ($koda >= 90) {
$merjene = 1;
$stojisce = 0;
} elseif ($koda >= 80) {
$merjene = 3;
$stojisce = 0;
} elseif ($koda < 80) {
$merjene = 0;
$stojisce = 1;
} else {
$merjene = 0;
$stojisce = 0;
}
}
if ($word_index == 11 && $merjene >= 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 21) {
$pointHz = substr($datpart, 6) / 100000;
}
if ($data_index == 22) {
$pointV = substr($datpart, 6) / 100000;
}
if ($data_index == 31) {
$pointSd = substr($datpart, 6) / 1000;
}
if ($data_index == 87) {
$pointHr = substr($datpart, 6) / 1000;
}
}
if ($merjene == 1) {
$lineout = $pointid . "\t" . number_format($pointHz, 4, ".", "") . "\t" . number_format($pointV, 4, ".", "") . "\t" . number_format($pointSd, 3, ".", "") . "\t" . number_format($pointHr, 3, ".", "") . "\r\n";
print '<div style="color: white">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
// if ($merjene == 2) {
// $lineout = $pointid . "\t" . number_format($pointHz, 4, ".", "") . "\t" . number_format($pointV, 4, ".", "") . "\t" . number_format($pointSd, 3, ".", "") . "\t" . number_format($pointHr, 3, ".", "") . "\r\n";
// print '<div style="color: yellow">' . $lineout . '</div>';
// file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
// }
if ($merjene == 3) {
$lineout = $pointid . "\t" . number_format($pointHz, 4, ".", "") . "\t" . number_format($pointV, 4, ".", "") . "\t" . number_format($pointSd, 3, ".", "") . "\t" . number_format($pointHr, 3, ".", "") . "\r\n";
print '<div style="color: lightgreen">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
}
if ($word_index == 11 && $stojisce == 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 25) {
$pointSta = $pointSta + 1;
}
if ($data_index == 88) {
$pointHt = substr($datpart, 6) / 1000;
}
}
if ($pointSta == 1) {
$lineout = $pointid . " " . number_format($pointHt, 3, ".", "") . "\r\n21 759.81\r\n";
print '<div style="color: cyan">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
} else {
$lineout = "-1 0 0 0 0\r\n" . $pointid . " " . number_format($pointHt, 3, ".", "") . "\r\n21 759.81\r\n";
print '<div style="color: cyan">' . $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
}
}
fclose($file_handle);
if ($kode_ok == 0) {
print "Ni podatkov... je datoteka kodirana?";
}
print "<br>";
if (!file_exists($down_datnova)) { // file does not exist
die('file not found');
} else {
print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
} }
} }
@ -391,7 +540,7 @@
$down_url = "https://gps.multibox.nohost.me/points/"; $down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova; $down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it // If the user file in existing directory already exist, delete it
@ -468,7 +617,7 @@
die('file not found'); die('file not found');
} else { } else {
print "--------------------------------------------<br>"; print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>"; print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)</b><br><br>";
} }
} }
@ -496,6 +645,8 @@
$datTocke->izvoz_tocke($target_file); $datTocke->izvoz_tocke($target_file);
} elseif ($_POST['obdelava'] == "tockebrez") { } elseif ($_POST['obdelava'] == "tockebrez") {
$datTocke->izvoz_tockebrez($target_file); $datTocke->izvoz_tockebrez($target_file);
} elseif ($_POST['obdelava'] == "geoskripta") {
$datTocke->izvoz_tockebrez($target_file);
} else { } else {
echo "Izbrana opcija ni na voljo. Se opravičujemo."; echo "Izbrana opcija ni na voljo. Se opravičujemo.";
} }