def init_port_agent(self): """ @brief Launch the driver process and driver client. This is used in the integration and qualification tests. The port agent abstracts the physical interface with the instrument. @retval return the pid to the logger process """ log.info("Startup Port Agent") # Create port agent object. this_pid = os.getpid() # Working dir and delim are hard coded here because this launch process # will change with the new port agent. self.port_agent = EthernetDeviceLogger.launch_process( self.comm_config.device_addr, self.comm_config.device_port, self._test_config.working_dir, self._test_config.delimeter, this_pid, ) pid = self.port_agent.get_pid() while not pid: gevent.sleep(0.1) pid = self.port_agent.get_pid() port = self.port_agent.get_port() while not port: gevent.sleep(0.1) port = self.port_agent.get_port() log.info("Started port agent pid %d listening at port %d" % (pid, port)) return port
def init_port_agent(self): """ @brief Launch the driver process and driver client. This is used in the integration and qualification tests. The port agent abstracts the physical interface with the instrument. @retval return the pid to the logger process """ log.info("Startup Port Agent") # Create port agent object. this_pid = os.getpid() # Working dir and delim are hard coded here because this launch process # will change with the new port agent. self.port_agent = EthernetDeviceLogger.launch_process( self.comm_config.device_addr, self.comm_config.device_port, self._test_config.working_dir, self._test_config.delimeter, this_pid) pid = self.port_agent.get_pid() while not pid: gevent.sleep(.1) pid = self.port_agent.get_pid() port = self.port_agent.get_port() while not port: gevent.sleep(.1) port = self.port_agent.get_port() log.info('Started port agent pid %d listening at port %d' % (pid, port)) return port
def _start_pagent(self): """ Construct and start the port agent. """ # Create port agent object. this_pid = os.getpid() self._pagent = EthernetDeviceLogger.launch_process(self.device_address, self.device_port, WORK_DIR, DELIM, this_pid) # Get the pid and port agent server port number. pid = self._pagent.get_pid() while not pid: gevent.sleep(.1) pid = self._pagent.get_pid() port = self._pagent.get_port() while not port: gevent.sleep(.1) port = self._pagent.get_port() # Configure driver to use port agent port number. DVR_CONFIG['comms_config'] = { 'addr' : 'localhost', 'port' : port } # Report. log.info('Started port agent pid %d listening at port %d.', pid, port)
def launch(self): """ @brief Launch the driver process and driver client. This is used in the integration and qualification tests. The port agent abstracts the physical interface with the instrument. @retval return the pid to the logger process """ log.info("Startup Port Agent") # Create port agent object. this_pid = os.getpid() if self._test_mode else None log.debug( " -- our pid: %s" % this_pid) log.debug( " -- address: %s, port: %s" % (self._device_addr, self._device_port)) # Working dir and delim are hard coded here because this launch process # will change with the new port agent. self.port_agent = EthernetDeviceLogger.launch_process( self._device_addr, self._device_port, self._working_dir, self._delimiter, this_pid) log.debug( " Port agent object created" ) start_time = time.time() expire_time = start_time + int(self._timeout) pid = self.port_agent.get_pid() while not pid: gevent.sleep(.1) pid = self.port_agent.get_pid() if time.time() > expire_time: log.error("!!!! Failed to start Port Agent !!!!") raise PortAgentTimeout('port agent could not be started') self._pid = pid port = self.port_agent.get_port() start_time = time.time() expire_time = start_time + int(self._timeout) while not port: gevent.sleep(.1) port = self.port_agent.get_port() if time.time() > expire_time: log.error("!!!! Port Agent could not bind to port !!!!") self.stop() raise PortAgentTimeout('port agent could not bind to port') self._data_port = port log.info('Started port agent pid %s listening at port %s' % (pid, port)) return port
def launch(self): """ @brief Launch the driver process and driver client. This is used in the integration and qualification tests. The port agent abstracts the physical interface with the instrument. @retval return the pid to the logger process """ log.info("Startup Port Agent") # Create port agent object. this_pid = os.getpid() if self._test_mode else None log.debug(" -- our pid: %s" % this_pid) log.debug(" -- address: %s, port: %s" % (self._device_addr, self._device_port)) # Working dir and delim are hard coded here because this launch process # will change with the new port agent. self.port_agent = EthernetDeviceLogger.launch_process( self._device_addr, self._device_port, self._working_dir, self._delimiter, this_pid) log.debug(" Port agent object created") start_time = time.time() expire_time = start_time + int(self._timeout) pid = self.port_agent.get_pid() while not pid: gevent.sleep(.1) pid = self.port_agent.get_pid() if time.time() > expire_time: log.error("!!!! Failed to start Port Agent !!!!") raise PortAgentTimeout('port agent could not be started') self._pid = pid port = self.port_agent.get_port() start_time = time.time() expire_time = start_time + int(self._timeout) while not port: gevent.sleep(.1) port = self.port_agent.get_port() if time.time() > expire_time: log.error("!!!! Port Agent could not bind to port !!!!") self.stop() raise PortAgentTimeout('port agent could not bind to port') self._data_port = port log.info('Started port agent pid %s listening at port %s' % (pid, port)) return port
def start_pagent(self): """ Construct and start the port agent. @retval port Port that was used for connection to agent """ # Create port agent object. this_pid = os.getpid() self._pagent = EthernetDeviceLogger.launch_process( self.device_addr, self.device_port, self.work_dir, self.delim, this_pid) pid = self._pagent.get_pid() while not pid: gevent.sleep(.1) pid = self._pagent.get_pid() port = self._pagent.get_port() while not port: gevent.sleep(.1) port = self._pagent.get_port() mi_logger.info('Started port agent pid %d listening at port %d', pid, port) return port
def start_pagent(self): """ Construct and start the port agent. @retval port Port that was used for connection to agent """ # Create port agent object. this_pid = os.getpid() self._pagent = EthernetDeviceLogger.launch_process(self.device_addr, self.device_port, self.work_dir, self.delim, this_pid) pid = self._pagent.get_pid() while not pid: gevent.sleep(.1) pid = self._pagent.get_pid() port = self._pagent.get_port() while not port: gevent.sleep(.1) port = self._pagent.get_port() mi_logger.info('Started port agent pid %d listening at port %d', pid, port) return port