Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
#
# $Id$
# $HeadURL$
# $Author$
#
SET(SCRIPTS
infrastructure.html
)
SET(JS
js/infrastructure.js
)
NGL_INSTALL(AAR SV FILES ${SCRIPTS} DESTINATION testing/InfrastructureManagement)
NGL_INSTALL(AAR SV FILES ${JS} DESTINATION testing/InfrastructureManagement/js)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+32
View File
@@ -0,0 +1,32 @@
/* Spaltenbreite */
.columnstyle {
width: 600px;
height: 600px;
column-width: 200px;
}
/* Spaltenanzahl */
.columnstyle {
width: 600px;
height: 600px;
column-count: 3;
}
/* Abstand und Trennlinie */
.columnstyle {
width: 600px;
height: 600px;
column-count: 3;
column-gap: 10px;
}
.columnstyle {
width: 600px;
height: 600px;
column-count: 3;
column-rule-color: red;
column-rule-width: 1px;
column-rule-style: dotted;
}
+572
View File
@@ -0,0 +1,572 @@
<!DOCTYPE HTML>
<meta charset="utf-8" />
<html>
<head>
<title>Infrastructure</title>
<style>
th {
text-align: left;
}
table {
text-align: left;
table-layout: fixed;
width: 100%;
}
</style>
<link href="css/columnlayout.css" rel="stylesheet">
<script type="text/javascript" src="js/infrastructure.js"></script>
</head>
<body>
<!-- divFunctions -->
<hr>
<table style="width:40.5%" id="HeaderTable">
<tr id="HeaderTableRow">
<td>
<div id="WebSocketStart">
<input type="button" id="create" value="Connect to Server" onclick="WebSocketTest()">
</div>
</td>
<td>
<form>
<input type="text" value="EXCTDS01:2080" id="ipadresse" />
</form>
</td>
<td>
<div id="Serverconnect">
<font color="red">
Server: not connected
</font>
</div>
</td>
</tr>
</table>
<hr>
<H1>Mounting Points</H1>
<table>
<th>
<H2>BT 56</H2>
</th>
<th>
<H2>BT 575</H2>
</th>
<th>
<H2>BT 576</H2>
</th>
<th>
<H2>BT 577</H2>
</th>
<tr>
<td>
<a href="Documents/BT56neuBSM.pdf">Mounting Points BSM</a>
<br>
<a href="Documents/BT56neuIPS.pdf">Mounting Points IPS</a>
<br>
</td>
<td>
<a href="Documents/BT575/BT575_GSM.pdf">Mounting Points GSM</a>
<br>
<a href="Documents/BT575/BT575E_IPS.pdf">Mounting Points E IPS</a>
<br>
<a href="Documents/BT575/BT575O_IPS.pdf">Mounting Points 0 IPS</a>
<br>
</td>
<td>
<a href="Documents/BT576/BT576_GSM.pdf">Mounting Points GSM</a>
<br>
<a href="Documents/BT576/BT576_IPS.pdf">Mounting Points IPS</a>
<br>
</td>
<td>
<a href="Documents/BT577/BT577GSM.pdf">Mounting Points GSM</a>
<br>
<a href="Documents/BT577/BT577IPS.pdf">Mounting Points IPS</a>
<br>
</td>
</tr>
</table>
<input type="button" value="Show/Hide functions" onclick="toggle('divFunctions');return false">
<hr>
<div style="display: none" id="divFunctions">
<h2>Mount by ID's</h2>
<label type="number" for="mount_mountingPointId">Mounting Point Id:</label>
<input id="mount_mountingPointId" name="mount_mountingPointId">
<label type="number" for="mount_assetId"></label>
Asset Id:
<input id="mount_assetId" name="mount_assetId">
<input type="button" id="sendMount" value="Send mount" onclick="sendMount()">
<h2>Mount by tag</h2>
<label type="text" for="mountTag_mountingPointTag">Mounting Point tag:</label>
<input id="mountTag_mountingPointTag" name="mountTag_mountingPointTag">
<label type="text" for="mountTag_assetTag">
Asset tag:
</label>
<input id="mountTag_assetTag" name="mountTag_assetTag">
<input type="button" id="sendMountTag" value="Send mountTag" onclick="sendMountTag()">
<h2>Unmount asset</h2>
<label type="number" for="unmountAsset_assetId"></label>
<label>
Asset ID:
</label>
<input id="unmountAsset_assetId" name="unmountAsset_assetId">
<input type="button" id="unmountAsset" value="Send unmountAsset" onclick="sendUnmountAsset()">
<h2>Unmount mounting point</h2>
<label type="number" for="unmountMountingPoint_assetId">
Mounting Point ID:
</label>
<input id="unmountMountingPoint_mountingPointId" name="unmountMountingPoint_mountingPointId">
<input type="button" id="unmountMountingPoint" value="Send unmountMountingPoint" onclick="sendUnmountMountingPoint()">
<h2>Unmount object (=building)</h2>
<label type="number" for="unmountObject_objectId">
Object ID:
</label>
<input id="unmountObject_objectId" name="unmountObject_objectId">
<input type="button" id="unmountObject" value="Send unmountObject" onclick="sendUnmountObject()">
<h2>Unmount area</h2>
<label type="number" for="unmountArea_areaId">
Area ID:
</label>
<input id="unmountArea_areaId" name="unmountArea_areaId">
<input type="button" id="unmountArea" value="Send unmountArea" onclick="sendUnmountArea()">
<h2>Object mounting ready</h2>
<label type="number" for="objectMountingReady_plannedMountingId">Planned mounting ID:</label>
<input id="objectMountingReady_plannedMountingId" name="objectMountingReady_plannedMountingId">
<label type="number" for="objectMountingReady_objectId">
Object ID:
</label>
<input id="objectMountingReady_objectId" name="objectMountingReady_objectId">
<input type="button" id="objectMountingReady" value="Send objectMountingReady" onclick="sendObjectMountingReady()">
<h2>Get asset state</h2>
<label type="number" for="getAssetState_assetId">Asset ID:
</label>
<input id="getAssetState_assetId" name="getAssetState_assetId">
<label type="text" for="getAssetState_assetTag">
Asset tag:
</label>
<input id="getAssetState_assetTag" name="getAssetState_assetTag">
<input type="button" id="getAssetState" value="Send getAssetState" onclick="sendGetAssetState()">
<h2>Get building state</h2>
<label type="number" for="getBuildingState_buildingId">
Building ID:</label>
<input id="getBuildingState_buildingId" name="getBuildingState_buildingId">
<input type="button" id="getBuildingState" value="Send getBuildingState" onclick="sendGetBuildingStateManually()">
<hr>
<div id="sendGet">
<input type="button" id="GetEssentials" value="GetEssentials" onclick="sendGetEssentials()">
<input type="button" id="SendGetBuildingState" value="GetBuildingState" onclick="sendGetBuildingState(1)">
<input type="button" id="SendGetAssets" value="GetAssets" onclick="sendGetAssets()">
</div>
<!-- sendGet -->
<h2>Mounten für Faule -- USE WITH CAUTION!</h2>
<input type="button" id="mountingHack" value="send mounting hack" onclick="mountingHackForBldg56Ref()">
</div>
<!-- divFunctions -->
<H2>Select Building</H2>
<form name="BuildingForm" id="BuildingForm">
<table>
<div class="columnstyle">
<p id="rbBuildings">
</div>
</table>
<input type="button" id="Submit" value="Submit" onclick="checkedBuilding(document.BuildingForm.bg)">
</form>
<hr>
<H1 id="BuildingTable">No Building selected</h1>
<div style="display: none" id="mountAssets">
<!-- Choose Asset Type -->
<h2>Choose Asset Type</h2>
<form action="#">
<label>AssetType:
<select name="AssetTypes" onchange="selectAssetType(this.value)" id="selectAsset">
<option value=1>BuildingSensorModule</option>
<!--<option value=2>BuildingControlUnit</option>-->
<option value=3>OutdoorCamera</option>
<option value=4>IndoorCamera</option>
<option value=5>OutdoorIPS</option>
<option value=6>IndoorIPS</option>
<option value=7>MeteoDataUnit</option>
<option value=10>AnnouncementUnit</option>
<option value=12>EffectGenerationControlUnit</option>
<option value=13>OutdoorControlUnit</option>
<option value=14>BuildingNetworkSwitch</option>
</select>
</label>
</form>
<!-- Mount BSM's-->
<div style="display: none" id="divBuildingSensorModule">
<H2>Mount BSM </H2>
Assign BSM to Mountpoint:
<form name="MountFormBsm" id="MountFormBsm">
<table style="width:50.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsBsm">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsBsm">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormBsm.mp, document.MountFormBsm.ASSET)">
</form>
</div>
<!--divBuildingSensorModule-->
<!-- Mount BCU's-->
<div style="display: none" id="divBuildingControlUnit">
<H2>Mount BCU </H2>
Assign BCU to Mountpoint:
<form name="MountFormBcu" id="MountFormBcu">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsBcu">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsBcu">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormBcu.mp, document.MountFormBcu.ASSET)">
</form>
</div>
<!--divBuildingControlUnit-->
<!-- Mount IPS in's-->
<div style="display: none" id="divIndoorIPS">
<H2>Mount IPS In</H2>
Assign IPS In to Mountpoint:
<form name="MountFormIpsIn" id="MountFormIpsIn">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsIpsIn">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsIpsIn">
</p>
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormIpsIn.mp, document.MountFormIpsIn.ASSET)">
</form>
</div>
<!--divIndoorIPS-->
<!-- Mount IPS Out -->
<div style="display: none" id="divOutdoorIPS">
<H2>Mount IPS Out</H2>
Assign IPS Out to Mountpoint:
<form name="MountFormIpsOut" id="MountFormIpsOut">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsIpsOut">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsIpsOut">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormIpsOut.mp, document.MountFormIpsOut.ASSET)">
</form>
</div>
<!--divOutdoorIPS-->
<!-- Mount Cameras-->
<div style="display: none" id="divIndoorCamera">
<H2>Mount Camera In</H2>
Assign Camera in to Mountpoint:
<form name="MountFormCameraIn" id="MountFormCameraIn">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsCameraIn">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsCameraIn">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormCameraIn.mp, document.MountFormCameraIn.ASSET)">
</form>
</div>
<!--divIndoorCamera-->
<!-- Mount Cameras-->
<div style="display: none" id="divOutdoorCamera">
<H2>Mount Camera Out</H2>
Assign Camera in to Mountpoint:
<form name="MountFormCameraOut" id="MountFormCameraOut">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsCameraOut">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsCameraOut">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormCameraOut.mp, document.MountFormCameraOut.ASSET)">
</form>
</div>
<!--divOutdoorCamera-->
<!-- MDU-->
<div style="display: none" id="divMeteoDataUnit">
<H2>Mount Meteo Data Unit</H2>
Assign Meteo Data Unit to Mountpoint:
<form name="MountFormMdu" id="MountFormMdu">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsMdu">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsMdu">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormMdu.mp, document.MountFormMdu.ASSET)">
</form>
</div>
<!--divMeteoDataUnit-->
<!-- Announcemenmt-->
<div style="display: none" id="divAnnouncementUnit">
<H2>Mount AnnouncementUnit </H2>
Assign AnnouncementUnit to Mountpoint:
<form name="MountFormAnnouncement" id="MountFormAnnouncement">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsAnnouncement">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsAnnouncement">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormAnnouncement.mp, document.MountFormAnnouncement.ASSET)">
</form>
</div>
<!--divAnnouncementUnit-->
<!-- EGCU-->
<div style="display: none" id="divEffectGenerationControlUnit">
<H2>Mount Effect Generation Unit</H2>
Assign Effect Generation Unit to Mountpoint:
<form name="MountFormEgcu" id="MountFormEgcu">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsEgcu">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsEgcu">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormEgcu.mp, document.MountFormEgcu.ASSET)">
</form>
</div>
<!--divEffectGenerationControlUnit-->
<!-- OCU-->
<div style="display: none" id="divOutdoorControlUnit">
<H2>Mount Outdoor Control Unit</H2>
Assign Outdoor Control Unit to Mountpoint:
<form name="MountFormOcu" id="MountFormOcu">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsOcu">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsOcu">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormOcu.mp, document.MountFormOcu.ASSET)">
</form>
</div>
<!--divEffectGenerationControlUnit-->
<div style="display: none" id="divBuildingNetworkSwitch">
<H2>Mount Building Network Switch</H2>
Assign Building Network Switch to Mountpoint:
<form name="MountFormBns" id="MountFormBns">
<table style="width:30.0%">
<tr>
<th>
Mountpoint
</th>
<th>
Asset
</th>
</tr>
<tr>
<td>
<p id="rbMountPointsBuildingNetworkSwitch">
</td>
<td>
<div class="columnstyle">
<p id="rbAssetsBuildingNetworkSwitch">
</div>
</td>
</tr>
</table>
<input type="button" id="Mount" value="Mount" onclick="sendMountAssets(document.MountFormBns.mp, document.MountFormBns.ASSET)">
</form>
</div>
<!-- Unmount -->
<hr>
<H2>unmount Asset</h2>
<table id="AssetStateTable">
</table>
<hr>
<input type="button" value="Show/Hide Details" onclick="toggle('divText');return false">
<div style="display: none" id="divText">
<H1>Area</h1>
<p id="area">
<hr>
<H1>Asset State</h1>
<p id="assetState">
<hr>
<H1>Asset State Object</h1>
<p id="assetStateObject">
<hr>
<H1>Assets</h1>
<p id="assets">
<hr>
<H1>Asset Type</h1>
<p id="assetType">
<hr>
<H1>Error</h1>
<p id="error">
<hr>
<H1>Level</h1>
<p id="level">
<hr>
<H2>Mount Point Table</H2>
<table id="mountingPointTable">
</table>
<p id="mountingPoint">
<hr>
<H1>Object</h1>
<p id="object">
<hr>
<H1>Object Mounting</h1>
<p id="objectMounting">
<hr>
<H1>Ok</h1>
<p id="ok">
<hr>
<H1>Planned Mounting</h1>
<p id="plannedMounting">
<hr>
<H1>Room</h1>
<p id="room">
<hr>
<H1>Training Area
</h1>
<p id="trainingArea">
<body/>
</div>
<!-- divText -->
</html>
+834
View File
@@ -0,0 +1,834 @@
'use strict';
var exampleSocket;
var SelBranchVal = "";
var connectedToServer = false;
var assetType = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]; // Todo Eintraege beim fuellen erstellen.
var buildingsArr = [];
var assetsArrBsm = [];
var assetsArrBcu = [];
var assetsArrIpsIn = [];
var assetsArrIpsOut = [];
var assetsArrCameraIn = [];
var assetsArrCameraOut = [];
var assetsArrMdu = [];
var assetsArrEgcu = [];
var assetsArrAnnouncements = [];
var assetsArrBuildingNetworkSwitch = [];
var mountPointArr = [];
var objectArr = [];
var buildingId = -1;
var tempType = 1;
var collator = new Intl.Collator(undefined, {
numeric: true,
sensitivity: "base"
});
function sortEntries(a, b)
{
return collator.compare(a.designation, b.designation);
}
window.onload = function () {
WebSocketTest();
}
function debug() {
console.log("BSMAssets: " + assetsArrBsm);
console.log("BCUAssets: " + assetsArrBcu);
console.log("IpsInAssets; " + assetsArrIpsIn);
console.log("IpsOutAssets: " + assetsArrIpsOut);
console.log("CameraInAssets: " + assetsArrCameraIn);
console.log("CameraOutAssets: " + assetsArrCameraOut);
console.log("MDUAssets: " + assetsArrMdu);
console.log("EGCUAssets: " + assetsArrEgcu);
console.log("AnnouncementAssets: " + assetsArrAnnouncements);
console.log("BuildingNetworkSwitch: " + assetsArrBuildingNetworkSwitch);
console.log("Buildings: " + buildingsArr);
}
function WebSocketTest() {
if ("WebSocket" in window) {
{
var ipadresse = document.getElementById("ipadresse").value;
exampleSocket = new WebSocket("ws://" + ipadresse);
connectedToServer = true;
}
exampleSocket.onopen = function () {
document.getElementById("Serverconnect").innerHTML = "Server: connected";
document.getElementById("Serverconnect").style.color = "green"
sendGetEssentials();//sendet Anfrage erhält obj mit arrays der Essentials
document.getElementById('selectAsset').value = 1;
};
//wird immer aufgerufen wenn der Socket eine Nachricht vom Server empfängt
exampleSocket.onmessage = function (event) {
var msg = JSON.parse(event.data);
console.log (JSON.stringify(msg));
console.log (JSON.stringify(event));
switch (msg.type) {
case "essentials":
objectArr = []
buildingsArr = []
msg.data.objects.forEach(element => {
var bg = {
designation: element.designation,
id: element.id
};
objectArr.push(bg);
buildingsArr.push(element.designation);
});
createBuildingsHtml();
var html = ""
msg.data.areas.forEach(element => {
html += JSON.stringify(element) + "<br>"
});
document.getElementById("area").innerHTML = html;
html = ""
msg.data.trainingAreas.forEach(element => {
html += JSON.stringify(element) + "<br>"
});
document.getElementById("trainingArea").innerHTML = html;
handleMountingPoint(msg.data.mountingPoints);
//console.log("essentials finish");
break;
case "assets":
console.log("msg=");
console.log(msg);
handleAssets(msg);
break;
case "assetStateObject":
html = JSON.stringify(msg) + "<br>"
document.getElementById("assetStateObject").innerHTML = html;
handleAssetStateObject(msg);
break;
default:
break;
}
};
exampleSocket.onclose = function () {
// websocket is closed.
document.getElementById("Serverconnect").innerHTML = "Server: not connected";
document.getElementById("Serverconnect").style.color = "grey";
document.getElementById("Wlsconnect").innerHTML = "Wls: not connected";
document.getElementById("Wlsconnect").style.color = "red";
connectedToServer = false;
alert("Connection to Server closed.");
};
}
else {
// The browser doesn't support WebSocket
alert("WebSocket is NOT supported by your Browser!");
}
}
function update() {
switch (tempType)
{
case 1: updateBsm(); break;
case 2: updateBcu(); break;
case 3: updateCameraOut(); break;
case 4: updateCameraIn(); break;
case 5: updateIpsOut(); break;
case 6: updateIpsIn(); break;
case 7: updateMdu(); break;
case 10: updateAnnouncement(); break;
case 12: updateEgcu(); break;
case 14: updateBuildingNetworkSwitch(); break;
}
}
function checkedBuilding(rObj) {
//array der radiobuttons abfragen
clearAssetArrays();
setBuilding(rObj.value);
return false;
}
function findIdByDesignation(arr, designation)
{
for (var i = 0; i < arr.length; i++) {
if (designation == arr[i].designation) {
return arr[i].id;
}
}
return -1;
}
async function setBuilding(building) {
buildingId = findIdByDesignation(objectArr, building);
document.getElementById("BuildingTable").innerHTML = building;
sendGetAssets();//schickt anfragen an den Server
sendGetEssentials();
sendGetBuildingState();
show('mountAssets');
}
function sendMountAssets(MountingPoints, Assets) {
var mountPoint = document.querySelector('input[name="mp"]:checked').value;
//console.log("Asset="+document.querySelector('input[name="ASSET"]:checked').value);
var asset = document.querySelector('input[name="ASSET"]:checked').value;
var mountPointId = findIdByDesignation(mountPointArr, mountPoint);
var assetId = findIdByDesignation(assetsArrBsm, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrBcu, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrIpsIn, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrIpsOut, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrCameraIn, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrCameraOut, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrMdu, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrAnnouncements, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrEgcu, asset);
if (assetId < 0)
assetId = findIdByDesignation(assetsArrBuildingNetworkSwitch, asset);
if ((mountPointId > 0) && (assetId > 0)) {
var message = JSON.stringify({
type: "mount",
uuid: "UUID",
data: {
mountingPointId: mountPointId,
assetId: assetId
}
});
} else {
return;
}
console.log(message);
exampleSocket.send(message);
sendGetEssentials();
sendGetBuildingState();
sendGetAssets();
document.querySelector('#rbMountPointsBsm').innerHTML = "";
document.querySelector('#rbMountPointsBcu').innerHTML = "";
document.querySelector('#rbMountPointsIpsIn').innerHTML = "";
document.querySelector('#rbMountPointsIpsOut').innerHTML = "";
document.querySelector('#rbMountPointsCameraIn').innerHTML = "";
document.querySelector('#rbMountPointsCameraOut').innerHTML = "";
document.querySelector('#rbMountPointsMdu').innerHTML = "";
document.querySelector('#rbMountPointsAnnouncement').innerHTML = "";
document.querySelector('#rbMountPointsEgcu').innerHTML = "";
document.querySelector('#rbMountPointsBuildingNetworkSwitch').innerHTML = "";
}
function sendMount() {
var mountingPointId = String(mount_mountingPointId.value);
var assetId = String(mount_assetId.value);
if (mountingPointId.length == 0)
mountingPointId = null;
else
mountingPointId = Number(mountingPointId);
if (assetId.length == 0)
assetId = null;
else
assetId = Number(assetId);
message = JSON.stringify({
type: "mount",
uuid: "UUID",
data: {
mountingPointId: mountingPointId,
assetId: assetId
}
});
exampleSocket.send(message);
sendGetAssets();
sendGetBuildingState();
sendGetEssentials();
}
function mountingHackForBldg56Ref() {
var messages = ['{"type":"mount","uuid":"UUID","data":{"mountingPointId":36,"assetId":10}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":40,"assetId":11}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":45,"assetId":12}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":53,"assetId":13}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":31,"assetId":31}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":56,"assetId":32}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":51,"assetId":33}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":64,"assetId":34}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":88,"assetId":35}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":83,"assetId":36}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":54,"assetId":23}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":61,"assetId":24}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":46,"assetId":25}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":34,"assetId":22}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":67,"assetId":29}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":92,"assetId":26}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":85,"assetId":27}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":77,"assetId":21}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":89,"assetId":28}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":18,"assetId":50}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":19,"assetId":51}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":20,"assetId":52}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":21,"assetId":53}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":22,"assetId":54}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":23,"assetId":55}}',
'{"type":"mount","uuid":"UUID","data":{"mountingPointId":27,"assetId":41}}'];
function sendMessage(message) {
exampleSocket.send(message);
}
messages.forEach(sendMessage);
}
function sendMountTag() {
//console.log("sendMountTag ");
var mountingPointTag = String(mountTag_mountingPointTag.value);
//console.log(mountTag_mountingPointTag.value);
if (mountingPointTag.length == 0)
mountingPointTag = null;
var assetTag = String(mountTag_assetTag.value);
if (assetTag.length == 0)
assetTag = null;
exampleSocket.send(JSON.stringify({
type: "mountTag",
uuid: "UUID",
data: {
mountingPointTag: mountingPointTag,
assetTag: assetTag
}
}));
}
function sendUnmountAsset() {
//console.log("sendUnmountAsset ");
exampleSocket.send(JSON.stringify({
type: "unmountAsset",
uuid: "UUID",
data: {
assetId: Number(unmountAsset_assetId.value)
}
}));
sendGetEssentials();
sendGetBuildingState();
sendGetAssets();
}
function sendUnmountMountingPoint() {
//console.log("sendUnmountMountingPoint ");
exampleSocket.send(JSON.stringify({
type: "unmountMountingPoint",
uuid: "UUID",
data: {
mountingPointId: Number(unmountMountingPoint_mountingPointId.value)
}
}));
sendGetEssentials();
sendGetBuildingState();
sendGetAssets();
}
//---------noch nicht funktionsfähig/getestet----------//
function sendUnmountObject() {
//console.log("sendUnmountObject ");js/infrastructure.js:219
exampleSocket.send(JSON.stringify({
type: "unmountObject",
uuid: "UUID",
data: {
objectId: Number(unmountObject_objectId.value)
}
}));
}
function sendUnmountArea() {
//console.log("sendUnmountArea ");
exampleSocket.send(JSON.stringify({
type: "unmountArea",
uuid: "UUID",
data: {
areaId: Number(unmountArea_areaId.value)
}
}));
}
function sendObjectMountingReady() {
//console.log("sendObjectMountingReady ");
exampleSocket.send(JSON.stringify({
type: "objectMountingReady",
uuid: "UUID",
data: {
plannedMountingId: Number(objectMountingReady_plannedMountingId.value),
objectId: Number(objectMountingReady_objectId.value)
}
}));
}
function sendGetAssetState() {
var assetTag = String(getAssetState_assetTag.value);
if (assetTag.length == 0)
assetTag = null;
exampleSocket.send(JSON.stringify({
type: "getAssetState",
uuid: "UUID",
data: {
assetId: Number(getAssetState_assetId.value),
assetTag: assetTag
}
}));
}
function sendGetBuildingStateManually() {
//console.log("sendGetBuildingState ");
exampleSocket.send(JSON.stringify({
type: "getBuildingState",
uuid: "UUID",
data: {
buildingId: Number(getBuildingState_buildingId.value)
}
}));
}
function sendGetBuildingState() {
exampleSocket.send(JSON.stringify({
type: "getBuildingState",
uuid: "UUID",
data: {
buildingId: buildingId
}
}));
}
//--------------------------------------------------------//
function sendGetAssets() {
//exampleSocket schickt eine Abfrage an den Server
//liefert das asset mit der TypId zurück
// BSM
exampleSocket.send(JSON.stringify({
type: "getAssets",
uuid: "UUID",
data: {
assetTypeId: [1, 2, 3, 4, 5, 6, 10, 12, 14]
}
}));
}
function sendGetEssentials() {
mountPointArr = [];
initMountingPointTable();
document.getElementById("area").innerHTML = "";
document.getElementById("assetState").innerHTML = "";
document.getElementById("assetStateObject").innerHTML = "";
document.getElementById("assetType").innerHTML = "";
document.getElementById("error").innerHTML = "";
document.getElementById("level").innerHTML = "";
document.getElementById("mountingPoint").innerHTML = "";
document.getElementById("object").innerHTML = "";
document.getElementById("objectMounting").innerHTML = "";
document.getElementById("ok").innerHTML = "";
document.getElementById("plannedMounting").innerHTML = "";
document.getElementById("room").innerHTML = "";
document.getElementById("trainingArea").innerHTML = "";
exampleSocket.send(JSON.stringify({
type: "getEssentials",
uuid: "UUID"
}));
}
async function sendUnmountAssetById(id) {
exampleSocket.send(JSON.stringify({
type: "unmountAsset",
uuid: "UUID",
data: {
assetId: id
}
}));
sendGetEssentials();
sendGetBuildingState();
sendGetAssets();
}
function handleAssetStateObject(msg) {
var table = "";
var assetDesignator = "";
var mountPointDesignation = "";
table += "<tr><th>assetId</th>";
table += "<th>assetTypeId</th>";
// table += "<th>assetType</th>";
table += "<th>ipAddr</th>";
table += "<th>mountingPointId</th>";
table += "<th>state</th>";
table += "<th>unmount</th></tr>";
// no assetsArrBcu - they are internal and must not be unmounted
const items = [assetsArrBsm, assetsArrIpsIn, assetsArrIpsOut,
assetsArrCameraIn, assetsArrCameraOut, assetsArrMdu, assetsArrEgcu, assetsArrBuildingNetworkSwitch];
msg.data.assetStates.forEach(asset => {
var assetIdToSearchFor = asset.assetId;
var assetDesignator = null;
for (var i = 0; i < items.length; i++) {
var searchedAsset = items[i].find(entry => {
return (entry.id == assetIdToSearchFor);
});
if (searchedAsset)
{
assetDesignator = searchedAsset.designation;
break;
}
}
if (assetDesignator) {
table += "<tr>";
table += "<td>" + assetDesignator;
table += " (" + asset.assetId + ")</td>";
table += "<td>" + asset.assetTypeId + "</td>";
// table += "<td>" + assetType[asset.assetTypeId] + "</td>";
table += "<td>" + asset.ipAddr + "</td>";
for (var i = 0; i < mountPointArr.length; i++) {
if (mountPointArr[i].id == asset.mountingPointId) {
mountPointDesignation = mountPointArr[i].designation;
break;
}
}
table += "<td>" + mountPointDesignation;
table += " (" + asset.mountingPointId + ")</td>";
table += "<td>" + asset.state + "</td>";
var id = asset.assetId;
table += "<td><input type=\"button\" id=\"unmount\" value=\"unmount\" onclick=\"Javascript:sendUnmountAssetById(" + id + ")\"></td>";
table += "</tr>";
}
});
document.querySelector('#AssetStateTable').innerHTML = table;
}
// Assets: Speichern aller Assets
function handleAssets(msg) {
clearAssetArrays();
document.querySelector('#rbAssetsBsm').innerHTML = "";
document.querySelector('#rbAssetsBcu').innerHTML = "";
document.querySelector('#rbAssetsCameraOut').innerHTML = "";
document.querySelector('#rbAssetsCameraIn').innerHTML = "";
document.querySelector('#rbAssetsIpsIn').innerHTML = "";
document.querySelector('#rbAssetsIpsOut').innerHTML = "";
document.querySelector('#rbAssetsMdu').innerHTML = "";
document.querySelector('#rbAssetsAnnouncement').innerHTML = "";
document.querySelector('#rbAssetsEgcu').innerHTML = "";
document.querySelector('#rbAssetsBuildingNetworkSwitch').innerHTML = "";
msg.data.forEach(msg => {
switch (msg.assetTypeId)
{
case 1: assetsArrBsm.push(msg);
console.log("push assetsArrBsm");
break;
case 2: assetsArrBcu.push(msg); break;
case 3: assetsArrCameraOut.push(msg); break;
case 4: assetsArrCameraIn.push(msg); break;
case 5:
case 6: assetsArrIpsIn.push(msg);
assetsArrIpsOut.push(msg); break;
case 7: assetsArrMdu.push(msg); break;
case 10: assetsArrAnnouncements.push(msg); break;
case 12: assetsArrEgcu.push(msg); break;
case 14: assetsArrBuildingNetworkSwitch.push(msg);
console.log("push assetsArrBuildingNetworkSwitch");
break;
default: console.log("Unknown assetTypeId: " + msg);
}
});
update();
}
function clearAssetArrays() {
assetsArrBsm = [];
assetsArrBcu = [];
assetsArrIpsIn = [];
assetsArrIpsOut = [];
assetsArrCameraIn = [];
assetsArrCameraOut = [];
assetsArrMdu = [];
assetsArrEgcu = [];
assetsArrAnnouncements = [];
assetsArrBuildingNetworkSwitch = [];
}
function initMountingPointTable() {
var table = "";
table += "<tr><th>assetId</th>";
table += "<th>designation</th>";
table += "<th>id</th>";
table += "<th>levelId</th>";
table += "<th>objectId</th>";
table += "<th>supportedAssetTypeIds</th>";
table += "</tr>";
document.querySelector('#mountingPointTable').innerHTML = table;
}
function createRadioButtonHtml(arr, type)
{
function createHtml(entry)
{
return "<input type=\"radio\" name=\"mp\" value=\"" + entry.designation + "\"> " + entry.designation + "<br>";
}
var html = "";
arr.sort(sortEntries);
arr.forEach(entry => {
if (entry.assetId < 0 && entry.supportedAssetTypeIds[0] == type) {
html += createHtml(entry);
}
});
return html;
}
function createRadioButtonAssetHtml(arr)
{
function createHtml(entry)
{
return "<input type=\"radio\" name=\"ASSET\" value=\"" + entry.designation + "\"> " + entry.designation + "<br>";
}
var html = "";
arr.sort(sortEntries);
arr.forEach(entry => {
console.log(entry);
//if (entry.state == "Unmounted") {
if (entry.mountingPointId == -1) {
html += createHtml(entry);
}
});
return html;
}
// BSM's mounten
// Radio-Buttons zur Auswahl von BSM's und Assets
function updateBsm() {
document.querySelector('#rbMountPointsBsm').innerHTML
= createRadioButtonHtml(mountPointArr, 1); // Only BSM
document.querySelector('#rbAssetsBsm').innerHTML
= createRadioButtonAssetHtml(assetsArrBsm);
}
// BCU's mounten
// Radio-Buttons zur Auswahl von BCU's und Assets
function updateBcu() {
console.log("updateBcu");
console.log(assetsArrBcu.length);
document.querySelector('#rbMountPointsBcu').innerHTML
= createRadioButtonHtml(mountPointArr, 2); // Only BCU
document.querySelector('#rbAssetsBcu').innerHTML
= createRadioButtonAssetHtml(assetsArrBcu);
}
// Radio-Buttons zur Auswahl von IPS's und Assets
function updateIpsIn() {
document.querySelector('#rbMountPointsIpsIn').innerHTML
= createRadioButtonHtml(mountPointArr, 6); // Only IPS In
document.querySelector('#rbAssetsIpsIn').innerHTML
= createRadioButtonAssetHtml(assetsArrIpsIn);
}
// Radio-Buttons zur Auswahl von IPS's und Assets
function updateIpsOut() {
document.querySelector('#rbMountPointsIpsOut').innerHTML
= createRadioButtonHtml(mountPointArr, 5); // Only IPS Out
document.querySelector('#rbAssetsIpsOut').innerHTML
= createRadioButtonAssetHtml(assetsArrIpsOut);
}
// Radio-Buttons zur Auswahl von Indoor Cameras und Assets
function updateCameraIn() {
document.querySelector('#rbMountPointsCameraIn').innerHTML
= createRadioButtonHtml(mountPointArr, 4); // Only Camera In
document.querySelector('#rbAssetsCameraIn').innerHTML
= createRadioButtonAssetHtml(assetsArrCameraIn);
}
// Radio-Buttons zur Auswahl von Outdoor Cameras und Assets
function updateCameraOut() {
document.querySelector('#rbMountPointsCameraOut').innerHTML
= createRadioButtonHtml(mountPointArr, 3); // Only Camera Out
document.querySelector('#rbAssetsCameraOut').innerHTML
= createRadioButtonAssetHtml(assetsArrCameraOut);
}
// Radio-Buttons zur Auswahl von Indoor Cameras und Assets
function updateMdu() {
document.querySelector('#rbMountPointsMdu').innerHTML
= createRadioButtonHtml(mountPointArr, 7); // Only Meteo Data Unit
document.querySelector('#rbAssetsMdu').innerHTML
= createRadioButtonAssetHtml(assetsArrMdu);
}
// Radio-Buttons zur Auswahl von EGCU's
function updateEgcu() {
document.querySelector('#rbMountPointsEgcu').innerHTML
= createRadioButtonHtml(mountPointArr, 12); // Only EGCU
document.querySelector('#rbAssetsEgcu').innerHTML
= createRadioButtonAssetHtml(assetsArrEgcu);
}
// Radio-Buttons zur Auswahl von AnnouncementUnits
function updateAnnouncement() {
document.querySelector('#rbMountPointsAnnouncement').innerHTML
= createRadioButtonHtml(mountPointArr, 10); // Only AnnouncementUnits
document.querySelector('#rbAssetsAnnouncement').innerHTML
= createRadioButtonAssetHtml(assetsArrAnnouncements);
}
// Radio-Buttons zur Auswahl von BuildingNetworkSwitch
function updateBuildingNetworkSwitch() {
console.log("updateBuildingNetworkSwitch");
console.log(assetsArrBuildingNetworkSwitch.length);
document.querySelector('#rbMountPointsBuildingNetworkSwitch').innerHTML
= createRadioButtonHtml(mountPointArr, 14); // Only BuildingNetworkSwitch
document.querySelector('#rbAssetsBuildingNetworkSwitch').innerHTML
= createRadioButtonAssetHtml(assetsArrBuildingNetworkSwitch);
}
function handleMountingPoint(msg) {
if (buildingId == -1)
return;
mountPointArr = []
msg.forEach(function(obj) {
if (obj.objectId == buildingId) {
var mp = {
assetId: obj.assetId,
designation: obj.designation,
id: obj.id,
levelId: obj.levelId,
objectId: obj.objectId,
supportedAssetTypeIds: obj.supportedAssetTypeIds
};
mountPointArr.push(mp);
}
});
mountPointArr.sort(sortEntries);
var header = "<tr>";
header += "<th>assetId</th>";
header += "<th>designation</th>";
header += "<th>id</th>";
header += "<th>levelId</th>";
header += "<th>objectId</th>";
header += "<th>supportedAssetTypeIds</th>";
header += "</tr>";
mountPointArr.forEach(function (entry) {
header += "<tr>";
header += "<td>" + entry.assetId + "</td>";
header += "<td>" + entry.designation + "</td>";
header += "<td>" + entry.id + "</td>";
header += "<td>" + entry.levelId + "</td>";
header += "<td>" + entry.objectId + "</td>";
header += "<td>" + entry.supportedAssetTypeIds + "</td>";
header += "</tr>";
});
document.querySelector('#mountingPointTable').innerHTML = header;
selectAssetType(tempType);
}
function createBuildingsHtml() {
buildingsArr.sort();
var rows = "";
buildingsArr.forEach(building => {
//console.log("buildingsArr[" + i + "]=" + buildingsArr[i] + " buildingCounter=" + buildingCounter);
rows += "<input type=\"radio\" name=\"bg\" value=\"";
rows += building;
rows += "\" id= \"";
rows += building;
rows += "\"> ";
rows += building;
rows += "<br>";
});
document.getElementById("rbBuildings").innerHTML = rows
}
function show(id) {
if (document.getElementById) {
var mydiv = document.getElementById(id);
mydiv.style.display = "block";
}
}
function toggle(id) {
if (document.getElementById) {
var mydiv = document.getElementById(id);
mydiv.style.display = (mydiv.style.display == 'block' ? 'none' : 'block');
}
}
function selectAssetType(type) {
type = Number(type);
tempType = type;
document.getElementById('divBuildingSensorModule').style.display = 'none';
document.getElementById('divBuildingControlUnit').style.display = 'none';
document.getElementById('divOutdoorCamera').style.display = 'none';
document.getElementById('divIndoorCamera').style.display = 'none';
document.getElementById('divOutdoorIPS').style.display = 'none';
document.getElementById('divIndoorIPS').style.display = 'none';
document.getElementById('divAnnouncementUnit').style.display = 'none';
document.getElementById('divMeteoDataUnit').style.display = 'none';
document.getElementById('divEffectGenerationControlUnit').style.display = 'none';
document.getElementById('divOutdoorControlUnit').style.display = 'none';
document.getElementById('divBuildingNetworkSwitch').style.display = 'none';
switch (type) {
case 1:
document.getElementById('divBuildingSensorModule').style.display = 'block';
break;
case 2:
document.getElementById('divBuildingControlUnit').style.display = 'block';
break;
case 3:
document.getElementById('divOutdoorCamera').style.display = 'block';
break;
case 4:
document.getElementById('divIndoorCamera').style.display = 'block';
break;
case 5:
document.getElementById('divOutdoorIPS').style.display = 'block';
break;
case 6:
document.getElementById('divIndoorIPS').style.display = 'block';
break;
case 7:
document.getElementById('divMeteoDataUnit').style.display = 'block';
break;
case 10:
document.getElementById('divAnnouncementUnit').style.display = 'block';
break;
case 12:
document.getElementById('divEffectGenerationControlUnit').style.display = 'block';
break;
case 13:
document.getElementById('divOutdoorControlUnit').style.display = 'block';
break;
case 14:
document.getElementById('divBuildingNetworkSwitch').style.display = 'block';
break;
}
update();
}
File diff suppressed because it is too large. Load diff
+58
View File
@@ -0,0 +1,58 @@
#!/bin/bash
#
# Das Skript erfüllt die gleiche Funktionalität wie das "Mounten für Faule".
# Das Skritt geht davon aus, dass die virtuelle Umgebung (venv) unter ~/venv3 lokalisiert ist.
#
# 1. Spalte der Tabelle: Geraetename (Wie in Tabelle ism.ism_asset Spalte Name)
# 2. Spalte der Tabelle: Gebaeudename (Wie in Tabelle ism.ism_main_structure_element Spalte Name)
# zwischen den beiden Bezeichnungen " - "
# Name des Anbaupunktes (Wie in Tabelle ism.ism_structure_element_type_id Spalte Name)
#
# @author Christian Fröbel
#
PYTHON=$HOME/venv3/bin/python
this_script=$(realpath "$0")
this_dir=$(dirname "$this_script")
ism_client=$this_dir/ism_client.py
"$PYTHON" "$ism_client" mount-many \
'[["CAM_UBEICE0001", "bldg_56_ref - CAMERA_IN_AP_1"],
["CAM_UBEICE0002", "bldg_56_ref - CAMERA_IN_AP_2"],
["CAM_UBEICE0003", "bldg_56_ref - CAMERA_IN_AP_3"],
["CAM_UBEICE0004", "bldg_56_ref - CAMERA_IN_AP_4"],
["UEPOKAA0001" , "bldg_56_ref - CAMERA_IN_AP_5"],
["UEPOKAI0015" , "bldg_56_ref - CAMERA_IN_AP_6"],
["CAM_UBEICE0006", "bldg_56_ref - CAMERA_IN_AP_7"],
["UEPOKAI0012" , "bldg_56_ref - CAMERA_IN_AP_8"],
["UEPOKAI0014" , "bldg_56_ref - CAMERA_IN_AP_9"],
["UEPOKAI0011" , "bldg_56_ref - CAMERA_IN_AP_10"],
["UEPOKAA0002" , "bldg_56_ref - CAMERA_IN_AP_11"],
["UEPOKAI0013" , "bldg_56_ref - CAMERA_IN_AP_12"],
["CAM_UBEOCE0001", "MP_OUT0001"],
["CAM_UBEOCE0002", "MP_OUT0002"],
["CAM_UBEOCE0003", "MP_OUT0003"],
["Announcement-Unit", "MP_ANNOUNCEMENT_UNIT"],
["BSM_0001", "bldg_56_ref - REF_MOD_AP_1"],
["BSM_0002", "bldg_56_ref - REF_MOD_AP_2"],
["BSM_0003", "bldg_56_ref - REF_MOD_AP_3"],
["BSM_0004", "bldg_56_ref - REF_MOD_AP_4"],
["BSM_0005", "bldg_56_ref - REF_MOD_AP_5"],
["BSM_0006", "bldg_56_ref - REF_MOD_AP_6"],
["IPS-IN_2103", "bldg_56_ref - IPS_IN_AP_6"],
["IPS-IN_2061", "bldg_56_ref - IPS_IN_AP_8"],
["IPS-IN_2101", "bldg_56_ref - IPS_IN_AP_4"],
["IPS-IN_2108", "bldg_56_ref - IPS_IN_AP_1"],
["IPS-IN_2206", "bldg_56_ref - IPS_IN_AP_9"],
["IPS-IN_2071", "bldg_56_ref - IPS_IN_AP_15"],
["IPS-IN_2204", "bldg_56_ref - IPS_IN_AP_13"],
["IPS-IN_2202", "bldg_56_ref - IPS_IN_AP_11"],
["IPS-IN_2052", "bldg_56_ref - IPS_IN_AP_14"],
["IPS-OUT_1101", "bldg_56_ref - IPS_OUT_AP_3"],
["IPS-OUT_1131", "bldg_56_ref - IPS_OUT_AP_4"],
["IPS-OUT_1132", "bldg_56_ref - IPS_OUT_AP_5"],
["IPS-OUT_1121", "bldg_56_ref - IPS_OUT_AP_6"],
["IPS-OUT_1122", "bldg_56_ref - IPS_OUT_AP_7"],
["IPS-OUT_1111", "bldg_56_ref - IPS_OUT_AP_8"],
["EGCU0001", "bldg_56_ref - BDI_P_1"]]'
+21
View File
@@ -0,0 +1,21 @@
ism_client.py benötigt python3 und ein weiteres Modul, welches nicht im Standardumfang enthalten ist.
Dieses Modul kann man sich in eine virtuelle python-Umgebung (virtual env oder kurz venv) installieren.
Das Skript mounting_hack.sh geht davon aus, dass diese python-venv in ~/venv3 lokalisiert ist.
1. Virtuelle Umgebung anlegen:
$ python3 -m venv ~/venv3
2. venv aktivieren
$ source ~/venv3/bin/activate
3. Dependencies installieren.
$ https_proxy=http://<user>:<password>@proxy-rde:8080 pip install -r requirements.txt
(User ist die Rheinmetall-eMail)
4. Optional: Deaktivieren der venv
$ deactivate
Das Skript mounting_hack.sh kann aufgerufen werden, ohne zuvor die venv zu aktivieren.
Will man das python-Skript ism_client.py selbst direkt aufrufen, muss man zuvor die
venv wie oben unter 2 beschrieben aktivieren.
@@ -0,0 +1 @@
websocket-client==0.46.0