UNPKG

susi-forge

Version:
60 lines (55 loc) 2.11 kB
var MorseController = { code : { "a": "._", "b": "_...", "c": "_._.", "d": "_..", "e": ".", "f": ".._.", "g": "__.", "h": "....", "i": "..", "j": ".___", "k": "_._", "l": "._..", "m": "__", "n": "_.", "o": "___", "p": ".__.", "q": "__._", "r": "._.", "s": "...", "t": "_", "u": ".._", "v": "..._", "w": ".__", "x": "_.._", "y": "_.__", "z": "__..", " ": " ", "1": ".____", "2": "..___", "3": "...__", "4": "...._", "5": ".....", "6": "_....", "7": "__...", "8": "___..", "9": "____.", "0": "_____", ".": "._._._", ",": "__..__", "?": "..__..", "'": ".____.", "/": "_.._.", "(": "_.__.", ")": "_.__._", "&": "._...", ":": "___...", ";": "_._._.", "=": "_..._", "+": "._._.", "-": "_...._", "_": "..__._", "\"": "._.._.", "$": "..._.._", "!": "_._.__", "@": ".__._." }, init: function(){ susi.registerProcessor("demo::morse",this.morse.bind(this)); log("Morse-Controller init ready."); }, morse: function(event){ var msg = event.payload; if(msg === undefined){ msg = "?"; } var command = this.strToCommand(msg); log("exec led pattern: "+command); susi.publish({ topic: 'syscall::exec', payload: { cmd: 'exec-pattern', args: { PATTERN: command } } }); }, strToCommand: function(str){ var pattern = ""; for (var i = 0 - 1; i < str.length; i++) { var charPattern = this.code[str[i]] || this.code["?"]; for(var idx=0;idx<charPattern.length;idx++){ if(charPattern[idx] === '.'){ pattern += "hsslss"; }else if(charPattern[idx] === '_'){ pattern += "hsssslss"; }else if(charPattern[idx] === ' '){ pattern += "ssss"; } } } return pattern; } };