Skip to content
commands.py 2.59 KiB
Newer Older
developer7's avatar
developer7 committed
'''
  global command functions
developer7's avatar
developer7 committed
  1.2
developer7's avatar
developer7 committed
'''

import sys
import os
import signal
developer7's avatar
developer7 committed
import functools
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
from shell.device_list import S_DEVICE
developer7's avatar
developer7 committed
from shell.ais_shell import GetListInformation, AISGetLibraryVersionStr, AisShellpGetProgramVersion, AISRestart, \
developer7's avatar
developer7 committed
    AISDestroy, AISOpen, AISClose, AISUpdateAndGetCount, wr_status, sys_get_timezone_info, AISGetTime, AISSetTime, \
    log_get, whitelist_read, blacklist_read, get_io_state, lock_open, relay_toogle, AISGetVersion, ee_lock, ee_unlock
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
from ais_http import AisHttpGetProgramVersion
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
dev = S_DEVICE
developer7's avatar
developer7 committed


def GetDLLVersion():
    return "AIS_GetDLLVersion() >> %s\n" % AISGetLibraryVersionStr()

def GetProgramVersion():
    return '{0}\n{1}\n'.format(AisHttpGetProgramVersion(), AisShellpGetProgramVersion())

developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
def GetExitApp():
    if sys.platform.startswith('linux'):
        os.system('pkill -9 python')
        os.kill(os.getpid(), signal.SIGINT)
    elif sys.platform.startswith('win'):
        os._exit(0)
    return '\nServer stopped !\nClose program !\n'

developer7's avatar
developer7 committed
def GetAISUpdateAndGetCount():
developer7's avatar
developer7 committed
    try:
developer7's avatar
developer7 committed
        res, count = AISUpdateAndGetCount()
        return ' COUNT >> {0} {1}'.format(count, wr_status('', res))
    except WindowsError:
        pass
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
def GetAISGetTime():
    return AISGetTime(dev)[0]
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed
def GetAISSetTime():
    return '{0}\n{1}'.format(sys_get_timezone_info(), AISSetTime(dev))
developer7's avatar
developer7 committed

developer7's avatar
developer7 committed

def GetInformation():
    return '{0}\n{1}\n{2}'.format(AISGetTime(dev)[0], sys_get_timezone_info(), AISGetVersion(dev))
developer7's avatar
developer7 committed


action = {'q': GetListInformation,
          'v': GetDLLVersion,
          'V': GetProgramVersion,
          'X': GetExitApp,
developer7's avatar
developer7 committed
          'R': functools.partial(AISRestart, dev),
          'D': functools.partial(AISDestroy, dev),
          'o': functools.partial(AISOpen, dev),
          'c': functools.partial(AISClose, dev),
          'd': GetAISUpdateAndGetCount,
          't': GetAISGetTime,
          'T': GetAISSetTime,
          'l': functools.partial(log_get, dev),
          'w': functools.partial(whitelist_read, dev),
          'b': functools.partial(blacklist_read, dev),
          'g': functools.partial(get_io_state, dev),
          'G': functools.partial(lock_open, dev),
          'y': functools.partial(relay_toogle, dev),
          'f': functools.partial(AISGetVersion, dev),
          'E': functools.partial(ee_lock, dev),
          'e': functools.partial(ee_unlock, dev),
          'i': GetInformation

          }


def command(getfunction, ldev, **pq):
        global dev
        dev = ldev
        try:
            return action[getfunction].__call__()
        except KeyError:
            return 'WRONG COMMAND !!! \nYou must enter the correct command'
developer7's avatar
developer7 committed