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

import sys
import os
import signal

from ctypes import Structure, c_int
from shell import device_list
from shell.ais_shell import GetListInformation, AISGetLibraryVersionStr, AisShellpGetProgramVersion, AISRestart, \
                           AISDestroy, AISOpen, AISClose
from ais_http import AisHttpGetProgramVersion


dev = device_list.S_DEVICE

class LocalArgs(Structure):
     _fields_ = [('device', c_int)]

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

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

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'

def GetAISRestart():
    try:
        return AISRestart(dev)
    except TypeError as exc:
        return exc

def GetAISDestroy():
    try:
        return AISDestroy(dev)
    except TypeError as exc:
        return exc

def GetAISOpenDevice():
    try:
        return AISOpen(dev)
    except TypeError as exc:
        return exc

def GetAISCloseDevice():
    try:
        return AISClose(dev)
    except TypeError as exc:
        return exc


action = {'q': GetListInformation,
          'v': GetDLLVersion,
          'V': GetProgramVersion,
          'X': GetExitApp,
          'R': GetAISRestart,
          'D': GetAISDestroy,
          'o': GetAISOpenDevice,
          'c': GetAISCloseDevice}


def command(getfunction, device, ldev):
    global dev
    dev = ldev
    return action[getfunction].__call__()