Skip to content

Mudanças na API

As mudanças na API nas versões recentes do Aimsun Next são:

Mudanças na versão 23.0.2

Funções relevantes para Eventos de Padrão de Detecção

O parâmetro isSection foi removido das seguintes funções:

  • int AKIInfNetGetIdObjectofOriginCentroidConnector(int aid, int elem);
  • int AKIInfNetGetIdObjectofDestinationCentroidConnector(int aid, int elem);
  • int AKIInfNetGetIdObjectANGofOriginCentroidConnector(int aid, int elem);
  • int AKIInfNetGetIdObjectANGofDestinationCentroidConnector(int aid, int elem);

AKIInfNetGetIdObjectofOriginCentroidConnector

Mudanças na versão 23.0.1

Funções relevantes para Eventos de Padrão de Detecção

Em versões anteriores, a função para adicionar Eventos de Padrão de Detector exigia que o horário de início e fim do evento fosse expresso como tempo da simulação, em segundos desde a meia-noite. Isso impossibilitou a execução de eventos durante um aquecimento. Uma nova função para adicionar eventos com horários relativos foi adicionada:

As funções antigas são mantidas por motivos de compatibilidade, mas são consideradas obsoletas e serão removidas em versões futuras.

Mudanças na versão 23

Atributos adicionados ou modificados para InfVeh e InfPTVeh

  • Adicionado atributo isLost, usado para retornar se o veículo não consegue mais alcançar seu destino, tanto para InfVeh quanto para InfPTVeh.
  • Do InfPTVeh, o atributo mal escrito theoricalGenerationTime foi renomeado para theoreticalGenerationTime.

Atributo adicionado ao StaticInfPed

  • Adicionado atributo typeID para obter o tipo de pedestre.

Mudanças na versão 22.0.2

Adicionadas todas as variáveis ausentes para períodos global, parcial e atual nas seguintes entidades:

StructAkiEstadSystem:

  • int vehOut: Veículos que saíram da rede.

  • int totalNumStops: Total de paradas.

  • double waitingTimeVirtualQueue, waitingTimeVirtualQueueDev: Tempo médio em segundos que os veículos permanecem esperando em uma fila virtual. Apenas em seções de entrada.

StructAkiEstadSection:

  • int numVehiclesInVQ: Total de veículos em filas virtuais.

  • double waitingTimeVirtualQueue, waitingTimeVirtualQueueDev: Tempo médio em segundos que os veículos permanecem esperando em uma fila virtual. Apenas em seções de entrada.

Não foram adicionadas as estatísticas ausentes de dTimeTTime, pois é permitido calcular a partir do tempo de atraso e do tempo de viagem.

StructAkiEstadSectionLane:

  • int count: Contagem.

  • int inputCount: Contagem de entrada.

  • int inputFlow: Fluxo de entrada.

  • double STa,STd: Média e desvio do tempo de parada.

  • double waitingTimeVirtualQueue, waitingTimeVirtualQueueDev: Tempo médio em segundos que os veículos permanecem esperando em uma fila virtual. Apenas em seções de entrada.

Não foram adicionadas as estatísticas ausentes de dTimeTTime porque é permitido calcular a partir do tempo de atraso e do tempo de viagem.

StructAkiEstadTurning:

  • int count: Contagem.

  • int inputCount: Contagem de Entrada.

  • int inputFlow: Fluxo de Entrada.

  • double virtualQueueAvg: Média da fila virtual.

  • int virtualQueueMax: Máximo de fila virtual.

  • int vehLost: Total de veículos perdidos.

  • int vehMissed: Total de veículos que não foram pegos.

StructAkiEstadODPair:

  • int count: Contagem.

  • int inputCount: Contagem de Entrada.

  • int inputFlow: Fluxo de Entrada.

  • int vehLost: Total de veículos perdidos.

  • double dwellTime, dwellTimeDev: Tempo que um veículo passa em uma parada programada sem se mover. Apenas para veículos de linha de Transporte Público.

  • double waitingTimeVirtualQueue, waitingTimeVirtualQueueDev: Tempo médio em segundos que os veículos permanecem esperando em uma fila virtual. Apenas em seções de entrada.

StructAkiEstadStream:

  • int count: Contagem.

  • int inputCount: Contagem de Entrada.

  • int inputFlow: Fluxo de Entrada.

  • int vehLost: Total de veículos perdidos.

  • double dwellTime, dwellTimeDev: Tempo que um veículo passa em uma parada programada sem se mover. Apenas para veículos de linha de Transporte Público.

  • double waitingTimeVirtualQueue, waitingTimeVirtualQueueDev: Tempo médio em segundos que os veículos permanecem esperando em uma fila virtual. Apenas em seções de entrada.

Mudanças na versão 22

Funções relevantes para Gerenciamento do Transporte Público

Parâmetros obsoletos VehType, acomplianceLevel e visibilityDistance foram removidos de:

Atributos adicionados a StaticInfVeh e StaticInfPTVeh

  • Adicionado identificador engineTypeId, usado para classificar veículos por tipo de motor no modelo de aceleração MFC, modelos de emissões, modelos de consumo, onde: Nenhum = 0, Gasolina = 1, Diesel = 2, Elétrico = 3, Gás Liquefeito de Petróleo = 4.
  • Adicionado (por enquanto, apenas para StaticInfVeh) identificador vehicleSegmentId, usado para classificar veículos por segmento (perfis) no modelo de aceleração MFC (modelo de aceleração MFC e modelo de consumo de bateria).
  • Adicionado identificador EUEmissionId, usado para classificar veículos por tipo de emissão no modelo LEM (Modelo de Emissão de Londres).
  • Adicionado parâmetro energyCapacity, capacidade do tanque de combustível (l) ou capacidade da bateria (kW) para o modelo de consumo de energia (Modelo de Consumo de Energia).

Atributos adicionados a InfVeh e InfPTVeh

  • Adicionada variável energyState, nível atual de combustível ou capacidade atual da bateria (%) (Modelo de Consumo de Energia).

Nova estrutura adicionada LeaderInfVeh

Contém as seguintes informações sobre o líder:

  • report: 0, OK, caso contrário, código de erro
  • idVeh: identificador do veículo
  • idLeaderVeh: identificador do veículo líder, 0 se não houver líder
  • headway: tempo entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (s)
  • gap: tempo entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (s)
  • spacing: espaço entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (m)
  • clearance: espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m)

Funções relevantes para veículos simulados

Quatro novas funções foram adicionadas para fornecer acesso à nova estrutura chamada LeaderInfVeh e para obter informações sobre o veículo líder:

Quatro novos parâmetros foram adicionados à estrutura StaticInfVeh retornada pela chamada AKIVehTrackedGetStaticInf, pela chamada AKIVehGetVehicleStaticInfSection e pela chamada AKIVehGetVehicleStaticInfJunction:

  • engineTypeId, identificador usado para classificar veículos por motor no MFC aceleração, modelos de emissão, modelos de consumo, onde: Nenhum = 0, Gasolina = 1, Diesel = 2, Elétrico = 3, Gás Liquefeito de Petróleo = 4.
  • vehicleSegmentId, identificador, usado para classificar veículos por segmento (perfis) em MFC aceleração.
  • EUEmissionId, identificador usado para classificar veículos por tipo de emissão no modelo LEM.
  • energyCapacity, capacidade do tanque de combustível (l) ou capacidade da bateria (kW) para o modelo de consumo de energia.

Dois novos parâmetros foram retornados pelas duas novas funções AKIVehTrackedGetVehicleCategoryId, a chamada AKIVehTrackedGetLEMEmissionVehicleTypeId:

  • vehicleCategoryId, identificador da categoria do veículo incluindo no tipo de veículo para composição do motor: Carro, Veículo comercial, Ônibus, Motocicleta e Não motorizado.
  • EMEmissionVehicleTypeId, tipo de veículo de emissão incluindo no tipo de veículo para o modelo LEM (depende da categoria do veículo): Carro, Táxi, LGV, HGV, Ônibus de um andar, Ônibus de dois andares, ônibus executivo.

Funções relevantes para entidades

StructAkiEstadSystem

  • StructAkiEstadSystem AKIEstGetGlobalStatisticsSystemBatteryCons(int VehType, double& batteryConsumption);
  • StructAkiEstadSystem AKIEstGetParcialStatisticsSystemBatteryCons(double time, int VehType, double &batteryConsumption);
  • double AKIEstGetGlobalStatisticsSystemBatteryConsumption(int VehType);
  • double AKIEstGetParcialStatisticsSystemBatteryConsumption(double time, int VehType);

StructAkiEstadSection

  • StructAkiEstadSection AKIEstGetGlobalStatisticsSectionBatteryCons(int aidarc, int VehType, double& batteryConsumption);
  • StructAkiEstadSection AKIEstGetParcialStatisticsSectionBatteryCons(int aidarc, double time, int VehType, double& batteryConsumption);
  • StructAkiEstadSection AKIEstGetCurrentStatisticsSectionBatteryCons(int aidarc, int VehType, double & batteryConsumption);
  • double AKIEstGetGlobalStatisticsSectionBatteryConsumption(int aidarc, int VehType);
  • double AKIEstGetParcialStatisticsSectionBatteryConsumption(int aidarc, double time, int VehType);
  • double AKIEstGetCurrentStatisticsSectionBatteryConsumption(int aidarc, int VehType);

StructAkiEstadTurning

  • StructAkiEstadTurning AKIEstGetGlobalStatisticsTurningBatteryCons(int aidsectionFrom, int aidsectionTo, int VehType, double& batteryConsumption);
  • StructAkiEstadTurning AKIEstGetParcialStatisticsTurningBatteryCons(int aidsectionFrom, int aidsectionTo, double time, int VehType, double& batteryConsumption);
  • StructAkiEstadTurning AKIEstGetCurrentStatisticsTurningBatteryCons(int aidsectionFrom, int aidsectionTo, int VehType, double& batteryConsumption);
  • double AKIEstGetGlobalStatisticsTurningBatteryConsumption(int aidsectionFrom, int aidsectionTo, int VehType);
  • double AKIEstGetParcialStatisticsTurningBatteryConsumption(int aidsectionFrom, int aidsectionTo, double time, int VehType);
  • double AKIEstGetCurrentStatisticsTurningBatteryConsumption(int aidsectionFrom, int aidsectionTo, int VehType);
  • StructAkiEstadTurning AKIEstGetGlobalStatisticsLinkBatteryCons(int aidsectionFrom, int aidsectionTo, int VehType, double& batteryConsumption);
  • StructAkiEstadTurning AKIEstGetParcialStatisticsLinkBatteryCons(int aidsectionFrom, int aidsectionTo, double time, int VehType, double& batteryConsumption);
  • StructAkiEstadTurning AKIEstGetCurrentStatisticsLinkBatteryCons(int aidsectionFrom, int aidsectionTo, int VehType, double& batteryConsumption);
  • double AKIEstGetGlobalStatisticsLinkBatteryConsumption(int aidsectionFrom, int aidsectionTo, int VehType);
  • double AKIEstGetParcialStatisticsLinkBatteryConsumption(int aidsectionFrom, int aidsectionTo, double time, int VehType);
  • double AKIEstGetCurrentStatisticsLinkBatteryConsumption(int aidsectionFrom, int aidsectionTo, int VehType);

StructAkiEstadODPair

  • StructAkiEstadODPair AKIEstGetGlobalStatisticsODPairBatteryCons(int idOrigin, int idDestination, int VehType, double& batteryConsumption);
  • StructAkiEstadODPair AKIEstGetParcialStatisticsODPairBatteryCons(int idOrigin, int idDestination, double time, int VehType, double &batteryConsumption);
  • double AKIEstGetGlobalStatisticsODPairBatteryConsumption(int idOrigin, int idDestination, int VehType);
  • double AKIEstGetParcialStatisticsODPairBatteryConsumption(int idOrigin, int idDestination, double time, int VehType);

StructAkiEstadStream

  • StructAkiEstadStream AKIEstGetParcialStatisticsStreamBatteryCons(int aidstream, double time, int VehType, double& batteryConsumption);
  • StructAkiEstadStream AKIEstGetGlobalStatisticsStreamBatteryCons(int aidstream, int VehType, double& batteryConsumption);
  • double AKIEstGetParcialStatisticsStreamBatteryConsumption(int aidstream, double time, int VehType);
  • double AKIEstGetGlobalStatisticsStreamBatteryConsumption(int aidstream, int VehType);

Nova versão do Python para APIs em Python

O Aimsun Next 22 foi lançado apenas com Python 3. O suporte ao Python 2 foi descontinuado. A versão do Ubuntu usa Python 3.7 e as versões para Mac e Windows requerem Python 3.10.

Mudanças na versão 20

Funções relevantes para gerenciamento de tráfego

Um novo parâmetro para especificar a seção que afetará os custos de cálculo do caminho foi adicionado a essas duas funções:

  • void * AKIActionAddCloseTurningODAction(int sectionId, int anewSection2Close, int aOrigin, int aDest, int vehType, double acomplianceLevel, double visibilityDistance, bool localEffect, int sectionAffectingPathCostId )

  • void * AKIActionAddCloseTurningODActionByID(int sectionId, int anewSection2Close, int aOrigin, int aDest, int vehType, double acomplianceLevel, double visibilityDistance, bool localEffect, int sectionAffectingPathCostId )

Novas funções adicionadas:

  • void * AKIActionAddTurnSpeedActionByID( int idAction, int nbTurns, int * turnIDs, double speed, int vehicleType, double complianceLevel, bool considerSpeedAcceptance )

Funções e atributos relevantes para velocidade de caixa amarela

  • A velocidade da caixa amarela nas seções não está mais disponível. Os structs A2KSectionInf e A2KSectionBehaviourParam obsoletos "double yellowBoxSpeed" foram removidos.
  • A2KTurnInf tem um novo parâmetro para saber se uma curva levará em conta a caixa amarela.

Atributos removidos de StaticInfVeh e StaticPTVeh

  • O parâmetro obsoleto minSafetyDistance foi removido de StaticInfVeh e StaticPTVeh.

Três novos parâmetros foram adicionados para permitir o posicionamento bidimensional de um veículo:

  • int AKIPutVehTrafficOD(int asection, int idLane, int vehTypePos, int idCentroidOr, int idCentroidDest, double initPosition, double initSpeed, int tracking, bool use2Dim, double initYPosition, double initYSpeed );

Nova versão do Python para APIs em Python

O Aimsun Next 20 foi lançado com 2 versões diferentes do Python. A versão do instalador Python 2 usa Python 2.7 enquanto a versão do instalador Python 3 usa Python 3.7.

Mudanças na versão 8.4.3

Nova versão do Visual Studio para APIs em C

O Aimsun Next 8.4.3 utiliza o Visual Studio 2019. Será necessário reconstruir qualquer API desenvolvida em 8.4.2 ou anteriormente com as novas bibliotecas fornecidas.

Até o Aimsun Next 8.4.2, a versão do Visual Studio era VS2013.

Funções relevantes para detectores

Funções relevantes para veículos simulados

Nova estrutura StaticInfVehACCParams foi criada. Esses são os parâmetros.

Parâmetros comuns a todos os veículos simulados:

  • report: Código de erro retornado (0 significa sucesso).
  • idVeh: ID do veículo simulado.
  • accType: O módulo ACC do veículo simulado (0: Nenhum, 1: ACC, 2: CACC).

Parâmetros do Modelo ACC:

(Todos esses parâmetros serão -1 quando o módulo estiver desativado)

  • minClearanceDistance: O limite inferior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • maxClearanceDistance: O limite superior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • speedGainFreeFlow: O ganho na diferença de velocidade entre a velocidade de fluxo livre e a velocidade atual do veículo em questão (s-1).
  • distanceGain: O ganho na diferença de posição entre o veículo precedente e o veículo em questão (s-2).
  • speedGainPrec: O ganho na diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
  • desiredTimeGap: O tempo de gap desejado do controlador ACC (s).

Parâmetros do Modelo CACC:

(Todos esses parâmetros serão -1 quando o módulo estiver desativado)

  • connectedDistanceGain: O ganho na diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
  • connectedSpeedGain: O ganho na diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
  • minTimeGapThreshold: O limite inferior para o tempo gap (s).
  • maxTimeGapThreshold: O limite superior para o tempo gap (s).
  • followerTimeGap: O tempo de gap constante entre o último veículo da string conectada precedente e o veículo CACC em questão (s).
  • leaderTimeGap: O tempo de gap constante entre o último veículo da string conectada precedente e o veículo CACC em questão (s).

As seguintes funções podem ser usadas para obter informações de veículos simulados com módulos ACC/CACC.

As seguintes funções podem ser usadas para modificar os parâmetros de veículos simulados com módulos ACC/CACC.

Funções relevantes para modificar ações de tráfego

Novas funções para criar novas ações forçadas de curva seguindo um sub-rastro pelo ID foram adicionadas:

  • void * AKIActionAddNextSubPathODActionByID(int actionId, int ang_sectionId, int nbNextSections, int * anextSections, int aOrigin, int aDest, int VehType, int asectionInPath, double acomplianceLevel, double visibilityDistance);

  • void * AKIActionAddNextSubPathResultActionByID(int actionId, int ang_sectionId, int nbNextSections, int * anextSections, int VehType, double acomplianceLevel);

Mudanças na versão 8.4.2

Funções relevantes para modificar ações de tráfego

Novas funções para mudar o nível de conformidade em uma ação de Atualização de Caminho Forçado.

  • void AKIActionModifyEnRouteAssignmentAction(void *a2kaction, double acomplianceLevel);

  • void AKIActionModifyEnRouteAssignmentActionByID(int a2kactionId, double acomplianceLevel);

Funções relevantes para gerenciar Planos de Controle

Várias funções para obter o tempo amarelo ao transitar do vermelho para o verde agora estão disponíveis.

Novas funções para obter e definir o tempo amarelo antes do verde de uma fase de plano de controle:

Novas funções para obter e definir o tempo amarelo antes do verde de um sinal de plano de controle em uma junção de plano de controle:

Nova função para obter o tempo amarelo antes do verde de um sinal de grupo semafórico em uma junção de plano de controle:

Funções relevantes para Estacionamento

Uma nova função de alto nível em micro para informar que um novo veículo inicia uma manobra de estacionamento foi adicionada:

  • AAPIVehicleStartParking (int idveh, int idsection, double time);

Funções para eventos de simulação na API Meso

Duass novas funções para interagir com o simulador antes do ciclo estatístico e o ciclo estatístico de detecção foram implementadas:

  • int MesoAPINewStatisticalInterval(void * simhandler)

  • int MesoAPINewDetectorStatisticalInterval(void * simhandler)

Funções relevantes para uma mudança no estado do veículo na API Meso

Funções chamadas quando o estado de um veículo muda.

  • int MesoAPIVehicleAtPTStop(void * simhandler, void * vehhandler, int section, int transitstop)

Mudanças na versão 8.4.1

Funções relevantes para detectores

As seguintes funções relevantes para detectores foram adicionadas:

Funções relevantes para gerenciamento de tráfego

Funções para desativar uma faixa reservada usando uma ação de gerenciamento de tráfego foram adicionadas:

Funções para criar ações de gerenciamento de tráfego para forçar curvas com subcaminhos também foram adicionadas. As existentes foram marcadas como obsoletas. Verifique a seção Ativar uma Ação de Força da Próxima Curva para mais detalhes:

Funções relevantes para incidentes

A função usada para criar um incidente com diferentes distâncias de visibilidade por tipo de veículo. A função modificada é:

  • int AKIGenerateIncidentDistancePerVehTypeint asection, int alane, double position, double length, double initime, double duration, double visibilityDistanceGeneral, int nbVehTypes, int * vehType, double * visibilityDistances, bool updateidGroup, bool applySpeedReduction, double upstreamDistanceSR, double downstreamDistanceSR, double maxSpeedSR)

Uma nova função para atribuir uma trajetória com base em faixas específicas em seções para um veículo agora está disponível.

Mudanças na versão 8.4.0

Funções relevantes para veículos simulados

Três novos parâmetros foram adicionados à estrutura StaticInfVeh retornada pela chamada AKIVehTrackedGetStaticInf e pela chamada AKIVehGetVehicleStaticInfSection:

  • laneChangingCooperation: O veículo está atualmente cooperando na manobra de mudança de faixa de outro veículo.
  • laneChangingAggressivenessLevel: O fator de agressividade para este veículo na mudança de faixa, onde 0% significa que o espaço de segurança total é necessário para a mudança de faixa e 100% significa que o espaço mínimo é aceito na mudança de faixa.
  • distanceZoneFactor: O multiplicador que este veículo aplica às distâncias das zonas 1,2,3 que controlam quando ele começa a considerar uma próxima mudança de faixa. Um valor > 1 implica que ele tenta entrar na faixa mais cedo que o normal e um valor < 1 implica que ele tenta entrar na faixa mais tarde que o normal.

Funções relevantes para tipos de veículos

Funções para modificar os parâmetros relacionados ao comportamento de mudança de faixa para os tipos de veículos foram adicionadas. As funções são:

Mudanças na versão 8.3.0

Funções relevantes para prioridade no transporte público

Funções relevantes para plano de controle

Funções para remover ou modificar ações de gerenciamento de tráfego usando o identificador de ação.

  • void AKIActionAddSpeedActionByID(int idAction, int nbSections, int *sectionIDs, double newSpeed, int vehTypePos, double compliance, bool considerSpeedAcceptance);
  • void AKIActionAddDetailedSpeedActionByID(int idAction, int nbSections, int *sectionIDs, int laneId, int and_fromSegmentId, int and_toSegmentId, double newSpeed, int vehType, double complianceLevel, bool considerSpeedAcceptance);
  • void AKIActionAddChangeDestActionByID(int idAction, int sectionId, const std::vector& aNextSections, int originCent, int destCent, int vehTypePos, double compliance);
  • void AKIActionAddChangeDestParkRideActionByID(int idAction, int sectionId, const std::vector& aNextSections, int originCent, int destCent, int vehTypePos, double compliance, double scaleFactor);
  • void AKIActionAddEnRouteAssignmentAction(int actionId, int sectionId, int sectionInPath, int originCent, int destCent, int vehTypePos, double compliance, bool reevaluateAction, int routeChoiceType, double routeChoiceParam1, double routeChoiceParam2, double routeChoiceParam3);

Mudanças na versão 8.2.4

Funções relevantes para planos de controle

Leia o tempo atual no ciclo em um anel de uma junção:

Mudanças na versão 8.2.3

Funções relevantes para Gerenciamento do Transporte Público

Agora é possível mudar o percurso de veículo de Transporte Público:

  • int AKIPTVehReroute(int aidVeh, int nbsections, int aSections, int aNewstops, double aDwellTime, double aOffset);

  • int AKIActionAddNextSubPathPTAction(int ang_sectionId, int nbSections, int * aSections, int idline, int VehType, double acomplianceLevel, double visibilityDistance);

  • int AKIActionAddNextSubPathAndStopsPTAction(int ang_sectionId, int nbSections, int * aSections, int aStops, double aDwellTime, double *aOffset, int idline, int VehType, double acomplianceLevel, double , double visibilityDistance);

Mudanças na versão 8.2.2

Funções relevantes para planos de controle

Agora é possível verificar se uma junção está habilitada para eventos:

Mudanças na versão 8.2.1

Funções relevantes para Planos de Controle

Função para obter o ID de um grupo semafórico em uma junção fornecendo a posição do grupo semafórico na lista de grupos semafóricos da junção.

Mudanças na versão 8.2.0

Funções relevantes para estatísticas de seção

Funções para obter as atuais estatísticas agregadas do intervalo. As estatísticas retornadas podem variar durante o período estatístico e são redefinidas após o fechamento de um período estatístico.

Funções para obter as atuais estatísticas agregadas do intervalo. As estatísticas retornadas podem variar durante o período estatístico e são redefinidas após o fechamento de um período estatístico.

Funções relevantes para Estados de Tráfego

Função para mudar a porcentagem de curva em uma demanda de estado de tráfego

Funções relevantes para incidentes

A função usada para criar um incidente precisa de quatro parâmetros adicionais para definir se deve aplicar uma redução de velocidade ao redor do incidente ou não. A função modificada é:

  • int AKIGenerateIncident(int asection, int alane, double position, double length, double initime, double duration, double visibilityDistance, bool updateIdGroup, bool applySpeedReduction, double upstreamDistanceSR, double downstreamDistanceSR, double maxSpeedSR);

Funções relevantes para Gestão de Tráfego

Funções para remover e modificar ações de gerenciamento de tráfego usando o identificador.

Funções relevantes para informações de veículos

Mudanças na versão 8.1.5

Funções para obter informações em um plano de controle de junção.

  • int ECIGetTypeControlofJunction(int elemControl,int ajunction);
  • int ECIGetNbPhasesofJunction(int elemControl, int ajunction);
  • int ECIGetNumberPhasesInRingofJunction(int elemControl, int idJunction, int ring);
  • int ECIGetDurationsPhaseofJunction(int elemControl, int ajunction, int aidphase, double amax, double dur, double *amin);
  • double ECIGetYellowTimeofJunction(int elemControl, int ajunction);
  • int ECIGetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase,double timeSta,double *yellow);
  • int ECISetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase, double yellow);
  • int ECIIsAnInterPhaseofJunction(int elemControl, int idJunction,int idPhase);

Mudanças na versão 8.1.4

Funções para obter as medidas do detector.

  • StructAkiEstadDetector AKIEstGetGlobalStatisticsDetector(int detectorId, int vehType);
  • StructAkiEstadDetector AKIEstGetParcialStatisticsDetector(int detectorId, double time, int vehType);

Funções relevantes para Controle

Funções para obter o número de fases em um anel, a fase atual em um anel e o número de anéis e barreiras em um plano de controle de junção.

  • int ECIGetNbRingsJunction(int elemControl, int ajunction);
  • int ECIGetCurrentNbRingsJunction(int ajunction);
  • int ECIGetNbBarriersJunction(int elemControl, int ajunction);
  • int ECIGetCurrentNbBarriersJunction(int ajunction);
  • int ECIGetCurrentPhaseInRing(int idJunction, int ring);
  • int ECIGetNumberPhasesInRing(int idJunction, int ring);

Mudanças na versão 8.1.3

Funções relevantes para conjuntos de prioridade

Funções para obter todas as informações da prioridade foram unificadas entre Python e C++ para que o uso fosse o mesmo em ambas as linguagens de programação.

  • int ECIGetPreemptionSetNbLinesPython(int idJunction, double timeSta, int index);
  • int ECIGetPreemptionSetLinesPython(int idJunction, double timeSta, int index, int nblines, int *lines);
  • int ECIGetPreemptionSetNbPhasesPython(int idJunction, double timeSta);
  • int ECIGetPreemptionSetPhasesPython(int idJunction, double timeSta, int index, int nbPhases , int *phases);
  • int ECIGetPreemptionSetNbRequestDetectorsPython(int idJunction, double timeSta, int index);
  • int ECIGetPreemptionSetRequestDetectorsPython(int idJunction, double timeSta, int index, int nbDetectors, int * detector);
  • int ECIGetPreemptionSetNbEndDetectorsPython(int idJunction, double timeSta, int index);
  • int ECIGetPreemptionSetEndDetectorsPython(int idJunction, double timeSta, int index, int nbDetectors, int * detectors);

Para fazer isso, os nomes das funções foram alterados para:

e o método específico de C++ foi excluído.

Mudanças na versão 8.1.2

Funções relevantes para planos de controle

Agora é possível obter o ID Externo de um Grupo Semafórico:

Mudanças na versão 8.1.0

Funções relevantes para Detectores

Os detectores (structA2KDetector) não têm mais o atributo DistinguishType, pois sempre foi verdadeiro. Todos os detectores no Aimsun Next podem distinguir por tipo de veículo.

Funções relevantes para Gestão de Tráfego

Agora é possível obter informações sobre as ações de gerenciamento de tráfego que estão vinculadas à simulação atual: