UNPKG

htd-lync

Version:

This library is meant to be used to interact with an HTD Lync 12

336 lines (301 loc) 7.54 kB
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); }