# Configuração e início da Simulação
print('Starting simulation')

# Semente para reprodução de resultados
random.seed(simconfig.RANDOM_SEED)

# Criando o environment do simpy
simpyEnvironment = simpy.Environment()

# Building the simulation environment
simulationEnvironment = SimulationEnvironment(simpyEnvironment)

# Building the simulation region configuration
addRegion()

# Adding disturbing process
addDisturbing() # Processo que adiciona perturbação ao ambiente da simulação

# Adding node
addNodes(simconfig.NODES_NUMBER)

# Building the distributed system controller
addController()

# Executando a simulação
simpyEnvironment.run(until=simconfig.SIMULATION_TIME)

# Generating report
Report.generateReport()