async def on_message(self, message): if message.author == self.user: return if message.content.startswith(config["command_token"]): splitContent = message.content[len(config["command_token"]):].split(maxsplit = 2) if len(splitContent) > 0: commandString = splitContent[0] args = splitContent[1] if len(splitContent) == 2 else "" commandClass = command.getCommand(commandString) if commandClass is None: if config["debug_mode"]: await message.channel.send("No such command '{}'".format(commandString)) _emojiBotMasterLogger.info("Miss on command {} by user {}".format(commandString, message.author)) else: _emojiBotMasterLogger.info("Hit on command {} by user {}".format(commandString, message.author)) success, errMsg = False, "Something went wrong" try: commandInstance = commandClass(self, message, args) if await commandInstance.authorHasPermission(): await commandInstance.validateArguments() await commandInstance.callback() success = True except command.InvalidSyntaxException: errMsg = "Invalid command syntax" except command.InvalidArgumentException: errMsg = "Invalid arguments" except Exception as e: if config["debug_mode"]: errMsg = "{} : {}".format(type(e), traceback.format_exc()) _emojiBotMasterLogger.error("Exception in command {} triggered by message {} by author {} : {} {}".format(commandString, message, message.author, type(e), traceback.format_exc())) if not success: _emojiBotMasterLogger.info("Command {} failed triggered by message {} by author {}".format(commandString, message, message.author)) await message.channel.send(errMsg)
def executeCommand(command): global OUT1_STATE global OUT1_OFF_TIME ok = 0 if (command.getCommand() == 'OUT1'): if (command.getParameter() == '0'): GPIO.setIOvalue(6, 0) OUT1_STATE = 0 ok = 1 if (command.getParameter() == '1'): GPIO.setIOvalue(6, 1) OUT1_STATE = 1 OUT1_OFF_TIME = MOD.secCounter() + int(CFG.get('OUT1TIME')) ok = 1 print('Set OUT1 to %s\r' % (command.getParameter())) elif (command.getCommand() == 'PASS'): CFG.set('PASS', command.getParameter()) CFG.write() print('PASS is set to: %s\r' % (command.getParameter())) ok = 1 elif (command.getCommand() == 'IN1ONTXT'): CFG.set('IN1ONTXT', command.getParameter()) CFG.write() print('IN1ONTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif (command.getCommand() == 'IN1OFFTXT'): CFG.set('IN1OFFTXT', command.getParameter()) CFG.write() print('IN1OFFTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif (command.getCommand() == 'OUT1TIME'): CFG.set('OUT1TIME', command.getParameter()) CFG.write() print('OUT1TIME is set to: %s\r' % (command.getParameter())) ok = 1 elif (command.getCommand() == 'ALERT'): CFG.set('ALERT', command.getParameter()) CFG.write() print('ALERT is set to: %s\r' % (command.getParameter())) ok = 1 elif (command.getCommand() == 'SMSDELETEALL'): CFG.set('SMSDELETEALL', command.getParameter()) CFG.write() print('SMSDELETEALL is set to: %s\r' % (command.getParameter())) ok = 1 if (ok == 1): return 'COMMAND %s OK;' % (command.getCommand()) else: return 'COMMAND %s WRONG;' % (command.getCommand())
def main(): global conn, ct, cmap, pause, timeoutact, terminal, buffer, lastline, debug global is_break global maxtimeout, maxprevents global RUNNING highlight = "" default_config = { 'colortable': r'dbg_net', 'terminal': r'securecrt', 'regex': r'all', 'timeoutact': r'true', 'debug': r'0', 'maxtimeout': r'0', 'maxprevents': r'0', 'maxwait': r'1.0', 'update_caption': r'false', 'default_caption': os.environ['HOSTNAME'], 'F1': r'show ip interface brief | e unassign\r', 'F2': r'show ip bgp sum\r', 'F3': r'show ip bgp vpnv4 all sum\r', 'F4': r'"ping "', # space requires quoting 'F5': r'', 'F6': r'', 'F7': r'', 'F8': r'', 'F9': r'', 'F10': r'', 'F11': r'', 'F12': r'', 'SF1': r'show interface terse | match inet\r', 'SF2': r'show bgp summary\r', 'SF3': r'', 'SF4': r'', 'SF5': r'', 'SF6': r'', 'SF7': r'', 'SF8': r'', } try: config = ConfigParser.SafeConfigParser(default_config, allow_no_value=True) except TypeError: config = ConfigParser.SafeConfigParser(default_config) # keep compatibility with pre2.7 starttime = time.time() config.add_section('clicol') config.read(['/etc/clicol.cfg', 'clicol.cfg', os.path.expanduser('~/clicol.cfg')]) terminal = config.get('clicol', 'terminal') shortcuts = filter(lambda (o, v): re.match(r'[fF][0-9][0-9]?', o) and v, config.items('clicol')) # read existing shortcuts shortcuts_shift = filter(lambda (o, v): re.match(r'[sS][fF][0-9][0-9]?', o) and v, config.items('clicol')) # read existing shortcuts+shift shortcuts.sort(key=lambda (o, v): int(o.lstrip("SFsf"))) # sort by function key shortcuts_shift.sort(key=lambda (o, v): int(o.lstrip("SFsf"))) # sort by function key shortcuts.extend(shortcuts_shift) cct = config.get('clicol', 'colortable') timeoutact = config.getboolean('clicol', 'timeoutact') update_caption = config.getboolean('clicol', 'update_caption') default_caption = config.get('clicol', 'default_caption') maxtimeout = config.getint('clicol', 'maxtimeout') maxprevents = config.getint('clicol', 'maxprevents') debug = config.getint('clicol', 'debug') colors = ConfigParser.SafeConfigParser() colors.add_section('colors') colors.read([resource_filename(__name__, 'ini/colors_' + terminal + '.ini'), os.path.expanduser('~/clicol_customcolors.ini')]) ctfile = ConfigParser.SafeConfigParser(dict(colors.items('colors'))) del colors ctfile.add_section('colortable') if cct == "dbg_net" or cct == "lbg_net": ctfile.read([resource_filename(__name__, 'ini/ct_' + cct + '.ini'), os.path.expanduser('~/clicol_customct.ini')]) else: print "No such colortable: " + cct exit(1) default_cmap = { 'matcher': '0', 'priority': '100', 'effect': '', 'dependency': '', 'regex': '', 'replacement': '', 'options': '1', # CONTINUE=0,BREAK=1,CLEAR=2 as below 'debug': '0', 'disabled': '0', 'BOL': '(^(?: ?<?-+ ?\(?[mM][oO][rR][eE](?: [0-9]{1,2}%%)?\)? ?-+>? ?)?(?:[\b ]+)|^)', 'BOS': string.replace("(?:" + dict(ctfile.items('colortable'))['default'] + r'|\b)', r'[', '\['), 'CONTINUE': '0', 'BREAK': '1', 'CLEAR': '2', } cmaps = ConfigParser.SafeConfigParser(merge_dicts(dict(ctfile.items('colortable')), default_cmap)) regex = config.get('clicol', 'regex') if regex == "all": regex = '.*' try: if len(sys.argv) > 1 and sys.argv[1] == '--c': # called with specified colormap regex regex = sys.argv[2] del sys.argv[1] # remove --c from args del sys.argv[1] # remove colormap regex string from args except: # index error, wrong call cmd = 'error' for cm in ["common", "cisco", "juniper"]: cmaps.read(resource_filename(__name__, 'ini/cm_' + cm + '.ini')) cmaps.read([os.path.expanduser('~/clicol_customcmap.ini')]) for cmap_i in cmaps.sections(): c = dict(cmaps.items(cmap_i)) if re.match(regex, cmap_i): # configured rules only if debug >= 3: print repr([c['matcher'], c['priority'], c['effect'], c['dependency'], c['regex'], c['replacement'], c['options'], c['debug']]) if bool(int(c['disabled']) < 1): cmap.append([bool(int(c['matcher']) > 0), int(c['priority']), c['effect'], c['dependency'], re.compile(c['regex']), c['replacement'], int(c['options']), int(c['debug']), cmap_i]) cmap.sort(key=lambda match: match[1]) # sort colormap based on priority # Check how we were called # valid options: clicol-telnet, clicol-ssh, clicol-test cmd = str(os.path.basename(sys.argv[0])).replace('clicol-', ''); if cmd == 'test' and len(sys.argv) > 1: # Print starttime: print "Starttime: %s s" % (round(time.time() - starttime, 3)) # Sanity check on colormaps cmbuf = list() for cm in cmap: # search for duplicate patterns if cm[4] in cmbuf: print "Duplicate pattern:" + repr(cm) else: cmbuf.append(cm[4]) if len(sys.argv) > 1: for test in filter(lambda x: re.match(sys.argv[1], x) and re.match(regex, x), cmaps.sections()): test_d = dict(cmaps.items(test)) try: # search for dirty patterns match_in_regex = re.findall(r'(?<!\\)\((?!\?)', test_d['regex'].replace(r'%(BOS)s', '')) match_in_replace = re.findall(r'(?<!\\)\\[0-9](?![0-9])', test_d['replacement']) print test + ":" + ofilter(test_d['example'].replace('\'', '') + '\n') if len(match_in_regex) <> len(match_in_replace): print "Warning: match group numbers are not equal! (%s/%s)" % (match_in_regex, match_in_replace) test_d['debug'] = "1" if test_d['debug'] == "1": print repr(test_d['regex']) print repr(test_d['replacement']) except: pass elif cmd == 'file' and len(sys.argv) > 1: try: f = open(sys.argv[1], 'r') except: print "Error opening " + sys.argv[1] raise for line in f: print ofilter(line.replace("\n", "\r\n").decode('string_escape')), # convert to CRLF to support files created in linux f.close() elif cmd == 'telnet' or cmd == 'ssh' or (cmd == 'cmd' and len(sys.argv) > 1): try: args = sys.argv[1:] if cmd == 'cmd': cmd = sys.argv[1] args = sys.argv[2:] skip = False if update_caption and (cmd == 'telnet' or cmd == 'ssh'): # only update on telnet/ssh for arg in args: if skip: skip = False continue if re.match("-[46AaCfGgKkMNnqsTtVvXxYy]", arg): continue if re.match("-\w+", arg): skip = True continue m = re.match("(?:\w+@)?([0-9a-zA-Z_.-]+)", arg) # Print caption update code: print "\033]2;%s\007" % m.group(1) break conn = pexpect.spawn(cmd, args, timeout=1) # Set signal handler for window resizing signal.signal(signal.SIGWINCH, sigwinch_passthrough) # Set initial terminal size rows, cols = getTerminalSize() conn.setwinsize(rows, cols) except Exception, e: if cmd != 'telnet' and cmd != 'ssh': print "Error starting %s" % cmd return else: print "Unknown error %s" % e # Restore caption if update_caption: # Print caption update code: print "\033]2;%s\007" % default_caption return try: # Start timeoutcheck to check timeout or string stuck in buffer tc = threading.Thread(target=timeoutcheck, args=(config.getfloat("clicol", "maxwait"),)) tc.daemon = True tc.start() while conn.isalive(): # esc code table: http://jkorpela.fi/chars/c0.html #\x1c = CTRL-\ conn.interact(escape_character='\x1c', output_filter=ofilter, input_filter=ifilter) if is_break: is_break = False print "\r" + " " * 100 + "\rCLICOL: q:quit,p:pause,T:highlight,F1-12,SF1-8:shortcuts,h-help", command = getCommand() if command == "D": debug += 1 if debug > 2: debug = 0 if command == "p": pause = 1 - pause if command == "q": conn.close() break if command == "T": highlight = getRegex() cmap_highlight = [False, 0, "", "", highlight, dict(ctfile.items('colortable'))['highlight'] + r"\1" + dict(ctfile.items('colortable'))['default'], 0, 0, 'user_highlight'] if highlight == "": if cmap[0][8] == 'user_highlight': # If we have highlight regex, we remove it on user request del cmap[0] elif cmap[0][8] == 'user_highlight': cmap[0] = cmap_highlight else: cmap.insert(0, cmap_highlight) if command == "h": printhelp(shortcuts) print "\r" + " " * 100 + "\r" + colorize(lastline, "prompt"), # restore last line/prompt for (key, value) in shortcuts: if command.upper() == key.upper(): conn.send(value.decode('string_escape').strip(r'"')) # decode to have CRLF as it is and remove "" break except OSError: conn.close() except Exception, e: if debug: import traceback print traceback.format_exc() # DEBUG print e print "Error while running " + cmd + " " + str.join(' ', args)
def runCmd(self, cmd): return getCommand(cmd.cmd)(self, *cmd.ops)
def showTimer(strip, parameters): #löschen clearPixelBuffer(strip) ziffer_1 = getNumberOne(int(parameters[2])) ziffer_2 = int(parameters[2]) - 10 * ziffer_1 ziffer_3 = getNumberOne(int(parameters[3])) ziffer_4 = int(parameters[3]) - 10 * ziffer_3 ziffer_5 = getNumberOne(int(parameters[4])) ziffer_6 = int(parameters[4]) - 10 * ziffer_5 compare_ziffer_1 = getNumberOne(int(parameters[2])) compare_ziffer_2 = int(parameters[2]) - 10 * ziffer_1 compare_ziffer_3 = getNumberOne(int(parameters[3])) compare_ziffer_4 = int(parameters[3]) - 10 * ziffer_3 compare_ziffer_5 = getNumberOne(int(parameters[4])) compare_ziffer_6 = int(parameters[4]) - 10 * ziffer_5 if ((ziffer_1 == 0) and (ziffer_2 == 0)): setNumber(strip, 0, 0, 10, parameters[1]) setNumber(strip, 0, 0, ziffer_3, parameters[1]) setNumber(strip, 0, 4, ziffer_4, parameters[1]) setNumber(strip, 0, 11, ziffer_5, parameters[1]) setNumber(strip, 0, 15, ziffer_6, parameters[1]) else: setNumber(strip, 0, 0, 10, parameters[1]) setNumber(strip, 0, 0, ziffer_1, parameters[1]) setNumber(strip, 0, 4, ziffer_2, parameters[1]) setNumber(strip, 0, 11, ziffer_3, parameters[1]) setNumber(strip, 0, 15, ziffer_4, parameters[1]) compare_sekunde = 0 while True: #time.sleep(0.77) sekunde = int( time.strftime("%S")) - 10 * getNumberOne(int(time.strftime("%S"))) if (compare_sekunde != sekunde): compare_sekunde = sekunde if (ziffer_6 > 0): ziffer_6 = ziffer_6 - 1 elif ((ziffer_2 == 0) and (ziffer_1 == 0) and (ziffer_3 == 0) and (ziffer_4 == 0) and (ziffer_5 == 0) and (ziffer_6 == 0)): ziffer_6 = 0 elif (ziffer_6 == 0): ziffer_6 = 9 if (ziffer_5 > 0): ziffer_5 = ziffer_5 - 1 elif ((ziffer_2 == 0) and (ziffer_1 == 0) and (ziffer_3 == 0) and (ziffer_4 == 0) and (ziffer_5 == 0)): ziffer_5 = 0 elif (ziffer_5 == 0): ziffer_5 = 5 if (ziffer_4 > 0): ziffer_4 = ziffer_4 - 1 elif ((ziffer_2 == 0) and (ziffer_1 == 0) and (ziffer_3 == 0) and (ziffer_4 == 0)): ziffer_4 = 0 elif (ziffer_4 == 0): ziffer_4 = 9 if (ziffer_3 > 0): ziffer_3 = ziffer_3 - 1 elif ((ziffer_2 == 0) and (ziffer_1 == 0) and (ziffer_3 == 0)): ziffer_3 = 0 elif (ziffer_3 == 0): ziffer_3 = 5 if (ziffer_2 > 0): ziffer_2 = ziffer_2 - 1 elif ((ziffer_2 == 0) and (ziffer_1 == 0)): ziffer_2 = 0 elif (ziffer_2 == 0): ziffer_2 = 9 if (ziffer_1 > 0): ziffer_1 = ziffer_1 - 1 elif (ziffer_1 == 0): ziffer_1 = 0 if ((ziffer_1 == 0) and (ziffer_2 == 0)): setNumber(strip, 0, 0, 10, parameters[1]) if (compare_ziffer_3 != ziffer_3): setNumber(strip, 0, 0, compare_ziffer_3, "000000") setNumber(strip, 0, 0, ziffer_3, parameters[1]) compare_ziffer_3 = ziffer_3 if (compare_ziffer_4 != ziffer_4): setNumber(strip, 0, 4, compare_ziffer_4, "000000") setNumber(strip, 0, 4, ziffer_4, parameters[1]) compare_ziffer_4 = ziffer_4 if (compare_ziffer_5 != ziffer_5): setNumber(strip, 0, 11, compare_ziffer_5, "000000") setNumber(strip, 0, 11, ziffer_5, parameters[1]) compare_ziffer_5 = ziffer_5 if (compare_ziffer_6 != ziffer_6): setNumber(strip, 0, 15, compare_ziffer_6, "000000") setNumber(strip, 0, 15, ziffer_6, parameters[1]) compare_ziffer_6 = ziffer_6 else: setNumber(strip, 0, 0, 10, parameters[1]) if (compare_ziffer_1 != ziffer_1): setNumber(strip, 0, 0, compare_ziffer_1, "000000") setNumber(strip, 0, 0, ziffer_1, parameters[1]) compare_ziffer_1 = ziffer_1 if (compare_ziffer_2 != ziffer_2): setNumber(strip, 0, 4, compare_ziffer_2, "000000") setNumber(strip, 0, 4, ziffer_2, parameters[1]) compare_ziffer_2 = ziffer_2 if (compare_ziffer_3 != ziffer_3): setNumber(strip, 0, 11, compare_ziffer_3, "000000") setNumber(strip, 0, 11, ziffer_3, parameters[1]) compare_ziffer_3 = ziffer_3 if (compare_ziffer_4 != ziffer_4): setNumber(strip, 0, 15, compare_ziffer_4, "000000") setNumber(strip, 0, 15, ziffer_4, parameters[1]) compare_ziffer_4 = ziffer_4 #schauen, ob ein Command noch eingetroffen ist if int(CommandsAvailable()) > 1: delLastCommand() command = getCommand() if command[0] == ("stopTimer"): readbackSet("~" + str(ziffer_1) + str(ziffer_2) + "~" + str(ziffer_3) + str(ziffer_4) + "~" + str(ziffer_5) + str(ziffer_6) + "~") delLastCommand() break
def showStopWatch(strip, parameters): #löschen clearPixelBuffer(strip) RUNNING = 0 STOPPED = 1 END = 2 STATE = RUNNING ziffer_1 = 0 ziffer_2 = 0 ziffer_3 = 0 ziffer_4 = 0 ziffer_5 = 0 ziffer_6 = 0 compare_ziffer_1 = 5 compare_ziffer_2 = 9 compare_ziffer_3 = 0 compare_ziffer_4 = 0 compare_ziffer_5 = 0 compare_ziffer_6 = 0 setNumber(strip, 0, 0, 10, parameters[1]) setNumber(strip, 0, 0, ziffer_1, parameters[1]) setNumber(strip, 0, 4, ziffer_2, parameters[1]) setNumber(strip, 0, 11, ziffer_3, parameters[1]) setNumber(strip, 0, 15, ziffer_4, parameters[1]) compare_sekunde = 0 while ((STATE == RUNNING) or (STATE == STOPPED)): for case in switch(STATE): if case(RUNNING): #time.sleep(1) sekunde = int(time.strftime("%S")) - 10 * getNumberOne( int(time.strftime("%S"))) if (compare_sekunde != sekunde): compare_sekunde = sekunde if (ziffer_6 < 9): ziffer_6 = ziffer_6 + 1 elif (ziffer_6 == 9): ziffer_6 = 0 if (ziffer_5 < 5): ziffer_5 = ziffer_5 + 1 elif (ziffer_5 == 5): ziffer_5 = 0 if (ziffer_4 < 9): ziffer_4 = ziffer_4 + 1 elif (ziffer_4 == 9): ziffer_4 = 0 if (ziffer_3 < 5): ziffer_3 = ziffer_3 + 1 elif (ziffer_3 == 5): ziffer_3 = 0 if (ziffer_2 < 9): ziffer_2 = ziffer_2 + 1 elif (ziffer_2 == 9): ziffer_2 = 0 if (ziffer_1 < 9): ziffer_1 = ziffer_1 + 1 else: break if ((ziffer_1 == 0) and (ziffer_2 == 0)): setNumber(strip, 0, 0, 10, parameters[1]) if (compare_ziffer_3 != ziffer_3): setNumber(strip, 0, 0, compare_ziffer_3, "000000") setNumber(strip, 0, 0, ziffer_3, parameters[1]) compare_ziffer_3 = ziffer_3 if (compare_ziffer_4 != ziffer_4): setNumber(strip, 0, 4, compare_ziffer_4, "000000") setNumber(strip, 0, 4, ziffer_4, parameters[1]) compare_ziffer_4 = ziffer_4 if (compare_ziffer_5 != ziffer_5): setNumber(strip, 0, 11, compare_ziffer_5, "000000") setNumber(strip, 0, 11, ziffer_5, parameters[1]) compare_ziffer_5 = ziffer_5 if (compare_ziffer_6 != ziffer_6): setNumber(strip, 0, 15, compare_ziffer_6, "000000") setNumber(strip, 0, 15, ziffer_6, parameters[1]) compare_ziffer_6 = ziffer_6 else: setNumber(strip, 0, 0, 10, parameters[1]) if (compare_ziffer_1 != ziffer_1): setNumber(strip, 0, 0, compare_ziffer_1, "000000") setNumber(strip, 0, 0, ziffer_1, parameters[1]) compare_ziffer_1 = ziffer_1 if (compare_ziffer_2 != ziffer_2): setNumber(strip, 0, 4, compare_ziffer_2, "000000") setNumber(strip, 0, 4, ziffer_2, parameters[1]) compare_ziffer_2 = ziffer_2 if (compare_ziffer_3 != ziffer_3): setNumber(strip, 0, 11, compare_ziffer_3, "000000") setNumber(strip, 0, 11, ziffer_3, parameters[1]) compare_ziffer_3 = ziffer_3 if (compare_ziffer_4 != ziffer_4): setNumber(strip, 0, 15, compare_ziffer_4, "000000") setNumber(strip, 0, 15, ziffer_4, parameters[1]) compare_ziffer_4 = ziffer_4 if (int(CommandsAvailable()) > 1): delLastCommand() command = getCommand() if command[0] == "setStopwatch": STATE = RUNNING elif command[0] == "resetStopwatch": clearPixelBuffer(strip) setNumber(strip, 0, 0, 0, parameters[1]) setNumber(strip, 0, 4, 0, parameters[1]) setNumber(strip, 0, 11, 0, parameters[1]) setNumber(strip, 0, 15, 0, parameters[1]) ziffer_1 = 0 ziffer_2 = 0 ziffer_3 = 0 ziffer_4 = 0 ziffer_5 = 0 ziffer_6 = 0 compare_ziffer_1 = 0 compare_ziffer_2 = 0 compare_ziffer_3 = 0 compare_ziffer_4 = 0 compare_ziffer_5 = 0 compare_ziffer_6 = 0 elif command[0] == "stopStopwatch": STATE = STOPPED else: STATE = END break if case(STOPPED): if (int(CommandsAvailable()) > 1): delLastCommand() command = getCommand() if command[0] == "setStopwatch": STATE = RUNNING elif command[0] == "resetStopwatch": clearPixelBuffer(strip) setNumber(strip, 0, 0, 0, parameters[1]) setNumber(strip, 0, 4, 0, parameters[1]) setNumber(strip, 0, 11, 0, parameters[1]) setNumber(strip, 0, 15, 0, parameters[1]) ziffer_1 = 0 ziffer_2 = 0 ziffer_3 = 0 ziffer_4 = 0 ziffer_5 = 0 ziffer_6 = 0 compare_ziffer_1 = 0 compare_ziffer_2 = 0 compare_ziffer_3 = 0 compare_ziffer_4 = 0 compare_ziffer_5 = 0 compare_ziffer_6 = 0 elif command[0] == "stopStopwatch": pass else: STATE = END break
def executeCommand(command): global OUT1_STATE global OUT1_OFF_TIME global OUT2_STATE global OUT2_OFF_TIME ok = 0 if(command.getCommand() == 'OUT1'): if(command.getParameter() == '0'): RX_API.setOUT1(0) OUT1_STATE = 0 ok = 1 if(command.getParameter() == '1'): RX_API.setOUT1(1) OUT1_STATE = 1 OUT1_OFF_TIME = MOD.secCounter() + int(CFG.get('OUT1TIME')) ok = 1 SER.send('Set OUT1 to %s\r' % (command.getParameter())) elif(command.getCommand() == 'OUT2'): if(command.getParameter() == '0'): RX_API.setOUT2(0) OUT2_STATE = 0 ok = 1 if(command.getParameter() == '1'): RX_API.setOUT2(1) OUT2_STATE = 1 OUT2_OFF_TIME = MOD.secCounter() + int(CFG.get('OUT2TIME')) ok = 1 SER.send('Set OUT2 to %s\r' % (command.getParameter())) elif(command.getCommand() == 'DEBUG'): CFG.set('DEBUG', command.getParameter()) CFG.write() SER.send('DEBUG is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'REBOOTPERIOD'): CFG.set('REBOOTPERIOD', command.getParameter()) CFG.write() SER.send('REBOOTPERIOD is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ALIVESMS'): CFG.set('ALIVESMS', command.getParameter()) CFG.write() SER.send('ALIVESMS is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'SAVEINPUTS'): CFG.set('SAVEINPUTS', command.getParameter()) CFG.write() SER.send('SAVEINPUTS is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADC'): ADC_VALUE_NEW = RX_API.getADC() * 11 SER.send('Current ADC value: %d\r' % (ADC_VALUE_NEW)) return 'ADC=%d mV;' % (ADC_VALUE_NEW) elif(command.getCommand() == 'INPUTS'): ADC_VALUE = RX_API.getADC() * 11 IN1_VALUE = RX_API.getSK1() IN2_VALUE = RX_API.getSK2() IN3_VALUE = RX_API.getCounter1() IN4_VALUE = RX_API.getCounter2() SER.send('Current IN1: %d, IN2: %d, IN3: %d, IN4: %d, ADC: %d\r' % (IN1_VALUE, IN2_VALUE, IN3_VALUE, IN4_VALUE, ADC_VALUE)) return 'IN1=%d,IN2=%d,IN3=%d,IN4=%d,ADC=%d;' % (IN1_VALUE, IN2_VALUE, IN3_VALUE, IN4_VALUE, ADC_VALUE) elif(command.getCommand() == 'ADCTXTOVR'): CFG.set('ADCTXTOVR', command.getParameter()) CFG.write() SER.send('ADCTXTOVR is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADCTXTUND'): CFG.set('ADCTXTUND', command.getParameter()) CFG.write() SER.send('ADCTXTUND is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADCVAL'): CFG.set('ADCVAL', command.getParameter()) CFG.write() SER.send('ADCVAL is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADCHYST'): CFG.set('ADCHYST', command.getParameter()) CFG.write() SER.send('ADCHYST is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADCFRONT'): CFG.set('ADCFRONT', command.getParameter()) CFG.write() SER.send('ADCFRONT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ADCDELAY'): CFG.set('ADCDELAY', command.getParameter()) CFG.write() SER.send('ADCDELAY is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'PASS'): CFG.set('PASS', command.getParameter()) CFG.write() SER.send('PASS is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN1ONTXT'): CFG.set('IN1ONTXT', command.getParameter()) CFG.write() SER.send('IN1ONTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN1OFFTXT'): CFG.set('IN1OFFTXT', command.getParameter()) CFG.write() SER.send('IN1OFFTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN2ONTXT'): CFG.set('IN2ONTXT', command.getParameter()) CFG.write() SER.send('IN2ONTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN2OFFTXT'): CFG.set('IN2OFFTXT', command.getParameter()) CFG.write() SER.send('IN2OFFTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN3ONTXT'): CFG.set('IN3ONTXT', command.getParameter()) CFG.write() SER.send('IN3ONTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN3OFFTXT'): CFG.set('IN3OFFTXT', command.getParameter()) CFG.write() SER.send('IN3OFFTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN4ONTXT'): CFG.set('IN4ONTXT', command.getParameter()) CFG.write() SER.send('IN4ONTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN4OFFTXT'): CFG.set('IN4OFFTXT', command.getParameter()) CFG.write() SER.send('IN4OFFTXT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'SMS_ACK'): CFG.set('SMS_ACK', command.getParameter()) CFG.write() SER.send('SMS_ACK is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN1FRONT'): CFG.set('IN1FRONT', command.getParameter()) CFG.write() SER.send('IN1FRONT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN2FRONT'): CFG.set('IN2FRONT', command.getParameter()) CFG.write() SER.send('IN2FRONT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN3FRONT'): CFG.set('IN3FRONT', command.getParameter()) CFG.write() SER.send('IN3FRONT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN4FRONT'): CFG.set('IN4FRONT', command.getParameter()) CFG.write() SER.send('IN4FRONT is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN1DELAY'): CFG.set('IN1DELAY', command.getParameter()) CFG.write() SER.send('IN1DELAY is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN2DELAY'): CFG.set('IN2DELAY', command.getParameter()) CFG.write() SER.send('IN2DELAY is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN3DELAY'): CFG.set('IN3DELAY', command.getParameter()) CFG.write() SER.send('IN3DELAY is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'IN4DELAY'): CFG.set('IN4DELAY', command.getParameter()) CFG.write() SER.send('IN4DELAY is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'OUT1TIME'): CFG.set('OUT1TIME', command.getParameter()) CFG.write() SER.send('OUT1TIME is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'OUT2TIME'): CFG.set('OUT2TIME', command.getParameter()) CFG.write() SER.send('OUT2TIME is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'WHITE'): CFG.set('WHITE', command.getParameter()) CFG.write() SER.send('WHITE is set to: %s\r' % (command.getParameter())) ok = 1 elif(command.getCommand() == 'ALERT'): CFG.set('ALERT', command.getParameter()) CFG.write() SER.send('ALERT is set to: %s\r' % (command.getParameter())) ok = 1 if(ok == 1): return 'CMD %s OK;' % (command.getCommand()) else: return 'CMD %s ERR;' % (command.getCommand())