UNPKG

htd-lync

Version:

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

255 lines (240 loc) 6.55 kB
function zoneNameRcvd(msgData) { var zone = msgData[2]; if (zone == "a") { zone = 10; } else if (zone == "b") { zone = 11; } else if (zone == "c") { zone = 12; } else { zone = zone * 1; } //console.log("Zone Name for ", zone); var str = ''; var n = 4; if (zone > 9) { //n = 3; } //needs to be 4 less to remove strange characters at end. for (n; n < msgData.length - 4; n++) { var hex = formatHexString(msgData[n]); var isCharacter = isValid(String.fromCharCode(parseInt(hex, 16))) if (isCharacter) { str += (String.fromCharCode(parseInt(hex, 16))); } else { console.log("Bad character!") break; } } console.log("Zone name line 641:", zone, str); //console.log(str); str = str.replace(/[^\w\s]/gi, ''); if (!systems[systemIdx].zones) { systems[systemIdx].zones = []; } if (!systems[systemIdx].zones[zone]) { //zones[zone] = new Object(); systems[systemIdx].zones[zone] = { name: "Zone " + zone, appName: "Zone " + zone, vol: 0, source: 0, powerOn: false, muteOn: false, dndOn: false, bass: 0, treble: 0, balance: 0, mp31: "", mp32: "", reportOn: false, enabled: true, enableDoorbell: true } } systems[systemIdx].zones[zone].name = str; if (systems[systemIdx].zones[zone].appName == "" || systems[systemIdx].zones[zone].appName == "Zone " + zone) { systems[systemIdx].zones[zone].appName = str; } return; //This is done after checking zone names if (systems[systemIdx].system.model == "Lync12" && zone == 12) { queryAll(); } else if (systems[systemIdx].system.model == "Lync6" && zone == 6) { queryAll(); } updateData(); updateGUI(zone); } function sourceNameRcvd(msgData) { if (gettingSourcesForZone == true) { sourceNameRcvdForZone(msgData); return; } var source = msgData[15]; var hex = formatHexString(msgData) //force conversion var str = ''; var n = 4; switch (source) { case "a": source = 10; break; case "b": source = 11; break; case "c": source = 12; break; case "d": source = 13; break; case "e": source = 14; break; case "f": source = 15; break; case "10": source = 16; break; case "11": source = 17; break; case "12": source = 18; break; } source = source * 1 + 1; // console.log(zone); console.log("Source#:" + source); //hide intercom if (source <= 18) { for (n; n < msgData.length - 4; n++) { var hex = formatHexString(msgData[n]); //console.log(String.fromCharCode(parseInt(hex, 16))); str += (String.fromCharCode(parseInt(hex, 16))); } if (!systems[systemIdx].sources) { systems[systemIdx].sources = []; } if (!systems[systemIdx].sources[source]) { if (systems[systemIdx].system.model == "Lync6" && source == 13) { systems[systemIdx].sources[source] = { name: "Intercom", appName: "Intercom", mp31: "", mp32: "", enabled: true } } else if (source <= 17) { systems[systemIdx].sources[source] = { name: "Source " + source, appName: "Source " + source, mp31: "", mp32: "", enabled: true } } else if (source == 18) { systems[systemIdx].sources[source] = { name: "MP3 Player", appName: "MP3 Player", mp31: "", mp32: "", enabled: true } } else if (source == 19) { systems[systemIdx].sources[source] = { name: "Intercom", appName: "Intercom", mp31: "", mp32: "", enabled: true } } } //str = str.replace(/\W/g, '') //str = str.replace(/[^\w\s]/gi, '') console.log("source #/name: " + source + "/" + str); str = str.replace(/[^\w\s]/gi, '') if (str.length < 13) { systems[systemIdx].sources[source].name = str; } if (systems[systemIdx].sources[source].appName == "" || systems[systemIdx].sources[source].appName == "None" || systems[systemIdx].sources[source].appName == "Source " + source) { //console.log(str.indexOf("None")) if (str.indexOf("None") >= 0) { //console.log("set source name appName to None"); systems[systemIdx].sources[source].appName = "Source " + source; } else { //console.log("set source name appName to ", str, sources[source].appName) systems[systemIdx].sources[source].appName = str; } } //console.log("END zone name") console.log("final source #/name: " + source + "/" + systems[systemIdx].sources[source].name + "/" + systems[systemIdx].sources[source].appName) updateGUI(1); updateData(); } return; if (systems[systemIdx].system.model == "Lync12" && source == 18 && gotStatus == false) { getAllZoneStatus(1); gotStatus = true; } else if (systems[systemIdx].system.model == "Lync6" && source == 12 && gotStatus == false) { getAllZoneStatus(1); gotStatus = true; } } function sourceNameRcvdForZone(msgData) { var source = msgData[15]; var hex = formatHexString(msgData) //force conversion console.log("source Name for keypad ", source); var str = ''; var n = 4; // console.log(zone); switch (source) { case "a": source = 10; break; case "b": source = 11; break; case "c": source = 12; break; case "d": source = 13; break; case "e": source = 14; break; case "f": source = 15; break; case "10": source = 16; break; case "11": source = 17; break; case "12": source = 18; break; } source = source * 1 + 1; // console.log(zone); //hide intercom if (source <= 18) { for (n; n < msgData.length - 4; n++) { var hex = formatHexString(msgData[n]); //console.log(String.fromCharCode(parseInt(hex, 16))); str += (String.fromCharCode(parseInt(hex, 16))); } str = str.replace(/[^\w\s]/gi, '') addToSourceForKeypadList(str, source); if (systems[systemIdx].system.model == "Lync6" && source == 12) { gettingSourcesForZone = false; } else if (systems[systemIdx].system.model == "Lync12" && source == 18) { gettingSourcesForZone = false; } console.log("source name for keypad", str, source); } }