Informações de veículos da API do Aimsun Next¶
Funções relacionadas a Informações do Veículo¶
Ler o Número de Veículos em uma Seção¶
Em C++ e Python¶
Explicação¶
Ler o número total de veículos em uma seção.
Formato¶
int AKIVehStateGetNbVehiclesSection(int aidSec, bool considerAllSegments)
Parâmetros¶
- aidSec: Identificador da Seção
- considerAllSegments: este parâmetro deve sempre ser definido como true.
Saída¶
- ≥ 0: Número total de veículos.
- < 0: Error.
Ler o Número de Veículos em uma Junção¶
Em C++ e Python¶
Explicação¶
Ler o número total de veículos em um cruzamento.
Formato¶
int AKIVehStateGetNbVehiclesJunction(int aidJunction)
Parâmetros¶
- aidJunction: Identificador da Interseção
Saída¶
- ≥ 0: Número total de veículos
- < 0: Erro
Ler as Informações de um Veículo em uma Seção¶
Em C++ e Python¶
Explicação¶
Ler as informações de um veículo em uma seção. Esta função exige que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesSection para a mesma seção, sem chamadas adicionais a AKIVehStateGetNbVehiclesSection para outras seções.
Formato¶
InfVeh AKIVehStateGetVehicleInfSection(int aidSec, int indexveh)
Parâmetros¶
- aidSec: Identificador da Seção
- indexveh: Índice do veículo, de 0 a (Número Total de Veículos na Seção – 1)
Saída¶
struct InfVeh{
int report;
int idVeh;
int type;
// Information in Vehicle when it is in a section
int idSection;
int segment;
int numberLane;
// Information in Vehicle when it is in a node
int idJunction;
int idSectionFrom;
int idLaneFrom;
int idSectionTo;
int idLaneTo;
double CurrentPos;
double distance2End;
double xCurrentPos, yCurrentPos, zCurrentPos;
double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack;
double CurrentSpeed, PreviousSpeed;
double TotalDistance;
double SystemGenerationT;
double SystemEntranceT;
double SectionEntranceT;
double CurrentStopTime;
bool stopped;
uint mNbLostTurnings;
double energyState;
bool isLost;
};
em que:
- relatório: 0, OK, caso contrário código de erro
- idVeh: o identificador do veículo
- type: é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
- idSection: o identificador da seção
- segmento: o número do segmento da seção em que o veículo está localizado (de 0 a n-1)
- numberLane: o número da faixa no segmento (de 1, a faixa mais à direita, até N, a faixa mais à esquerda)
- CurrentPos: a posição dentro da seção = distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção.
- distance2End: a distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede)
- xCurrentPos, yCurrentPos, zCurrentPos: coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
- xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
- CurrentSpeed: a velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede
- PreviousSpeed: a velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede.
- TotalDistance: a distância total percorrida (m ou pés) pelo veículo.
- SystemGenerationT: o tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
- SystemEntranceT: o tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
- SectionEntranceT: o tempo absoluto de entrada do veículo na seção atual.
- CurrentStopTime: o tempo de parada atual.
- parado: True se o veículo permanecer parado.
- mNbLostTurnings O número de movimentos de conversão perdidos.
- energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
- isLost Verdadeiro se o veículo estiver perdido e não puder alcançar seu destino.
Os outros campos ou atributos não têm significado; seu valor é definido como –1.
Ler as informações de um Veículo em uma Interseção¶
Em C++ e Python¶
Explicação¶
Lê as informações de um veículo em uma interseção. Esta função requer que o número de veículos na interseção seja obtido chamando a função AKIVehStateGetNbVehiclesJunction para a mesma interseção, sem nenhuma chamada adicional à AKIVehStateGetNbVehiclesJunction para outras interseções.
Formato¶
InfVeh AKIVehStateGetVehicleInfJunction(int aidJunction, int indexveh)
Parâmetros¶
- aidJunction: o identificador do nó
- indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
Saída¶
struct InfVeh{
int report;
int idVeh;
int type;
// Information in Vehicle when it is in a section
int idSection;
int segment;
int numberLane;
// Information on Vehicle when it is in a node
int idJunction;
int idSectionFrom;
int idLaneFrom;
int idSectionTo;
int idLaneTo;
double CurrentPos;
double distance2End;
double xCurrentPos, yCurrentPos, zCurrentPos;
double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack;
double CurrentSpeed, PreviousSpeed;
double TotalDistance;
double SystemGenerationT;
double SystemEntranceT;
double SectionEntranceT;
double CurrentStopTime;
bool stopped;
uint mNbLostTurnings;
double energyState;
bool isLost;
};
em que:
- relatório: 0, OK, caso contrário código de erro
- idVeh: o identificador do veículo
- type: é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
- idSectionFrom: o identificador da seção de origem
- idLaneFrom: faixa da seção de origem pela qual o veículo entra na interseção. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de origem.
- idSectionTo: identificador da seção de destino
- idLaneTo: faixa da seção de destino pela qual o veículo sai da junção. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de destino.
- CurrentPos: a posição dentro da interseção = distância (m ou pés, dependendo das unidades definidas na rede) desde a entrada da interseção.
- distance2End: a distância até o fim da conversão (m ou pés, dependendo das unidades definidas na rede).
- xCurrentPos, yCurrentPos, zCurrentPos: coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
- xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
- CurrentSpeed: velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede
- PreviousSpeed: velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede
- TotalDistance: distância total percorrida (m ou pés)
- SystemGenerationT: o tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
- SystemEntranceT: o tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
- CurrentStopTime: o tempo de parada atual
- parado: True se o veículo permanecer parado.
- mNbLostTurnings O número de movimentos de conversão perdidos.
- energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
- isLost True se o veículo estiver perdido e não puder alcançar seu destino. Outros campos ou atributos não têm significado; seu valor é definido como -1
Ler as Informações Estáticas de um Veículo em uma Seção¶
Em C++ e Python¶
Explicação¶
Lê as informações estáticas de um veículo em uma seção. Informações estáticas significam as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja encontrado chamando AKIVehStateGetNbVehiclesSection.
Formato¶
StaticInfVeh AKIVehGetVehicleStaticInfSection(int aidSec, int indexveh)
Parâmetros¶
- aidSec: Identificador da seção
- indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
Saída¶
struct StaticInfVeh{
int report;
int idVeh;
int type;
double length;
double width;
double maxDesiredSpeed;
double maxAcceleration;
double normalDeceleration;
double maxDeceleration;
double speedAcceptance;
double minDistanceVeh;
double giveWayTime;
double guidanceAcceptance;
int enrouted;
int equipped;
int tracked;
bool keepfastLane;
double safetyMarginFactor;
double headwayMin;
double sensitivityFactor;
double reactionTime;
double reactionTimeAtStop;
double reactionTimeAtTrafficLight;
bool laneChangingCooperation;
double laneChangingAggressivenessLevel;
double distanceZoneFactor;
int centroidOrigin;
int centroidDest;
int idsectionExit;
int idLine;
void * internalInfo;
int engineTypeId;
int chassisId;
int EUEmissionId;
double energyCapacity;
};
where:
- relatório: 0, OK, caso contrário código de erro
- idVeh: identificador do veículo
- type: é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
- length: comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
- width: largura do veículo (m ou pés, dependendo das unidades definidas na rede).
- maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
- maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- speedAcceptance: grau de aceitação dos limites de velocidade.
- minDistanceVeh: distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
- giveWayTime: tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
- guidanceAcceptance: nível de conformidade do veículo com as indicações de orientação.
- em rota: 0 significa que o veículo não atualizará o caminho em percurso; 1 significa que o veículo mudará o caminho em percurso dependendo da porcentagem definida de veículos que atualizam o caminho em percurso.
- equipados: 0 significa veículo não equipado, 1 significa veículo equipado.
- rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
- keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
- safetyMarginFactor: fator de margem de segurança
- headwayMin: headway mínimo a manter em relação ao líder
- sensitivityFactor: estimativa da aceleração do líder
- reactionTime: tempo de reação do veículo
- reactionTimeAtStop: tempo de reação na parada do veículo
- reactionTimeAtTrafficLight: tempo de reação do veículo quando está parado como o primeiro da fila em um semáforo.
- laneChangingCooperation: o veículo está atualmente cooperando em outra manobra de mudança de faixa de outro veículo.
- laneChangingAggressivenessLevel: o fator de agressividade deste veículo na mudança de faixa, em que 0% significa que a brecha de segurança completa é necessária para a mudança de faixa e 100% significa que a brecha mínima é aceita 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.
- centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- centroidDest: Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- idsectionExit: Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
- idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
- internalInfo: somente para uso interno
- engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
- chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
- EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
- energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)
Ler as informações estáticas de um veículo em uma interseção¶
Em C++ e Python¶
Explicação¶
Lê as informações estáticas de um veículo em um cruzamento. Informações estáticas significam as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função requer ter obtido previamente o número de Vehicles no cruzamento chamando a função AKIVehStateGetNbVehiclesJunction.
Formato¶
StaticInfVeh AKIVehGetVehicleStaticInfJunction(int aidJunction, int indexveh)
Parâmetros¶
- aidJunction: o identificador do nó
- indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
Saída¶
struct StaticInfVeh{
int report;
int idVeh;
int type;
double length;
double width;
double maxDesiredSpeed;
double maxAcceleration;
double normalDeceleration;
double maxDeceleration;
double speedAcceptance;
double minDistanceVeh;
double giveWayTime;
double guidanceAcceptance;
int enrouted;
int equipped;
int tracked;
bool keepfastLane;
double safetyMarginFactor;
double headwayMin;
double sensitivityFactor;
double reactionTime;
double reactionTimeAtStop;
double reactionTimeAtTrafficLight;
bool laneChangingCooperation;
double laneChangingAggressivenessLevel;
double distanceZoneFactor;
int centroidOrigin;
int centroidDest;
int idsectionExit;
int idLine;
void * internalInfo;
int engineTypeId;
int chassisId;
int EUEmissionId;
double energyCapacity;
};
where:
- relatório: 0, OK, caso contrário código de erro
- idVeh: identificador do veículo
- type: é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
- length: comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
- width: largura do veículo (m ou pés, dependendo das unidades definidas na rede).
- maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
- maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- speedAcceptance: grau de aceitação dos limites de velocidade.
- minDistanceVeh: distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
- giveWayTime: tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
- guidanceAcceptance: nível de conformidade do veículo com as indicações de orientação.
- em rota: 0 significa que o veículo não atualizará o caminho em percurso; 1 significa que o veículo mudará o caminho em percurso dependendo da porcentagem definida de veículos que atualizam o caminho em percurso.
- equipados: 0 significa veículo não equipado, 1 significa veículo equipado.
- rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
- keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
- safetyMarginFactor: fator de margem de segurança
- headwayMin: headway mínimo a manter em relação ao líder
- sensitivityFactor: estimativa da aceleração do líder
- reactionTime: tempo de reação do veículo
- reactionTimeAtStop: tempo de reação na parada do veículo
- reactionTimeAtTrafficLight: tempo de reação do veículo quando está parado como o primeiro da fila em um semáforo.
- laneChangingCooperation:
- laneChangingAggressivenessLevel:
- distanceZoneFactor:
- centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- centroidDest: Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- idsectionExit: Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
- idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
-
- internalInfo: somente para uso interno
- engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
- chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
- EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
- energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)
Modificar as informações estáticas de um veículo em uma seção¶
Em C++ e Python¶
Explicação¶
Modifica alguns dos parâmetros estáticos de um veículo em uma seção. Parâmetros estáticos são as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que podem ser alterados são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que o número de Vehicles na seção tenha sido previamente obtido chamando AKIVehStateGetNbVehiclesSection.
Formato¶
int AKIVehSetVehicleStaticInfSection(int aidSec, int indexveh, StaticInfVeh staticinfVeh)
Parâmetros¶
- aidSec: o identificador da seção
- indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
- staticinfVeh: novos parâmetros estáticos a serem atribuídos
Saída¶
- = 0: Sem Erro
- < 0: Erro
Modificar as informações estáticas de um veículo em uma interseção¶
Em C++ e Python¶
Explicação¶
Modifica alguns dos parâmetros estáticos de um veículo em uma interseção. Parâmetros estáticos significam as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que podem ser alterados são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que o número de Vehicles na interseção tenha sido previamente obtido chamando AKIVehStateGetNbVehiclesJunction.
Formato¶
int AKIVehSetVehicleStaticInfJunction(int aidJunct,int indexveh, StaticInfVeh staticinfVeh)
Parâmetros¶
- aidJunct: Identificador do nó
- indexveh: o índice do veículo, de 0 a (Número Total de Veículos na interseção – 1)
- staticinfVeh: novos parâmetros estáticos a serem atribuídos.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler as informações de Adaptive Cruise Control de um veículo em uma seção¶
Em C++ e Python¶
Explicação¶
Lê os parâmetros de Adaptive Cruise Control de um veículo em uma seção. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesSection.
Formato¶
StaticInfVehACCParams AKIVehGetVehicleStaticInfACCParamsSection( int aidSec, int indexveh )
Parâmetros¶
- aidSec: Identificador da seção
- indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
Saída¶
struct StaticInfVehACCParams {
int report;
int idVeh;
int accType;
double minClearanceDistance;
double maxClearanceDistance;
double speedGainFreeFlow;
double distanceGain;
double speedGainPrec;
double desiredTimeGap;
double connectedDistanceGain;
double connectedSpeedGain;
double minTimeGapThreshold;
double maxTimeGapThreshold;
double followerTimeGap;
double leaderTimeGap;
};
em que:
Parâmetros comuns a todos os veículos simulados:
- relatório: Código de erro retornado (0 significa sucesso).
- idVeh: O ID do veículo simulado.
- accType: O módulo ACC do veículo simulado (0: None, 1: ACC, 2: CACC).
Parâmetros do Modelo ACC:
(Todos estes 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 sobre a 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 sobre a diferença de posição entre o veículo precedente e o veículo em questão (s-2).
- speedGainPrec: O ganho sobre a diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
- desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).
Parâmetros do Modelo CACC:
(Todos estes parâmetros serão -1 quando o módulo estiver desativado)
- connectedDistanceGain: O ganho sobre a diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
- connectedSpeedGain: O ganho sobre a diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
- minTimeGapThreshold: O limite inferior para o intervalo de tempo (s).
- maxTimeGapThreshold: O limite superior para o intervalo de tempo (s).
- followerTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
- leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
Ler as informações de Adaptive Cruise Control de um veículo em uma interseção¶
Em C++ e Python¶
Explicação¶
Lê os parâmetros de Adaptive Cruise Control de um veículo em um cruzamento. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesJunction.
Formato¶
StaticInfVehACCParams AKIVehGetVehicleStaticInfACCParamsJunction( int aidJunction, int indexveh )
Parâmetros¶
- aidJunction: o identificador do nó
- indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
Saída¶
struct StaticInfVehACCParams {
int report;
int idVeh;
int accType;
double minClearanceDistance;
double maxClearanceDistance;
double speedGainFreeFlow;
double distanceGain;
double speedGainPrec;
double desiredTimeGap;
double connectedDistanceGain;
double connectedSpeedGain;
double minTimeGapThreshold;
double maxTimeGapThreshold;
double followerTimeGap;
double leaderTimeGap;
};
em que:
Parâmetros comuns a todos os veículos simulados:
- relatório: Código de erro retornado (0 significa sucesso).
- idVeh: O ID do veículo simulado.
- accType: O módulo ACC do veículo simulado (0: None, 1: ACC, 2: CACC).
Parâmetros do Modelo ACC:
(Todos estes 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 sobre a 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 sobre a diferença de posição entre o veículo precedente e o veículo em questão (s-2).
- speedGainPrec: O ganho sobre a diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
- desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).
Parâmetros do Modelo CACC:
(Todos estes parâmetros serão -1 quando o módulo estiver desativado)
- connectedDistanceGain: O ganho sobre a diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
- connectedSpeedGain: O ganho sobre a diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
- minTimeGapThreshold: O limite inferior para o intervalo de tempo (s).
- maxTimeGapThreshold: O limite superior para o intervalo de tempo (s).
- followerTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
- leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
Modificar as informações de Adaptive Cruise Control de um veículo em uma seção¶
Em C++ e Python¶
Explicação¶
Modificar os parâmetros ACC de um veículo em uma seção. Os ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer ter obtido previamente o número de Vehicles na seção chamando AKIVehStateGetNbVehiclesSection.
Formato¶
int AKIVehSetVehicleStaticInfACCParamsSection( int aidSec, int indexveh, StaticInfVehACCParams staticinfVehACC )
Parâmetros¶
- aidSec: o identificador da seção
- indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
- staticinfVehACC: novos parâmetros ACC a serem atribuídos
Saída¶
- = 0: Sem Erro
- < 0: Erro
Modificar as informações de Adaptive Cruise Control de um veículo em uma interseção¶
Em C++ e Python¶
Explicação¶
Modificar os parâmetros ACC de um veículo em uma junção. Os ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que tenha sido obtido previamente o número de veículos na junção chamando AKIVehStateGetNbVehiclesJunction.
Formato¶
int AKIVehSetVehicleStaticInfACCParamsJunction( int aidJunct,int indexveh, StaticInfVehACCParams staticinfVehACC )
Parâmetros¶
- aidJunct: Identificador do nó
- indexveh: o índice do veículo, de 0 a (Número Total de Veículos na interseção – 1)
- staticinfVehACC: novos parâmetros ACC a serem atribuídos.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Remover um Veículo de uma Seção¶
Em C++ e Python¶
Explicação¶
Remove um veículo de uma seção. Esta função requer que o número de veículos na seção tenha sido obtido chamando a função AKIVehStateGetNbVehiclesSection.
Formato¶
int AKIRemoveVehicle(int aidSec, int indexveh )
Parâmetros¶
- aidSec: Identificador da seção
- indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
Saída¶
- = 0: Sem Erro
- < 0: Erro
Remover um Veículo de uma Interseção¶
Em C++ e Python¶
Explicação¶
Remove um veículo de uma interseção. Esta função exige que o número de veículos na seção tenha sido obtido chamando a função AKIVehStateGetNbVehiclesJunction.
Formato¶
int AKIRemoveVehicleJunction( int idJunction, int indexveh )
Parâmetros¶
- idJunction: Identificador do nó
- indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler as informações de um Veículo¶
Em C++ e Python¶
Explicação¶
Lê as informações de um veículo. Esta função pode tornar a simulação mais lenta, pois cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.
Formato¶
InfVeh AKIVehGetInf(int aidVeh)
Parâmetros¶
- aidVeh: Identificador do Veículo
Saída¶
struct InfVeh{
int report;
int idVeh;
int type;
// Information in Vehicle when it is in a section
int idSection;
int segment;
int numberLane;
// Information in Vehicle when it is in a node
int idJunction;
int idSectionFrom;
int idLaneFrom;
int idSectionTo;
int idLaneTo;
double CurrentPos;
double distance2End
double xCurrentPos, yCurrentPos, zCurrentPos;
double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack;
double CurrentSpeed, PreviousSpeed;
double TotalDistance;
double SystemGenerationT;
double SystemEntranceT;
double SectionEntranceT;
double CurrentStopTime;
bool stopped;
uint mNbLostTurnings;
double energyState;
bool isLost;
};
em que:
- relatório: 0, OK, caso contrário o valor representa um código de erro
- idVeh: o identificador do veículo.
- type: o tipo de veículo (car, bus, truck, etc.) de 1 a AKIVehGetNbVehTypes ()
- idSection: o identificador da seção.
- segmento: o número do segmento da seção onde o veículo está localizado (de 0 a n-1).
- numberLane: o número da faixa no segmento (de 1, a faixa mais à direita, até N, a faixa mais à esquerda).
- idSectionFrom: o identificador da seção de origem.
- idLaneFrom: o número da faixa da seção de origem pela qual o veículo entrou na junção.
- idSectionTo: o identificador da seção de destino.
- idLaneTo: o número da faixa da seção de destino onde o veículo sai da interseção.
- seção dada por sua distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção ou pela posição do veículo dentro da junção dada por sua distância a partir da entrada da junção.
- distance2End: distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede) quando o veículo está localizado em uma seção, ou a distância até o fim da conversão quando o veículo está em uma junção.
- xCurrentPos, yCurrentPos, zCurrentPos: coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
- xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
- CurrentSpeed: velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede.
- PreviousSpeed: velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede
- TotalDistance: distância total percorrida (m ou pés)
- SystemGenerationT: o tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
- SystemEntranceT: o tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
- SectionEntranceT: o tempo absoluto de entrada do veículo na seção atual
- CurrentStopTime: o tempo de parada atual
- parado: True se o veículo permanecer parado.
- mNbLostTurnings O número de movimentos de conversão perdidos.
- energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
- isLost Verdadeiro se o veículo estiver perdido e não puder alcançar seu destino.
Ler as informações estáticas de um Veículo¶
Em C++ e Python¶
Explicação¶
Lê as informações estáticas de um veículo. As informações estáticas são as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função pode tornar a simulação mais lenta porque cada chamada desta função implica encontrar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.
Formato¶
StaticInfVeh AKIVehGetStaticInf (int aidVeh)
Parâmetros¶
- aidVeh: Identificador do Veículo
Saída¶
struct StaticInfVeh{
int report;
int idVeh;
int type;
double length;
double width;
double maxDesiredSpeed;
double maxAcceleration;
double normalDeceleration;
double maxDeceleration;
double speedAcceptance;
double minDistanceVeh;
double giveWayTime;
double guidanceAcceptance;
int enrouted;
int equipped;
int tracked;
bool keepfastLane;
double safetyMarginFactor;
double headwayMin;
double sensitivityFactor;
double reactionTime;
double reactionTimeAtStop;
double reactionTimeAtTrafficLight;
bool laneChangingCooperation;
double laneChangingAggressivenessLevel;
double distanceZoneFactor;
int centroidOrigin;
int centroidDest;
int idsectionExit;
int idLine;
void * internalInfo;
int engineTypeId;
int chassisId;
int EUEmissionId;
double energyCapacity;
};
em que:
- relatório: 0, OK, caso contrário código de erro
- idVeh: identificador do veículo
- type: tipo de veículo (carro, ônibus, caminhão etc.)
- length: comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
- width: largura do veículo (m ou pés, dependendo das unidades definidas na rede).
- maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
- maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
- speedAcceptance: grau de aceitação dos limites de velocidade.
- minDistanceVeh: distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
- giveWayTime: tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
- guidanceAcceptance: nível de conformidade do veículo com as indicações de orientação.
- em rota: 0 significa que o veículo não atualizará o caminho em percurso; 1 significa que o veículo mudará o caminho em percurso dependendo da porcentagem definida de veículos que atualizam o caminho em percurso.
- equipados: 0 significa veículo não equipado, 1 significa veículo equipado.
- rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
- keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
- safetyMarginFactor: fator de margem de segurança
- headwayMin: headway mínimo a manter em relação ao líder
- sensitivityFactor: estimativa da aceleração do líder
- reactionTime: tempo de reação do veículo
- reactionTimeAtStop: tempo de reação na parada do veículo
- reactionTimeAtTrafficLight: tempo de reação do veículo quando está parado como o primeiro da fila em um semáforo.
- laneChangingCooperation:
- laneChangingAggressivenessLevel:
- distanceZoneFactor:
- centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- centroidDest: Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
- idsectionExit: Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
- idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
- internalInfo: somente para uso interno
- engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
- chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
- EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
- energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)
Modificar as Informações Estáticas de um Veículo¶
Em C++ e Python¶
Explicação¶
Modifica alguns dos parâmetros estáticos de um veículo. Parâmetros estáticos são as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que é possível alterar são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, equipped, tracked, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função pode tornar a simulação mais lenta porque cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, defina o veículo como Tracked e então leia suas informações.
Formato¶
int AKIVehSetStaticInf (int aidVeh, StaticInfVeh staticinfVeh)
Parâmetros¶
- aidVeh: Identificador do Veículo
- staticinfVeh: novos parâmetros estáticos a serem atribuídos.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler posição relativa em relação ao líder¶
Em C++ e Python¶
Explicação¶
Ler a posição relativa em relação ao líder
Formato¶
LeaderInfVeh AKIVehGetLeaderInfVeh( int aidVeh )
Parâmetros¶
- aidVeh: Identificador do Veículo
Saída¶
struct LeaderInfVeh{
int report;
int idVeh;
int idLeaderVeh;
double headway;
double gap;
double spacing;
double clearance;
};
em que:
- relatório: 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.
- intervalo entre veículos: 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).
- espaçamento: espaço entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
- liberação: espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
Ler as informações de controle de cruzeiro adaptativo de um veículo¶
Em C++ e Python¶
Explicação¶
Leia os parâmetros de Adaptive Cruise Control de um veículo. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função pode tornar a simulação mais lenta porque cada chamada desta função implica encontrar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.
Formato¶
StaticInfVehACCParams AKIVehGetStaticInfACCParams( int aidVeh )
Parâmetros¶
- aidVeh: Identificador do Veículo
Saída¶
struct StaticInfVehACCParams {
int report;
int idVeh;
int accType;
double minClearanceDistance;
double maxClearanceDistance;
double speedGainFreeFlow;
double distanceGain;
double speedGainPrec;
double desiredTimeGap;
double connectedDistanceGain;
double connectedSpeedGain;
double minTimeGapThreshold;
double maxTimeGapThreshold;
double followerTimeGap;
double leaderTimeGap;
};
em que:
Parâmetros comuns a todos os veículos simulados:
- relatório: Código de erro retornado (0 significa sucesso).
- idVeh: O ID do veículo simulado.
- accType: O módulo ACC do veículo simulado (0: None, 1: ACC, 2: CACC).
Parâmetros do Modelo ACC:
(Todos estes 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 sobre a 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 sobre a diferença de posição entre o veículo precedente e o veículo em questão (s-2).
- speedGainPrec: O ganho sobre a diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
- desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).
Parâmetros do Modelo CACC:
(Todos estes parâmetros serão -1 quando o módulo estiver desativado)
- connectedDistanceGain: O ganho sobre a diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
- connectedSpeedGain: O ganho sobre a diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
- minTimeGapThreshold: O limite inferior para o intervalo de tempo (s).
- maxTimeGapThreshold: O limite superior para o intervalo de tempo (s).
- followerTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
- leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
Modificar as informações de Adaptive Cruise Control de um veículo¶
Em C++ e Python¶
Explicação¶
Modificar os parâmetros ACC de um veículo. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função pode tornar a simulação mais lenta porque cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, defina o veículo como Tracked e então leia suas informações.
Formato¶
int AKIVehSetStaticInfACCParams( int aidVeh, StaticInfVehACCParams staticinfVehACC )
Parâmetros¶
- aidVeh: Identificador do Veículo
- staticinfVehACC: novos parâmetros ACC a serem atribuídos.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler a posição de um Veículo em uma Seção¶
Em C++ e Python¶
Explicação¶
Ler a posição de um veículo em uma seção
Formato¶
InfVehPos AKIVehGetVehicleGetPosSection( int asect, int indexveh, int nbPos );
Parâmetros¶
- asect: Identificador da Seção
- indexVeh: o índice do veículo na seção
- nbPos: número de posições a ler
Saída¶
- report= 0: Sem Erro
- report < 0: Erro
Ler a posição de um veículo em uma seção reutilizando a struct InfVehPos¶
Em C++ e Python¶
Explicação¶
Lê a posição de um veículo em uma seção. É mais rápida que a função AKIVehGetVehicleGetPosSection
Formato¶
int AKIVehGetVehicleGetPosSectionWithStruct( int asect, int indexveh, int nbPos, InfVehPos *pinfVehPos );
Parâmetros¶
- asect: Identificador da Seção
- indexVeh: o índice do veículo na seção
- nbPos: número de posições a ler
- pinfVehPos: o ponteiro para a struct.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Ler a posição de um Veículo em uma Interseção¶
Em C++ e Python¶
Explicação¶
Formato¶
InfVehPos AKIVehGetVehicleGetPosJunction( int ajunction, int indexveh, int nbPos );
Parâmetros¶
- ajunction: Identificador da Interseção
- indexVeh: o índice do veículo na seção
- nbPos: número de posições a ler
Saída¶
- report = 0: Sem Erro
- report < 0: Erro
Ler a posição de um veículo em uma interseção reutilizando a struct InfVehPos¶
Em C++ e Python¶
Explicação¶
Lê a posição de um veículo em um cruzamento. É mais rápida que a função AKIVehGetVehicleGetPosJunction anterior.
Formato¶
int AKIVehGetVehicleGetPosJunctionWithStruct( int ajunction, int indexveh, int nbPos, InfVehPos *pinfVehPos );
Parâmetros¶
- ajunction: Identificador da Interseção
- indexVeh: o índice do veículo na seção
- nbPos: número de posições a ler
- pinfVehPos: o ponteiro para a struct.
Saída¶
- = 0: Sem Erro
- < 0: Erro
Habilitar as Informações Gráficas de um Veículo¶
Em C++ e Python¶
Explicação¶
Habilita as Informações Gráficas de um Veículo. Em execuções por linha de comando (aconsole.exe) e simulações em lote, é necessário chamar esta função para ler as Informações Gráficas dos veículos.
Formato¶
int AKIVehEnableGraphicalInf()
Saída¶
- = 0: Sem Erro
Desativar as Informações Gráficas de um Veículo¶
Em C++ e Python¶
Explicação¶
Desativa a Informação Gráfica de um Veículo
Formato¶
int AKIVehDisableGraphicalInf()
Saída¶
- = 0: Sem Erro
Ler as informações gráficas de um veículo a partir de uma seção¶
Em C++ e Python¶
Explicação¶
Lê as Informações Gráficas de um Veículo a partir de uma seção
Formato¶
GraphicInfVeh AKIVehGetVehicleGraphicInfSection(int asect, int indexveh);
struct GraphicInfVeh{
int report;
int idVeh;
bool leftTurnSignal;
bool rightTurnSignal;
bool brakeLight;
}
Parâmetros¶
- asect: Identificador da Seção
- indexveh: Índice do veículo na seção
Saída¶
- report = 0: Sem Erro
- report < 0: Erro
Ler as informações gráficas de um veículo a partir de uma junção¶
Em C++ e Python¶
Explicação¶
Lê as Informações Gráficas de um Veículo a partir de uma interseção
Formato¶
GraphicInfVeh AKIVehGetVehicleGraphicInfJunction(int ajunction, int indexveh);
Parâmetros¶
- ajunction: Identificador da Interseção
- indexveh: Índice do veículo na interseção
Saída¶
- report = 0: Sem Erro
- report < 0: Erro
Modificar um Veículo para trafegar de ré ou normalmente¶
Em C++ e Python¶
Explicação¶
Modifica o modo de desenho de um veículo. Se o parâmetro value for true, o veículo será desenhado como trafegando para trás
Formato¶
int AKIVehSetDrivingBackwards(int aidSec, int indexveh, bool value);
Parâmetros¶
- aidSec Identificador da Seção
- indexveh: Índice do veículo na seção
- valor: Modo de desenho
Saída¶
- report = 0: Sem Erro
- report < 0: Erro
Ler o número de seções para chegar ao destino¶
Em C++ e Python¶
Explicação¶
Ler o número de seções para alcançar o destino de um caminho de veículo. O veículo pode estar em uma seção ou em uma interseção. Válido para veículos OD e de transporte público; caso contrário, retorna 0. AKIVehStateGetNbVehiclesSection ou AKIVehStateGetNbVehiclesJunction deve ser chamado antes de chamar esta função. Se o parâmetro idsection estiver definido como -1, será retornado o número de seções desde o início até o destino; caso contrário, o número de seções a partir da seção com idsection Identificador até o destino é retornado.
Formato¶
int AKIVehStateGetNbSectionsVehiclePathSection( int aidSection, int indexveh, int idsection )
int AKIVehStateGetNbSectionsVehiclePathJunction( int aidJunction, int indexveh, int idsection )
Parâmetros¶
- aidSection: Identificador da seção.
- aidJunction: Identificador da Interseção.
- indexveh: Índice do veículo na seção ou no nó ( 0 ≤ indexveh < Número de veículos na seção ou no nó )
- idsection: As seções são contadas a partir de idsection. Se idsection for definido como -1, as seções são contadas desde o início.
Saída¶
- ≥ 0: Número de seções para chegar ao destino.
- AKIInfNotReady: Erro
Ler os Identificadores das seções para alcançar o destino¶
Em C++ e Python¶
Explicação¶
Ler o identificador da seção elem-th do caminho do veículo para chegar ao destino. O veículo pode estar em uma seção ou em uma interseção. Válido para veículos OD e de transporte coletivo; caso contrário, retorna 0. AKIVehStateGetNbSectionsVehiclePathSection ou AKIVehStateGetNbSectionsVehiclePathJunction deve ser chamada antes de chamar estas funções. Se o parâmetro idsection for definido como -1, os identificadores das seções desde o início até o destino são retornados; caso contrário, os identificadores das seções a partir da seção com identificador idsection até o destino são retornados.
Formato¶
int AKIVehStateGetIdSectionVehiclePathSection( int aidSection, int indexveh, int idsection, int indexsection)
int AKIVehStateGetIdSectionVehiclePathJunction( int aidJunction, int indexveh, int idsection, int indexsection)
Parâmetros¶
- aidSection: Identificador da seção.
- aidJunction: Identificador da Interseção.
- indexveh: Índice do veículo na seção ou no nó ( 0 ≤ indexveh ≤ Número de veículos na seção ou no nó )
- idsection: As seções são contadas a partir de idsection. Se idsection for definido como -1, as seções são contadas desde o início.
- indexsection: índice da seção ( 0 ≤ indexsection < Number of sections )
Saída¶
- > 0: Identificador da Seção.
- AKIInfNotReady: Erro
Ler o ID do veículo líder¶
Em C++ e Python¶
Explicação¶
Lê o identificador do líder do veículo
Formato¶
int AKIVehGetLeaderId( int idVehicle )
Parâmetros¶
- idVehicle: Identificador do veículo.
Saída¶
- > 0: Identificador do veículo líder.
- AKIInfVehNotFound: Erro
Ler o ID do Seguidor de Veículo¶
Em C++ e Python¶
Explicação¶
Lê o Identificador do Seguidor do Veículo
Formato¶
int AKIVehGetFollowerId( int idVehicle )
Parâmetros¶
- idVehicle: Identificador do veículo.
Saída¶
- > 0: Identificador do veículo seguidor.
- AKIInfVehNotFound: Erro
Ler a posição relativa ao líder na seção e na junção¶
Em C++ e Python¶
Explicação¶
Ler posição relativa em relação ao líder
Formato¶
LeaderInfVeh AKIVehGetLeaderVehInfSection( int aidSec, int indexveh );
LeaderInfVeh AKIVehGetLeaderVehInfJunction(int ajunction, int indexveh);
Parâmetros¶
- aidVeh: Identificador do Veículo
- aidSec: Identificador da Seção
- ajunction: Identificador da Interseção
Saída¶
struct LeaderInfVeh{
int report;
int idVeh;
int idLeaderVeh;
double headway;
double gap;
double spacing;
double clearance;
};
em que:
- relatório: 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.
- intervalo entre veículos: 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).
- espaçamento: espaço entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
- liberação: espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
Ler o Atraso Acumulado do Veículo¶
Em C++ e Python¶
Explicação¶
Lê o atraso acumulado do veículo
Formato¶
double AKIVehGetAccumulatedDelay( int idVehicle )
Parâmetros¶
- idVehicle: Identificador do veículo.
Saída¶
- > 0: Atraso Acumulado do Veículo.
- AKIInfVehNotFound: Erro