'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) + "
"
});
document.getElementById("area").innerHTML = html;
html = ""
msg.data.trainingAreas.forEach(element => {
html += JSON.stringify(element) + "
"
});
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) + "
"
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 += "