DEENESPTFRRUARHIKOZHNL

Communication Stack Types (ComStack_Types)

ModulComStack (Communication Stack Types)
BSW-Modul-ID196
Standard-Header#include "ComStack_Types.h"
SWS-SpezifikationAUTOSAR_SWS_CommunicationStackTypes.pdf
ClusterGeneral & Standard Types

Guia do móduloGERADO POR IA

Tipos de dados comuns com os quais os módulos da pilha de comunicação trocam PDUs, buffers e canais.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 6cf9f0457dd9 Procedência Perguntas em aberto (1)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Tipos de dados comuns com os quais os módulos da pilha de comunicação trocam PDUs, buffers e canais.

O módulo comstack fornece, através de ComStack_Types.h, os tipos comuns com os quais todas as camadas da pilha de comunicação Classic endereçam e trocam PDUs: PduIdType como identificador, PduLengthType como comprimento e PduInfoType com ponteiro de dados úteis, ponteiro de metadados e comprimento ([SWS_COMTYPE_00011]). Os protocolos de transporte copiam PDUs grandes de forma segmentada através de StartOfReception, CopyRxData e CopyTxData. Eles reportam o estado do buffer com BufReq_ReturnType, enquanto RetryInfoType controla confirmação e repetição ([SWS_COMTYPE_00012]). Condição de contorno mais importante: a largura de PduIdType e PduLengthType depende da configuração da EcuC e é gerada.

O módulo comstack define o conjunto comum de tipos da pilha de comunicação Classic. A isso pertencem PduIdType, PduLengthType, PduInfoType, BufReq_ReturnType, RetryInfoType, bem como identificadores para canais e sub-redes, todos disponíveis através de ComStack_Types.h ([SWS_COMTYPE_00011], [SWS_COMTYPE_00038]). Interfaces de barramento, protocolos de transporte, PduR, módulos de diagnóstico e a RTE utilizam os mesmos tipos; a RTE os importa expressamente (SWS RTE p. 833).

kontext types ComStack_Types.h PduIdType, PduLengthType, PduInfoType, BufReq_ReturnType, RetryInfoType, NetworkHandleType, PNCHandleType cfg EcuC-Konfiguration → ComStack_Cfg.h cfg->types erzeugt Breite von PduIdType, PduLengthType rte RTE rte->types importiert com Com / LdCom pdur PduR com->pdur Transmit / RxIndication (PduIdType, PduInfoType*) dcm Dcm dcm->pdur TP-API (BufReq_ReturnType, RetryInfoType) secoc SecOC secoc->pdur API de TP e de IF tp CanTp / FrTp / J1939Tp pdur->tp Transmit / CopyTxData / CopyRxData ifs CanIf / LinIf / FrIf pdur->ifs Transmit / TxConfirmation comm ComM / Nm comm->types NetworkHandleType, PNCHandleType

Diagrama de contexto: Um conjunto de tipos para todas as camadas, dimensionado através da configuração da EcuC. Fontes: [SWS_COMTYPE_00005], SWS RTE p. 833

Identificadores e comprimentos dependem da configuração. PduIdType é uint8 ou uint16, PduLengthType é uint8, uint16 ou uint32; ambos são gerados a partir da configuração da EcuC ([SWS_COMTYPE_00005], [SWS_COMTYPE_00008]). Cada módulo provedor escolhe seus IDs de identificador por conta própria. Eles precisam ser únicos apenas por API; o PduR os converte ao longo do caminho de roteamento (ECU Configuration p. 156).

PduInfoType agrupa ponteiro de dados úteis, ponteiro de metadados e comprimento. Dessa forma, a estrutura transporta solicitações de transmissão, indicações de recepção e Trigger Transmit. PDUs grandes são copiadas em partes: o protocolo de transporte chama repetidamente CopyTxData da camada superior através do PduR (SWS PduR p. 109). A recepção começa com StartOfReception e continua com CopyRxData.

Envio TP Dcm → CanTp através de PduRDcmPduRCanTpPduR_<User:Up>Transmit(PduIdType, const PduInfoType*)CanTp_Transmit(PduIdType, const PduInfoType*)E_OKE_OKloopaté todos os dados serem enviadosPduR_CanTpCopyTxData(id, info, retry, availableDataPtr)Dcm_CopyTxData(id, info, retry, availableDataPtr)Copiar dados para info->SduDataPtrBUFREQ_OK, *availableDataPtrBUFREQ_OK, *availableDataPtrPduR_CanTpTxConfirmation(PduIdType, Std_ReturnType)Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)

Diagrama de sequências: O protocolo de transporte extrai os dados de transmissão do DCM em um laço; a confirmação segue ao final. Fontes: SWS PduR p. 109

Erros e gargalos são reportados por BufReq_ReturnType ([SWS_COMTYPE_00012]):

  • BUFREQ_E_BUSY: temporariamente sem buffer ou dados insuficientes; a chamada pode ser repetida.
  • BUFREQ_E_OVFL: nenhum buffer com o comprimento necessário.
  • BUFREQ_E_NOT_OK: cancelamento.

A confirmação e a repetição durante a transmissão de TP são controladas por RetryInfoType com TP_DATACONF, TP_CONFPENDING e TP_DATARETRY, juntamente com o deslocamento TxTpDataCnt ([SWS_COMTYPE_00027], [SWS_COMTYPE_00037]).

Outros tipos de identificadores complementam o conjunto. NetworkHandleType (uint8) designa um canal de comunicação. TPParameterType seleciona STmin, Block Size ou controle de largura de banda para alteração ([SWS_COMTYPE_00031]). PNCHandleType é derivado no R20-11 de uint8 ([SWS_COMTYPE_00036]); a versão R23-11 indica, de forma divergente, uint16 (SWS ComStackTypes p. 17).

Função: conjunto comum de tipos da pilha de comunicação

O módulo comstack não disponibiliza serviços próprios. Ele define os tipos de dados por meio dos quais os módulos da pilha de comunicação Classic comunicam-se entre si. A isso pertencem PduIdType, PduLengthType, PduInfoType, BufReq_ReturnType, TpDataStateType, RetryInfoType, TPParameterType, NetworkHandleType e PNCHandleType. Eles estão disponíveis através de ComStack_Types.h ([SWS_COMTYPE_00011], [SWS_COMTYPE_00037], [SWS_COMTYPE_00038]). Interpretação: O módulo em si não possui comportamento em tempo de execução. Processos, estados e reações a erros só se originam nos módulos que utilizam esses tipos em suas interfaces. Pergunta Q-766338989232e06a (aberta)

A fronteira do sistema atravessa, portanto, toda a pilha. Os mesmos tipos são utilizados por:

  • interfaces de barramento como CanIf e protocolos de transporte como CanTp (SWS CanIf p. 87),
  • o PDU Router e módulos de diagnóstico como DCM (SWS PduR p. 109),
  • SecOC (SWS SecOC p. 110),
  • a RTE, que importa BufReq_ReturnType, PduIdType, PduInfoType, PduLengthType e RetryInfoType expressamente de ComStack_Types.h (SWS RTE p. 833).
kontext types ComStack_Types.h PduIdType, PduLengthType, PduInfoType, BufReq_ReturnType, RetryInfoType, NetworkHandleType, PNCHandleType cfg EcuC-Konfiguration → ComStack_Cfg.h cfg->types erzeugt Breite von PduIdType, PduLengthType rte RTE rte->types importiert com Com / LdCom pdur PduR com->pdur Transmit / RxIndication (PduIdType, PduInfoType*) dcm Dcm dcm->pdur TP-API (BufReq_ReturnType, RetryInfoType) secoc SecOC secoc->pdur API de TP e de IF tp CanTp / FrTp / J1939Tp pdur->tp Transmit / CopyTxData / CopyRxData ifs CanIf / LinIf / FrIf pdur->ifs Transmit / TxConfirmation comm ComM / Nm comm->types NetworkHandleType, PNCHandleType

Diagrama de contexto: Todas as camadas, desde a interface de barramento até a RTE, baseiam-se no mesmo conjunto de tipos de ComStack_Types.h; suas dimensões são geradas a partir da configuração da EcuC. Fontes: [SWS_COMTYPE_00005], SWS RTE p. 833, SWS PduR p. 33, SWS ComM p. 171

Identificadores e comprimentos de PDU: identidade e tamanho de uma PDU

PduIdType é um número inteiro de base zero no intervalo 0…<PduIdmax>. Sua largura (uint8 ou uint16) depende do número máximo de PDUs que um único módulo de software gerencia. A ferramenta geradora o cria a partir do valor configurado em ComStack_Cfg.h na camada virtual EcuC ([SWS_COMTYPE_00005]). O parâmetro associado PduIdTypeEnum define a regra: UINT8 é suficiente desde que nenhum módulo processe mais de 256 PDUs; caso contrário, é necessário UINT16 (ECU Configuration p. 153).

De forma análoga, PduLengthType é implementado dependendo da configuração como uint8, uint16 ou uint32. Determinante é o comprimento máximo das PDUs que uma unidade de controle eletrônico transmite ([SWS_COMTYPE_00008]). Os protocolos de transporte também derivam comprimentos da EcuC: o CanTp determina o comprimento máximo de transmissão da N-PDU a partir do parâmetro EcuC PduLength (SWS CanTp p. 60).

As APIs da pilha combinam duas coisas: um ponteiro para o buffer de dados da PDU e um ID de identificador que define a qual PDU esse ponteiro pertence. O módulo provedor escolhe livremente o valor do ID de identificador. Assim, a mesma PDU do Com com ID 5 pode ir para o PduR e, do PduR, ir com ID 19 para o CanIf. O ID precisa ser único apenas no escopo da respectiva API (ECU Configuration p. 156). Para que dois módulos possam referenciar a mesma PDU, existe na configuração de módulo virtual EcuC a EcucPduCollection (ECU Configuration p. 154) independente de módulo. O PduR identifica um caminho de roteamento por meio do ID de origem e dos IDs de destino, converte os IDs e repassa o valor de PduInfoType inalterado (SWS PduR p. 33).

handle ecuc EcucPduCollection (EcuC) gemeinsame Pdu-Objekte com Com ecuc->com referência à PDU pdur PduR Routing-Pfad = Quell-ID + Ziel-IDs ecuc->pdur referência à PDU canif CanIf ecuc->canif referência à PDU linif LinIf ecuc->linif referência à PDU com->pdur PduR_ComTransmit(ID = 5, PduInfoType*) pdur->canif ID = 19 PduInfoType inalterado pdur->linif próprio ID LinIf PduInfoType inalterado

Diagrama de colaboração: Cada interface possui IDs de identificador próprios; o PduR os converte, enquanto a PDU comum é referenciada através da EcucPduCollection. Fontes: ECU Configuration p. 156, ECU Configuration p. 154, SWS PduR p. 33

PduInfoType: dados úteis, metadados e comprimento em uma estrutura

PduInfoType agrupa três elementos ([SWS_COMTYPE_00011]):

  • SduDataPtr aponta para os dados úteis.
  • MetaDataPtr aponta para metadados, tais como CAN-ID, Socket-ID ou endereços de diagnóstico. Seu comprimento e tipo são configurados estaticamente por PDU; elementos com mais de 8 bits estão na ordem de bytes da plataforma.
  • SduLength do tipo PduLengthType indica o comprimento da SDU em bytes.

A mesma estrutura suporta várias formas de interação:

  • Solicitação de transmissão: <Mod>_Transmit(TxPduId, const PduInfoType*) passa o comprimento, o ponteiro de dados e o ponteiro de metadados, e retorna E_OK ou E_NOT_OK (SWS CanIf p. 87).
  • Indicação de recepção: <Mod>_RxIndication(RxPduId, const PduInfoType*). No CanNm, o ponteiro de dados é válido apenas até o retorno da indicação (SWS CanNm p. 73).
  • Trigger Transmit: PduInfoPtr é entrada e saída. Na chamada, SduLength contém o tamanho de buffer disponível; no retorno, o comprimento dos dados copiados (SWS CanIf p. 107). Na solicitação de transmissão anterior, a camada superior passa apenas o comprimento; SduDataPtr aponta então para NULL (SWS CanIf p. 158).
  • Interfaces de cópia de TP: StartOfReception, CopyRxData e CopyTxData com retorno BufReq_ReturnType (SWS PduR p. 93).

Buffers do protocolo de transporte: cópia segmentada em vez de transferência direta

PDUs grandes não são transferidas como um todo. O transmissor busca os dados em partes: o DCM aciona CanTp_Transmit através do PduR. Em seguida, o CanTp chama repetidamente PduR_CanTpCopyTxData, que é encaminhado para Dcm_CopyTxData. Ao final estão PduR_CanTpTxConfirmation e Dcm_TpTxConfirmation (SWS PduR p. 109). Para os parâmetros de CopyTxData aplica-se:

  • info fornece o buffer de destino e o número de bytes a serem copiados.
  • Um SduLength igual a 0 apenas reporta uma mudança de estado no parâmetro retry ou consulta a quantidade disponível de dados; SduDataPtr pode então ser NULL_PTR (SWS PduR p. 93).
  • availableDataPtr reporta os dados de transmissão restantes. Módulos TP com tamanho dinâmico de carga útil, como o FrIsoTp, dimensionam os Consecutive Frames subsequentes com base nisso (SWS LdCom p. 34).
Envio TP Dcm → CanTp através de PduRDcmPduRCanTpPduR_<User:Up>Transmit(PduIdType, const PduInfoType*)CanTp_Transmit(PduIdType, const PduInfoType*)E_OKE_OKloopaté todos os dados serem enviadosPduR_CanTpCopyTxData(id, info, retry, availableDataPtr)Dcm_CopyTxData(id, info, retry, availableDataPtr)Copiar dados para info->SduDataPtrBUFREQ_OK, *availableDataPtrBUFREQ_OK, *availableDataPtrPduR_CanTpTxConfirmation(PduIdType, Std_ReturnType)Dcm_TpTxConfirmation(PduIdType, Std_ReturnType)

Diagrama de sequências: Na transmissão por TP, o protocolo de transporte extrai os dados da camada superior em um laço através do PduR; a confirmação só segue após o último segmento. Fontes: SWS PduR p. 109, SWS PduR p. 93, [SWS_COMTYPE_00012]

A recepção ocorre em três etapas:

  1. StartOfReception abre a conexão. info transporta os dados do First Frame ou Single Frame juntamente com os metadados, ou é NULL_PTR caso nenhum dos dois esteja presente. TpSduLength informa o comprimento total. Através de bufferSizePtr, o receptor reporta seu buffer livre; o protocolo de transporte calcula a Block Size a partir disso (SWS PduR p. 92).
  2. Cada chamada de CopyRxData fornece a próxima parte da I-PDU e grava de volta o buffer restante (SWS PduR p. 91).
  3. Uma RxIndication conclui a recepção.

Se uma TP-PDU for adicionalmente roteada por gateway, o próprio PduR a armazena em buffer, pois o DCM não tem ciência do gatewaying (SWS PduR p. 112).

Recepção TP CanTp → Dcm através de PduRCanTpPduRDcmPduR_CanTpStartOfReception(id, info, TpSduLength, bufferSizePtr)Dcm_StartOfReception(id, info, TpSduLength, bufferSizePtr)BUFREQ_OK, *bufferSizePtrBUFREQ_OK, *bufferSizePtrbufferSizePtr serve paraCálculo do Block Size (BS)loopje empfangenem Segment (N-PDU)PduR_CanTpCopyRxData(id, info, bufferSizePtr)Dcm_CopyRxData(id, info, bufferSizePtr)BUFREQ_OK, *bufferSizePtr (Restpuffer)BUFREQ_OK, *bufferSizePtr (Restpuffer)PduR_CanTpRxIndication(PduIdType, Std_ReturnType)Dcm_TpRxIndication(PduIdType, Std_ReturnType)

Diagrama de sequências: A recepção por TP começa com uma negociação de buffer, continua de forma segmentada e termina com a indicação. Fontes: SWS PduR p. 112, SWS PduR p. 92, SWS PduR p. 91

Confirmação e repetição: RetryInfoType e TpDataStateType

RetryInfoType contém dois campos ([SWS_COMTYPE_00037]):

  • TpDataState descreve o estado do buffer de TP.
  • TxTpDataCnt indica o deslocamento a partir da posição atual, que determina o número de bytes a serem reenviados.

TpDataStateType reconhece três valores ([SWS_COMTYPE_00027]):

  • TP_DATACONF: Todos os dados copiados até o momento estão confirmados e podem ser removidos do buffer de TP. Os dados copiados nesta chamada estão excluídos disso.
  • TP_DATARETRY: Dados já copiados são copiados novamente para corrigir um erro. TxTpDataCnt indica o deslocamento inicial.
  • TP_CONFPENDING: Os dados copiados até o momento devem permanecer no buffer de TP para o tratamento de erros.

Se o próprio retry for NULL_PTR, os dados podem ser liberados imediatamente após a cópia (SWS PduR p. 93).

copytx start CopyTxData(id, info, retry, availableDataPtr) r retry == NULL_PTR? start->r frei dados imediatamente removíveis após a cópia r->frei sim st TpDataState? r->st não len info->SduLength == 0? frei->len conf TP_DATACONF: dados copiados até o momento confirmados, removíveis do buffer de TP st->conf pend TP_CONFPENDING: manter dados copiados até o momento no buffer de TP st->pend retr TP_DATARETRY: ab Offset TxTpDataCnt erneut kopieren st->retr conf->len pend->len retr->len abfrage apenas mudança de estado ou consulta de dados disponíveis; SduDataPtr pode ser NULL_PTR len->abfrage sim genug genug Sendedaten vorhanden? len->genug não busy nichts kopieren, BUFREQ_E_BUSY; unterer Layer darf wiederholen genug->busy não ok Daten kopieren, BUFREQ_OK, *availableDataPtr setzen genug->ok sim

Diagrama de atividades: Uma chamada de CopyTxData avalia primeiro o parâmetro retry e decide então sobre a cópia ou BUFREQ_E_BUSY. Fontes: SWS PduR p. 93, [SWS_COMTYPE_00027], [SWS_COMTYPE_00012]

O diagrama do protocolo de transporte J1939 ilustra a interação concretamente:

  • Por bloco, o primeiro pacote é solicitado com TP_DATACONF, e os seguintes com TP_CONFPENDING.
  • Se um TP.DT for perdido, a transmissão recomeça no primeiro pacote do bloco. Para isso, TP_DATARETRY é definido e TxTpDataCnt contém o deslocamento para o início do bloco (SWS J1939Tp p. 55).

Nem todo usuário avalia o parâmetro: No LdCom, segundo a especificação, retry não é tratado nem pelo LdCom nem por sua camada superior (SWS LdCom p. 34).

Tratamento de retry no protocolo de transporte J1939PduR (Sender)J1939Tp (Sender)J1939Tp (receptor)J1939Tp_Transmit(PduIdType, const PduInfoType*)TP.CM_RTSTP.CM_CTSloopje Blockloopje PaketPduR_J1939TpCopyTxData(id, info, retry, availableDataPtr)TpDataState = TP_DATACONF (primeiro pacote do bloco)ou TP_CONFPENDING (pacotes seguintes)TP.DToptTP.DT verlorenpróximo pacote = primeiro pacote do blocoPduR_J1939TpCopyTxData(retry)TpDataState = TP_DATARETRYTxTpDataCnt = offset para o início do blocoTP.EOMACKPduR_J1939TpTxConfirmation(...)

Diagrama de sequência: Transmissão em blocos com estados de confirmação e retorno ao início do bloco em caso de perda de pacote de dados. Fontes: SWS J1939Tp p. 55, [SWS_COMTYPE_00027], [SWS_COMTYPE_00037]

Canais, sub-redes e parâmetros de TP

NetworkHandleType é um uint8 com o intervalo de base zero 0..255. Ele armazena o identificador de um canal de comunicação ([SWS_COMTYPE_00038]). Exemplos de releases posteriores:

  • O Bus Mirroring relata um frame LIN com o canal ComM atribuído ao canal LIN (SWS Mirror p. 80).
  • O J1939Dcm passa o canal no qual uma requisição foi recebida (SWS J1939Dcm p. 67).

PNCHandleType armazena o identificador de um Partial Network Cluster e é derivado de uint8 na R20-11 ([SWS_COMTYPE_00036]). O trecho documental da R23-11 menciona, por outro lado, uint16 (SWS ComStackTypes p. 17). Para a R20-11, aplica-se o requisito. O contexto de aplicação dos identificadores PNC é demonstrado, por exemplo, pelo desligamento sincronizado de PNC no ComM (SWS ComM p. 171).

TPParameterType especifica o parâmetro do protocolo de transporte cujo valor deve ser modificado ([SWS_COMTYPE_00031]):

  • TP_STMIN: Separation Time,
  • TP_BS: Block Size,
  • TP_BC: controle de largura de banda do protocolo de transporte FlexRay.

Block Size e STmin aparecem, por exemplo, no frame Flow Control do protocolo de transporte FlexRay-AR (SWS FrArTp p. 47).

Comportamento em caso de erro

O resultado de uma solicitação de buffer é descrito por BufReq_ReturnType ([SWS_COMTYPE_00012]):

  • BUFREQ_OK (0): com sucesso.
  • BUFREQ_E_NOT_OK (1): O buffer não está acessível.
  • BUFREQ_E_BUSY (2): Temporariamente nenhum buffer está disponível; o solicitante deve tentar novamente durante um determinado período.
  • BUFREQ_E_OVFL (3): Não é possível disponibilizar nenhum buffer com o comprimento necessário.

As interfaces mapeiam esses valores da seguinte forma:

  • CopyTxData: Se os dados de transmissão forem insuficientes, nada é copiado e BUFREQ_E_BUSY é retornado; a camada inferior pode repetir a chamada (SWS PduR p. 93). No fluxo de buffer paginado do DCM, BUFREQ_E_BUSY ocorre alternando com a preparação da próxima página (SWS DCM p. 481).
  • StartOfReception: BUFREQ_E_NOT_OK rejeita a conexão e aborta a recepção; bufferSizePtr permanece inalterado. BUFREQ_E_OVFL aborta porque nenhum buffer com o comprimento necessário está disponível. Com BUFREQ_OK sem buffer do tamanho solicitado, um tamanho de buffer de 0 é relatado (SWS DCM p. 273).
  • CopyRxData: BUFREQ_E_NOT_OK significa que nada foi copiado devido a um erro (SWS PduR p. 91).
  • Erro de transmissão no TP: A correção ocorre via TP_DATARETRY com o deslocamento TxTpDataCnt ([SWS_COMTYPE_00027]).
  • TriggerTransmit: E_NOT_OK significa que nada foi copiado. PduInfoPtr não deve ser utilizado nesse caso, pois pode ser NULL ou inválido (SWS CanIf p. 107).

Outras verificações são definidas pelos próprios módulos usuários. Exemplos:

  • DoIP_SoAdTpCopyRxData verifica, quando a detecção de erros de desenvolvimento está ativada, se DoIP_Init foi chamado previamente (SWS DoIP p. 77).
  • FrIf_Transmit retorna no estado FRIF_STATE_OFFLINE o valor E_NOT_OK (SWS FrIf p. 68).
  • Muitas dessas funções são reentrantes apenas para diferentes IDs de PDU, não para a mesma (SWS DoIP p. 75).

Evidências mais detalhadas

A visão geral a seguir classifica as principais referências ([SWS_COMTYPE_00005] a [SWS_COMTYPE_00038]):

ReferênciaClassificação
[SWS_COMTYPE_00005], [SWS_COMTYPE_00008]Largura dependente da configuração de PduIdType e PduLengthType, gerada a partir do EcuC
[SWS_COMTYPE_00011]Estrutura de PduInfoType incluindo metadados
[SWS_COMTYPE_00012]Códigos de resultado de todas as solicitações de buffer de TP
[SWS_COMTYPE_00027], [SWS_COMTYPE_00037]Lógica de confirmação e repetição na transmissão de TP
[SWS_COMTYPE_00031], [SWS_COMTYPE_00036], [SWS_COMTYPE_00038]Seleção de parâmetros de TP, identificadores PNC e de canal
ECU Configuration S. 156Conceito de Handle ID: valores livremente selecionáveis por módulo, exclusivos por API
SWS PduR S. 93, SWS PduR S. 92Semântica de referência das interfaces de cópia de TP
SWS J1939Tp S. 55Diagrama do tratamento de retry (também indicado para a R20-11)

Guia gerado por IA com base nos requisitos e passagens de documentos fornecidos no payload; os trechos de documentos citados provêm em parte de releases posteriores (R23-11 a R25-11). Normativos para a R20-11 são os requisitos SWS_COMTYPE_*.

Communication Stack Types (ComStack_Types)

Standardized types, PDU identifiers, lengths, and buffer request types (PduIdType, PduLengthType, PduInfoType, BufReq_ReturnType) used across all communication layers.

Typen — Übersicht

Typen — Detailansicht

tipo PduInfoType [SWS_COMTYPE_00011] 📄 PDF

typedef struct { uint8* SduDataPtr; uint8* MetaDataPtr; PduLengthType SduLength; } PduInfoType;

Variables of this type shall be used to store the basic information about a PDU of any type, namely a pointer variable pointing to its SDU (payload), a pointer to Meta Data of the PDU, and the corresponding length of the SDU in byt es.

tipo BufReq_ReturnType [SWS_COMTYPE_00012] 📄 PDF

typedef enum { BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY, BUFREQ_E_OVFL } BufReq_ReturnType;

Variables of this type shall be used to store the result of a buffer request.

tipo TpDataStateType [SWS_COMTYPE_00027] 📄 PDF

typedef enum { TP_DATACONF, TP_DATARETRY, TP_CONFPENDING } TpDataStateType;

Variables of this type shall be used to store the state of TP buffer.

Guia do implementador em breve (complexidade I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_ComStack
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_ComStack@rel:R20-11#65f84f5e
Content hash
65f84f5e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CommunicationStackTypes.pdf#nameddest=SWS_COMTYPE_00005

Tipos

Variables of this type shall be used to store the result of a buffer request.

typedef enum { BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY, BUFREQ_E_OVFL } BufReq_ReturnType;

Variables of the type Network Handle Type shall be used to store the identifier of a communication channel.

This type is used within the entire AUTOSAR Com Stack except for bus drivers.

typedef uint16 PduIdType;

Variables of this type shall be used to store the basic information about a PDU of any type, namely a pointer variable pointing to its SDU (payload), a pointer to Meta Data of the PDU, and the corresponding length of the SDU in byt es.

typedef struct { uint8* SduDataPtr; uint8* MetaDataPtr; PduLengthType SduLength; } PduInfoType;

This type shall be used within the entire AUTOSAR Com Stack of an ECU except for bus drivers.

Used to store the identifier of a partial network cluster.

Variables of this type shall be used to store the information about Tp buffer handling.

typedef struct { TpDataStateType TpDataState; PduLengthType TxTpDataCnt; } RetryInfoType;

Variables of this type shall be used to store the state of TP buffer.

typedef enum { TP_DATACONF, TP_DATARETRY, TP_CONFPENDING } TpDataStateType;

Specify the parameter to which the value has to be changed (BS or STmin).

typedef enum { TP_STMIN, TP_BS, TP_BC } TPParameterType;