Exemplo n.º 1
0
    def __init__(self, ip=None, _port=None, data_cb=None, sys_cb=None,
                 word_for_check_new_acceptance={'request': None, 'response': None}, _run_timer=False):
        """

        :param ip:
        :param port:
        :param callback:
        :param word_for_check_new_acceptance: must be list type with 2 include, for example, ['request', 'response']
        :return:
        """
        if not self._check_args(ip, _port, data_cb, sys_cb, word_for_check_new_acceptance, _run_timer):
            log.error(Exceptions.FailCheckServerArgs('Oops :) Some args are incorrect'))
            raise Exceptions.FailCheckServerArgs('Oops :) Some args are incorrect')

        self.sock = None
        self.ip = ip
        self.port = _port
        self.data_callback = data_cb
        self.sys_callback = sys_cb
        self.is_check_new_acceptance = word_for_check_new_acceptance

        threading.Thread.__init__(self)

        self.flag_run = False
        self.info = dict()
        self.queue_handlers = {'acceptance': self.accept_handler,
                               'accept error': self.accept_error_handler,
                               'speak': self.speak_handler,
                               'speak error': self.speak_error_handler,
                               'control': self.cmd_handler
                               }

        self.acceptThread = Thread4Accept()
        self.speakThread = dict()

        if _run_timer:
            self.timer = Interrupt(callback_handler=self.callback_for_timer, periodic=1)