Example #1
0
	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)
Example #2
0
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())
Example #3
0
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)
Example #4
0
File: vm.py Project: iBug/HRM
 def runCmd(self, cmd):
     return getCommand(cmd.cmd)(self, *cmd.ops)
Example #5
0
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
Example #6
0
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
Example #7
0
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())