class_docstr: PTVVissimSimulation is responsible for the management of the vissim simulation.
code: def __init__(self, args):
      # Maximum number of simulator vehicles to be tracked by the driving simulator interface.
      self._max_simulator_vehicles = args.simulator_vehicles
  
      # Loading driving simulator proxy library.
      logging.info("Loading DrivingSimulatorProxy library...")
      self.ds_proxy = cdll.LoadLibrary("DrivingSimulatorProxy.dll")
  
      # Connection to vissim simulator.
      logging.info(
          "Establishing a connection with a GUI version of PTV-Vissim"
      )
      result = self.ds_proxy.VISSIM_Connect(
          args.vissim_version,
          os.path.abspath(args.vissim_network),
          int(1.0 / args.step_length),
          c_double(constants.VISSIM_VISIBILITY_RADIUS),
          c_ushort(constants.VISSIM_MAX_SIMULATOR_VEH),
          c_ushort(constants.VISSIM_MAX_SIMULATOR_PED),
          c_ushort(constants.VISSIM_MAX_SIMULATOR_DET),
          c_ushort(constants.VISSIM_MAX_VISSIM_VEH),
          c_ushort(constants.VISSIM_MAX_VISSIM_PED),
          c_ushort(constants.VISSIM_MAX_VISSIM_SIGGRP),
      )
  
      if not result:
          raise RuntimeError(
              "There was an error when establishing a connection with PTV-Vissim"
          )
  
      # Structures to keep track of the simulation state at each time step.
      self._vissim_vehicles = (
          {}
      )  # vissim_actor_id: VissimVehicle (only vissim traffic)
      self._simulator_vehicles = (
          {}
      )  # vissim_actor_id: Simulator_Veh_Data
  
      self.spawned_vehicles = set()
      self.destroyed_vehicles = set()
  
imports: import enum
  import logging
  import math
  import os
  import carla
  from ctypes import *
  from .None import constants
label_desc: Use image node_id 1 to create a new PTVVissimSimulation object from inherited base classes: object with example: obj = PTVVissimSimulation(args)