code: def synchronization_loop(args):
      """
      Entry point for vissim-carla co-simulation.
      """
      carla_simulation = CarlaSimulation(args)
      vissim_simulation = PTVVissimSimulation(args)
  
      try:
          synchronization = SimulationSynchronization(
              vissim_simulation, carla_simulation, args
          )
  
          while True:
              start = time.time()
  
              synchronization.tick()
  
              end = time.time()
              elapsed = end - start
              if elapsed < args.step_length:
                  time.sleep(args.step_length - elapsed)
  
      except KeyboardInterrupt:
          logging.info("Cancelled by user.")
  
      finally:
          logging.info("Cleaning synchronization")
          synchronization.close()
  
file_path: carla/Co-Simulation/PTV-Vissim/run_synchronization.py
imports: import argparse
  import json
  import logging
  import time
  import glob
  import os
  import sys
  from vissim_integration.bridge_helper import BridgeHelper
  from vissim_integration.carla_simulation import CarlaSimulation
  from vissim_integration.vissim_simulation import PTVVissimSimulation
  from vissim_integration.constants import INVALID_ACTOR_ID
label_desc: Use image node_id 1 for calling a global function with example usage: synchronization_loop(args) without return types