Exemple #1
0
    def __init__(self, iface_name, data_handler, event_handler):
        self.command_queue = Queue()
        self.mgnt_frames_queue = Queue()
        self.command_response_queue = Queue()

        self.__manager_service = ManagerSvc(iface_name,
                                            self.command_queue,
                                            self.command_response_queue,
                                            self.mgnt_frames_queue,
                                            event_handler)
        self.__management_frame_handler = WiWoManagementFrameHandler(iface_name,  self.mgnt_frames_queue)
        self.__data_frame_handler = WiWoDataFrameHandler(self, iface_name, data_handler)

        self.__manager_service.start()
        self.__management_frame_handler.start()
        self.__data_frame_handler.start()
        # We are using multiprocess.Lock to make sure that self.__management_frame_handler and
        # self.__data_frame_handler are initialized and already processing frames. But due to the use of pcap_loop
        # function we need to wait some seconds to make sure we don't lose frames on the initialization. On our
        # system 2 seconds was enough but to make sure we wait for 10 seconds.
        # TODO:  This is a workaround! We need to fix this in a correct way.
        time.sleep(10)