htd-lync
Version:
This library is meant to be used to interact with an HTD Lync 12
336 lines (301 loc) • 7.54 kB
JavaScript
var alreadyCheckedNames = false;
function getZoneNames(i) {
//console.log(i);
console.log("getZoneNames: " + i)
var zone = i;
zone = zoneLookup(zone);
//zone = zone + "";
command = ["02", "00", zone, "0D", "00"]
console.log("get zone name. zone: " + i, command);
wsSendBinary(command);
if (systems[systemIdx].system.model == "Lync12") {
if (i < 12) {
i = i + 1;
//setTimeout(function() {
getZoneNames(i);
//}, 200);
} else {
// if (alreadyCheckedNames == false) {
// alreadyCheckedNames = true;
// setTimeout(function() {
// getZoneNames(7);
// }, 5000);
//
// setTimeout(function() {
// getZoneNames(11);
// }, 15000);
//
//}
setTimeout(function() {
checkZoneNames(1);
}, 500);
}
} else {
if (i < 6) {
i = i + 1;
//setTimeout(function() {
getZoneNames(i);
//}, 200);
} else {
setTimeout(function() {
checkZoneNames(1);
}, 500);
}
}
}
var alreadyCheckedSourceNames = false;
function getSourceNames(i) {
// console.log(i);
console.log("Get Source Name " + i)
var source = i;
if (source < 10) {
source = "0" + source;
}
source = source + "";
var zone = i + 1;
if (zone < 10) {
zone = "0" + zone;
}
zone = zone + "";
switch (i) {
case 9:
zone = "0A";
break;
case 10:
source = "0A";
zone = "0B";
break;
case 11:
source = "0B";
zone = "0C";
break;
case 12:
source = "0C";
zone = "0D";
break;
case 13:
source = "0D";
zone = "0E";
break;
case 14:
source = "0E";
zone = "0F";
break;
case 15:
source = "0F";
zone = "10";
break;
case 16:
source = "10";
zone = "11";
break;
case 17:
source = "11";
zone = "12";
break;
case 18:
source = "12";
zone = "13";
break;
}
command = ["02", "00", "01", "0E", source]
console.log('GetSource', command);
wsSendBinary(command);
if (systems[systemIdx].system.model == "Lync12") {
if (i <= 18) {
i = i + 1;
//setTimeout(function() {
getSourceNames(i);
//}, 100);
} else {
checkSourceNames();
return;
if (alreadyCheckedSourceNames == false) {
alreadyCheckedSourceNames = true;
setTimeout(function() {
getSourceNames(7);
}, 5000);
setTimeout(function() {
getSourceNames(12);
}, 15000);
}
checkSourceNames();
}
} else {
if (i <= 12) {
i = i + 1;
setTimeout(function() {
getSourceNames(i);
}, 100);
} else {
if (alreadyCheckedSourceNames == false) {
alreadyCheckedSourceNames = true;
setTimeout(function() {
getSourceNames(7);
}, 5000);
}
checkSourceNames();
}
}
}
function checkSourceNames() {
if (commandBuffer.length > 0) {
setTimeout(function() {
checkSourceNames(i);
}, 300);
return;
}
for (var i = 1; i < systems[systemIdx].sources.length - 1; i++) {
if (!systems[systemIdx].sources[i]) {
console.log("Missing source " + i);
systems[systemIdx].sources[i] = {
name: "Source " + i,
appName: "Source " + i,
mp31: "",
mp32: "",
enabled: true
}
}
if (systems[systemIdx].sources[i].appName == "" || !systems[systemIdx].sources[i].appName || systems[systemIdx].sources[i].appName.length < 2) {
systems[systemIdx].sources[i].appName == systems[systemIdx].sources[i].name;
}
if (systems[systemIdx].sources[i].name == "" || !systems[systemIdx].sources[i].name) {
console.log("missing source " + i)
getSourceName(i);
}
console.log("Source:" + i + ":" + systems[systemIdx].sources[i].name + "/" + systems[systemIdx].sources[i].appName)
}
console.log("done checking source names");
getAllZoneStatus(1);
}
function checkZoneNames(i) {
if (commandBuffer.length > 0) {
setTimeout(function() {
checkZoneNames(i);
}, 300);
return;
}
if (!systems[systemIdx].zones) {
return;
}
console.log("system index: " + systemIdx);
console.log(systems[systemIdx])
console.log("checkZoneNames: " + i + " of " + systems[systemIdx].zones.length)
if (!i) {
i = 1;
}
if (i < systems[systemIdx].zones.length) {
if (systems[systemIdx].zones[i].name == "" || systems[systemIdx].zones[i].appName == "" || systems[systemIdx].zones[i].appName == null) {
console.log("checkZoneNames missing zone " + i)
if (systems[systemIdx].zones[i].name && systems[systemIdx].zones[i].appName == "" || systems[systemIdx].zones[i].appName == null) {
systems[systemIdx].zones[i].appName = systems[systemIdx].zones[i].name;
updateGUI(i);
updateData();
} else {
getZoneName(i);
}
}
checkZoneNames(i + 1);
} else {
console.log("done checking zone names")
getSourceNames(1);
}
}
function getZoneName(i) {
//console.log(i);
return;
var zone = i;
zone = zoneLookup(zone);
//zone = zone + "";
command = ["02", "00", zone, "0D", "00"]
console.log("get individual zone name: " + zone, command);
wsSendBinary(command);
}
function getSourceName(i) {
// console.log(i);
return;
console.log("Get Source Name " + i)
//Need better command, this only shows selected zones.
var source = i;
if (source < 10) {
source = "0" + source;
}
source = source + "";
//source = "02"
switch (i) {
case 9:
break;
case 10:
source = "0A";
break;
case 11:
source = "0B";
break;
case 12:
source = "0C";
break;
case 13:
source = "0D";
break;
case 14:
source = "0E";
break;
case 15:
source = "0F";
break;
case 16:
source = "10";
break;
case 17:
source = "11";
break;
case 18:
source = "12";
break;
}
//console.log(i, source, zone);
command = ["02", "00", "01", "0E", source]
wsSendBinary(command);
}
function changeZoneName(name) {
var zone = Gzone;
zone = zoneLookup(zone);
console.log("Name zone " + zone + " to " + name)
//var hexName = ascii_to_hexa(name);
var command = ["02", "00", zone, "06", "00"]
for (var n = 0, l = name.length; n < l; n++) {
var hex = Number(name.charCodeAt(n)).toString(16);
hex = hex.toUpperCase();
command.push(hex);
}
//see how many spaces we need to add 00 for
var extraSpaces = 10 - name.length;
for (i = 0; i < extraSpaces; i++) {
command.push("00")
}
command.push("00")
console.log(command, command.length);
wsSendBinary(command, false);
}
function changeSourceName(name, source) {
var zone = Gzone;
zone = zoneLookup(zone);
source = sourceCommandLookupForReset(source);
zone = "00";
//var hexName = ascii_to_hexa(name);
var command = ["02", "00", zone, "07", source]
for (var n = 0, l = name.length; n < l; n++) {
var hex = Number(name.charCodeAt(n)).toString(16);
hex = hex.toUpperCase();
command.push(hex);
}
//see how many spaces we need to add 00 for
var extraSpaces = 10 - name.length;
for (i = 0; i < extraSpaces; i++) {
command.push("00")
}
command.push("00")
console.log("Change Source name " + name + " " + source)
console.log(command, command.length);
wsSendBinary(command, false);
}