DEENESPTFRRUARHIKOZHNL

LIN State Manager (LinSM)

ModulLinSM (LIN State Manager)
BSW-Modul-ID141
Standard-Header#include "LinSM.h"
SWS-SpezifikationAUTOSAR_SWS_LINStateManager.pdf
ClusterLIN

Guide du moduleGÉNÉRÉ PAR IA

Contrôle le mode de communication, le réveil, la mise en veille et le changement des tables d'ordonnancement pour chaque réseau LIN.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 4c8293bd0eb8 Provenance Questions ouvertes (2)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Contrôle le mode de communication, le réveil, la mise en veille et le changement des tables d'ordonnancement pour chaque réseau LIN.

Le LIN State Manager convertit les souhaits de communication de ComM par réseau LIN en appels de LIN Interface. Il notifie les états résultants LINSM_FULL_COM et LINSM_NO_COM à ComM et BswM [SWS_LinSM_00126]. Il démarre directement le réveil, la mise en veille et, uniquement pour le maître, le changement de la table d'ordonnancement, et surveille les confirmations à l'aide de temporisateurs dans LinSM_MainFunction. Dans le cas de l'esclave, le maître détermine la mise en veille : seul LinSM_GotoSleepIndication déclenche LinIf_GotoSleep [SWS_LinSM_00231]. Si une transition échoue, le LinSM notifie à nouveau l'état précédent afin que les couches supérieures restent cohérentes.

Le LIN State Manager est le gestionnaire d'état de bus pour LIN. C'est par son intermédiaire que ComM demande la capacité de communication d'un réseau (SWS ComM p. 19). Il reçoit les requêtes de mode via LinSM_RequestComMode [SWS_LinSM_00126]. Il contrôle le LinIf et notifie les états à ComM et BswM [SWS_LinSM_00229]. Le pilote LIN qui dessert un réseau reste masqué derrière le LinIf (SWS LinSM p. 28).

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det Det LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin Pilote LIN (un ou plusieurs) LinIf->Lin Zuordnung Netzwerk zu Treiber

Diagramme de contexte : ComM et BswM contrôlent le LinSM, le LinSM contrôle le LinIf, et le LinIf renvoie des notifications via des callbacks. Sources : [SWS_LinSM_00229], [SWS_LinSM_00138], SWS LinSM p. 28

Après LinSM_Init, chaque réseau est en LINSM_NO_COM [SWS_LinSM_00155]. ComM et BswM ne sont pas notifiés à cette occasion (SWS LinSM p. 23). La communication n'est autorisée qu'en LINSM_FULL_COM. Lors de l'entrée, ComM et BswM reçoivent une notification, et le sous-état LINSM_RUN_COMMUNICATION est activé [SWS_LinSM_00301]. Seuls LINSM_FULL_COM et LINSM_NO_COM sont visibles pour le BswM [SWS_LinSM_00220].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (aucune notification à ComM/BswM) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) notification FULL_COM à ComM et BswM GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep renvoie E_OK Master : ComM demande NO_COM Slave : LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (indépendamment de success) notification NO_COM à ComM et BswM

Diagramme d'état : Pour chaque réseau, le LinSM bascule entre LINSM_NO_COM et LINSM_FULL_COM par confirmation de réveil et de veille. Sources : [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM p. 20

Le LinSM lance le réveil et la mise en veille directement au cours de l'appel. Il surveille les confirmations du LinIf à l'aide de temporisateurs dans LinSM_MainFunction [SWS_LinSM_00156] (SWS LinSM p. 28). Pour le maître, une demande de COMM_NO_COMMUNICATION conduit immédiatement à LinIf_GotoSleep [SWS_LinSM_00036]. Pour l'esclave, elle est seulement enregistrée [SWS_LinSM_00230] ; seul LinSM_GotoSleepIndication déclenche la mise en veille [SWS_LinSM_00231]. Un temporisateur Silence-after-Wakeup retarde les nouvelles tentatives de réveil [SWS_LinSM_00237].

Les changements de table d'ordonnancement n'existent que pour le maître [SWS_LinSM_00241]. Le LinSM transmet LinSM_ScheduleRequest directement au LinIf et notifie le résultat via BswM_LinSM_CurrentSchedule (SWS LinSM p. 26). Pour les erreurs, les règles suivantes s'appliquent :

  • Le LinSM signale les erreurs de développement au DET, avec les codes issus de [SWS_LinSM_00053].
  • L'absence de callback du LinIf est considérée comme LINSM_E_CONFIRMATION_TIMEOUT [SWS_LinSM_00224].
  • Après une transition infructueuse, le LinSM rétablit l'état précédent afin que ComM et BswM restent informés de manière cohérente [SWS_LinSM_00177].

Rôle entre ComM, BswM et LIN Interface

Le LIN State Manager (LinSM) est le gestionnaire d'état de bus pour LIN. Comme pour les autres gestionnaires d'état de bus, ComM demande par son intermédiaire la capacité de communication d'un réseau (SWS ComM p. 19). L'interface d'entrée centrale pour cela est LinSM_RequestComMode [SWS_LinSM_00126]. Le mode actuel est fourni par LinSM_GetCurrentComMode [SWS_LinSM_00122]. Le LinSM fonctionne exclusivement sur des réseaux. Le pilote LIN qui dessert un réseau est masqué par le LinIf. Par conséquent, les calculateurs (ECU) comportant plusieurs pilotes LIN distincts ne concernent pas le LinSM (SWS LinSM p. 28).

Parmi les interfaces obligatoires figurent LinIf_GotoSleep et LinIf_ScheduleRequest vers le bas ainsi que les notifications ComM_BusSM_ModeIndication, ComM_BusSM_BusSleepMode, BswM_LinSM_CurrentState et BswM_LinSM_CurrentSchedule vers le haut [SWS_LinSM_00229] (SWS LinSM p. 41). LinIf_Wakeup est appelée par le LinSM dans le déroulement du réveil (SWS LinSM p. 27). De manière optionnelle, il utilise Det_ReportError et LinIf_SetTrcvMode [SWS_LinSM_00138]. Le LinIf renvoie des informations via les callbacks suivants :

Les types importés tels que ComM_ModeType, NetworkHandleType et LinIf_SchHandleType sont définis par [SWS_LinSM_00219].

kontext ComM ComM LinSM LinSM ComM->LinSM LinSM_RequestComMode LinSM_GetCurrentComMode BswM BswM BswM->LinSM LinSM_Init (Beispielregel) LinSM_ScheduleRequest SchM BSW-Scheduler (SchM) SchM->LinSM LinSM_MainFunction (periodisch) LinSM->ComM ComM_BusSM_ModeIndication ComM_BusSM_BusSleepMode LinSM->BswM BswM_LinSM_CurrentState BswM_LinSM_CurrentSchedule LinIf LinIf LinSM->LinIf LinIf_Wakeup / LinIf_GotoSleep LinIf_ScheduleRequest / LinIf_SetTrcvMode Det Det LinSM->Det Fehlermeldungen LinIf->LinSM LinSM_WakeupConfirmation LinSM_GotoSleepConfirmation LinSM_GotoSleepIndication LinSM_ScheduleRequestConfirmation Lin Pilote LIN (un ou plusieurs) LinIf->Lin Zuordnung Netzwerk zu Treiber

Diagramme de contexte : Le LinSM assure l'intermédiaire entre ComM et BswM au niveau supérieur et le LinIf au niveau inférieur ; les pilotes LIN restent masqués derrière le LinIf. Sources : [SWS_LinSM_00126], [SWS_LinSM_00229], [SWS_LinSM_00138], [SWS_LinSM_00156], SWS LinSM p. 28, Mode-Management-Guide p. 54

Modèle d'état par réseau LIN, initialisation et composante cyclique

Au démarrage, l'état à l'échelle du module LINSM_UNINIT est actif avant tout appel d'API (SWS LinSM p. 22). LinSM_Init est synchrone et non réentrant [SWS_LinSM_00155]. La fonction reçoit un pointeur vers la configuration post-build de type LinSM_ConfigType, spécifique à l'implémentation [SWS_LinSM_00221]. Ensuite, chaque réseau se trouve dans le sous-état LINSM_NO_COM du super-état LINSM_INIT. LinSM_Init ne notifie cette première transition ni à ComM ni à BswM, car ComM n'a pas encore besoin d'être initialisé à ce moment-là (SWS LinSM p. 23). Dans l'exemple du guide de gestion des modes, une règle BswM appelle LinSM_Init(null) après Lin_Init et LinIf_Init (Mode-Management-Guide p. 54).

En LINSM_NO_COM, le bus reste silencieux (SWS LinSM p. 23). La communication sur le bus n'est autorisée qu'en LINSM_FULL_COM, et chaque réseau atteint cet état indépendamment des autres. Lors de l'entrée dans cet état, les actions suivantes sont exécutées (SWS LinSM p. 23) :

  • ComM reçoit une notification avec COMM_FULL_COMMUNICATION, et BswM une notification avec LINSM_FULL_COM.
  • Si LinSMTransceiverPassiveMode est configuré, le LinSM active le transceiver via LinIf_SetTrcvMode.
  • Le sous-état LINSM_RUN_COMMUNICATION est activé [SWS_LinSM_00301].

Le sous-état transitoire LINSM_GOTO_SLEEP sert de transition pendant l'attente de la confirmation de mise en veille (SWS LinSM p. 20, SWS LinSM p. 21). Pour le BswM, seules deux valeurs de LinSM_ModeType sont visibles : LINSM_FULL_COM (0x01) et LINSM_NO_COM (0x02) [SWS_LinSM_00220].

La surveillance temporelle s'exécute dans LinSM_MainFunction. Cette fonction périodique gère les temporisateurs des timeouts de requête [SWS_LinSM_00156]. C'est également là qu'expirent les temporisateurs de confirmation de réveil, avec un temporisateur propre à chaque réseau (SWS LinSM p. 28). En revanche, le LinSM démarre les actions de bus proprement dites directement lors de l'appel et n'attend pas le cycle suivant de la fonction principale [SWS_LinSM_00036] [SWS_LinSM_00231].

zustaende cluster_init LINSM_INIT (je LIN-Netzwerk) cluster_full LINSM_FULL_COM Start Systemstart UNINIT LINSM_UNINIT Start->UNINIT NO_COM LINSM_NO_COM (Bus still) UNINIT->NO_COM LinSM_Init (aucune notification à ComM/BswM) RUN LINSM_RUN_COMMUNICATION NO_COM->RUN LinSM_WakeupConfirmation(TRUE) notification FULL_COM à ComM et BswM GOTO LINSM_GOTO_SLEEP RUN->GOTO LinIf_GotoSleep renvoie E_OK Master : ComM demande NO_COM Slave : LinSM_GotoSleepIndication GOTO->NO_COM LinSM_GotoSleepConfirmation (indépendamment de success) notification NO_COM à ComM et BswM

Diagramme d'états : pour chaque réseau, le LinSM bascule entre LINSM_NO_COM et LINSM_FULL_COM par confirmation de réveil et de mise en veille ; LINSM_GOTO_SLEEP n'est qu'un état d'attente. Sources : [SWS_LinSM_00155], [SWS_LinSM_00301], SWS LinSM p. 20, SWS LinSM p. 21, SWS LinSM p. 24

Réveil : de LINSM_NO_COM vers LINSM_FULL_COM

Un réseau LIN est réveillé lorsque ComM demande une communication complète via LinSM_RequestComMode. Si un autre nœud réveille le bus, ce n'est pas le LinSM qui le gère, mais l'EcuM ; ce cas entraîne également une demande de la part de ComM (SWS LinSM p. 27). Le LinSM appelle alors directement LinIf_Wakeup et réinitialise le compteur du nombre maximal de répétitions. Si la LinIf est déjà réveillée, elle ignore l'appel. Avant l'appel, le LinSM démarre le temporisateur de confirmation de réveil pour le canal avec LinSMConfirmationTimeout. Cette valeur doit être 0 ou un multiple entier de la période de la fonction principale (SWS LinSM p. 28).

Si LinSM_WakeupConfirmation signale success = TRUE, le réseau passe à LINSM_FULL_COM [SWS_LinSM_00132]. Dans tous les autres cas, le LinSM rétablit l'état précédant la requête, afin que ComM et BswM reçoivent tout de même une indication de mode (SWS LinSM p. 27). Pour le slave, la LinIf ne confirme qu'après avoir reçu le premier en-tête LIN du master. Si le master ne démarre pas l'ordonnancement, la confirmation n'a pas lieu et le timeout du LinSM se déclenche (SWS LinIf p. 52).

Réveil d'un réseau LIN (réveil interne)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_FULL_COMMUNICATION)Démarrer le temporisateur de confirmation de réveil(LinSMConfirmationTimeout)LinIf_Wakeup(Channel)directement, pas dans LinSM_MainFunctionE_OKE_OKMaster : confirmation après émission du signal de réveilSlave : confirmation avec le premier en-tête LIN reçualtsuccess = TRUELinSM_WakeupConfirmation(network, TRUE)Timer stoppenLINSM_FULL_COM / LINSM_RUN_COMMUNICATIONComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)success = FALSELinSM_WakeupConfirmation(network, FALSE)Rétablir l'état antérieur à la demandeComM_BusSM_ModeIndication(network, bisheriger Modus)BswM_LinSM_CurrentState(network, bisheriger Zustand)aucune confirmationLinSM_MainFunction: Timer abgelaufenLINSM_E_CONFIRMATION_TIMEOUT

Diagramme de séquence : le LinSM réveille le réseau immédiatement lors de l'appel, mais le changement d'état ne suit qu'avec la confirmation asynchrone de la LinIf. Sources : [SWS_LinSM_00126], [SWS_LinSM_00132], [SWS_LinSM_00224], SWS LinSM p. 42, SWS LinSM p. 27

Une seconde limite temporelle est le temporisateur de silence après réveil (Silence-after-Wakeup) avec LinSMSilenceAfterWakeupTimeout [SWS_LinSM_00235]. Tant qu'il est actif, le LinSM retarde un nouvel appel de LinIf_Wakeup, même si ComM demande une communication complète [SWS_LinSM_00237]. Après son expiration, le LinSM redémarre le processus de réveil, pour autant que ComM continue de demander COMM_FULL_COMMUNICATION [SWS_LinSM_00236]. La condition qui démarre le temporisateur figure dans une exigence qui n'est pas présente ici. Elle n'est donc pas décrite.

wakeup_entscheidung A ComM: LinSM_RequestComMode (COMM_FULL_COMMUNICATION) B Temporisateur de silence après réveil en cours ? A->B C Différer LinIf_Wakeup jusqu'à l'expiration du temporisateur B->C Oui D Réinitialiser le compteur de répétitions démarrer le temporisateur de confirmation de réveil B->D Non C->D Timer abgelaufen E LinIf_Wakeup(Channel) direkt aufrufen D->E F Retour du LinIf ? E->F G LINSM_FULL_COM notification à ComM et BswM F->G WakeupConfirmation TRUE H Rétablir l'état précédant la demande et le notifier F->H WakeupConfirmation FALSE I LinSM_MainFunction: Timer abgelaufen LINSM_E_CONFIRMATION_TIMEOUT F->I aucune confirmation J Timeout de silence après réveil et COMM_FULL_COMMUNICATION toujours demandé J->D Redémarrer le processus de réveil

Diagramme d'activité : une requête de communication complète aboutit, selon l'état des temporisateurs et le retour d'information, à LINSM_FULL_COM, à l'ancien état ou à un timeout de confirmation. Sources : [SWS_LinSM_00237], [SWS_LinSM_00236], [SWS_LinSM_00224], SWS LinSM p. 27, SWS LinSM p. 28

Mise en veille : le master effectue la requête, le slave suit le bus

Le déroulement du passage en veille (Goto-Sleep) diffère entre master et slave. Dans les deux cas, le LinSM signale l'entrée dans le mode No-Communication à BswM et ComM, même si un problème est survenu (SWS LinSM p. 24).

Pour le master :

  • Si ComM demande COMM_NO_COMMUNICATION dans l'état LINSM_FULL_COM, le LinSM appelle LinIf_GotoSleep, qui envoie la commande Goto-Sleep [SWS_LinSM_10208].
  • L'appel s'effectue directement [SWS_LinSM_00036]. Dans tous les autres cas, il n'a pas lieu [SWS_LinSM_10209].
  • L'appel n'est autorisé que dans le sous-état LINSM_RUN_COMMUNICATION (SWS LinSM p. 24).
  • Si LinIf_GotoSleep retourne E_NOT_OK, LinSM_RequestComMode renvoie également E_NOT_OK. L'état antérieur est rétabli afin que ComM et BswM reçoivent une indication [SWS_LinSM_00177].

Ensuite, la LinIf appelle LinSM_GotoSleepConfirmation [SWS_LinSM_00135]. Si le LinSM se trouve alors dans LINSM_FULL_COM/LINSM_GOTO_SLEEP, il passe à LINSM_NO_COM, indépendamment du paramètre success. Dans tout autre état, il ignore la confirmation (SWS LinSM p. 24). Le schéma de la spécification démarre un temporisateur avant LinIf_GotoSleep et l'arrête après la confirmation (SWS LinSM p. 47).

Passage en sommeil d'un réseau LIN (Master)ComMLinSMLinIfBswMLinSM_RequestComMode(network,COMM_NO_COMMUNICATION)uniquement dans LINSM_FULL_COM / LINSM_RUN_COMMUNICATIONappel direct, pas dans LinSM_MainFunctionstart_timer()LinIf_GotoSleep(Channel)altLinIf_GotoSleep = E_OKE_OKUnterzustand LINSM_GOTO_SLEEPE_OKLinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COM (indépendamment de success)ComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)LinIf_GotoSleep = E_NOT_OKE_NOT_OKbisherigen Zustand erneut setzenE_NOT_OKComM_BusSM_ModeIndication(network,COMM_FULL_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_FULL_COM)

Diagramme de séquence : sur le master, ComM déclenche la mise en veille ; LINSM_NO_COM n'est atteint qu'avec la confirmation de mise en veille, un retour E_NOT_OK de LinIf_GotoSleep entraîne la notification renouvelée de l'ancien état. Sources : [SWS_LinSM_00036], [SWS_LinSM_00177], [SWS_LinSM_00135], SWS LinSM p. 47, SWS LinSM p. 24

Sur le slave, le master décide de la mise en veille. Si ComM demande COMM_NO_COMMUNICATION dans l'état LINSM_FULL_COM, le LinSM mémorise uniquement la demande et renvoie E_OK [SWS_LinSM_00230]. La LinIf signale LinSM_GotoSleepIndication lorsqu'une commande Goto-Sleep a été reçue ou qu'un timeout d'inactivité du bus (Bus-Idle) est survenu [SWS_LinSM_91000]. Ce n'est qu'alors que le LinSM appelle directement LinIf_GotoSleep [SWS_LinSM_00231]. La suite du déroulement dépend de la demande mémorisée :

  • Si COMM_NO_COMMUNICATION est demandée et que LinIf_GotoSleep renvoie E_OK, ComM est informé de l'événement Bus-Sleep via ComM_BusSM_BusSleepMode [SWS_LinSM_00233].
  • Si une communication complète est demandée, le LinSM redémarre le processus de réveil après la confirmation de mise en veille [SWS_LinSM_00234].

Dans la LinIf, la séquence slave place le contrôleur et, s'il est pris en charge, le transceiver en mode veille (SWS LinIf p. 137).

Passage en sommeil d'un réseau LIN (Slave)ComMLinSMLinIfBswMUse Case: Demande de mise en sommeil du ComMLinSM_RequestComMode(network,COMM_NO_COMMUNICATION)angeforderten Modus speichern,aucune autre actionE_OKUse Case: BusereignisLinSM_GotoSleepIndication(Channel)Goto-Sleep-Kommando empfangenou timeout d'inactivité du busstart_timer()LinIf_GotoSleep(Channel)directement, pas dans LinSM_MainFunctionE_OKaltangefordert: COMM_NO_COMMUNICATIONComM_BusSM_BusSleepMode(Channel)LinSM_GotoSleepConfirmation(network, success)stop_timer()LINSM_NO_COMComM_BusSM_ModeIndication(network,COMM_NO_COMMUNICATION)BswM_LinSM_CurrentState(network, LINSM_NO_COM)angefordert: COMM_FULL_COMMUNICATIONLinSM_GotoSleepConfirmation(network, success)LINSM_NO_COM, notification à ComM et BswMkein Bus-Sleep-Ereignis an ComMRedémarrer le processus de réveil (LinIf_Wakeup)

Diagramme de séquence : sur le slave, la demande de mise en veille de ComM est seulement mémorisée, la mise en veille étant déclenchée par l'indication de la LinIf. Sources : [SWS_LinSM_00230], [SWS_LinSM_00231], [SWS_LinSM_00233], [SWS_LinSM_00234], SWS LinSM p. 48, SWS LinSM p. 24

Changement de tables d'ordonnancement (master uniquement)

LinSM_ScheduleRequest [SWS_LinSM_00113] n'existe que si au moins un canal est configuré en tant que master [SWS_LinSM_00241]. Il en va de même pour le callback LinSM_ScheduleRequestConfirmation [SWS_LinSM_00242]. La fonction asynchrone transmet directement la requête à LinIf_ScheduleRequest, sans passer par la fonction principale. Elle renvoie la valeur de retour de celle-ci à l'appelant (SWS LinSM p. 26). L'appelant est le BswM. Il utilise LinSMScheduleIndex comme référence symbolique dont la valeur doit correspondre à la valeur dans la LinIf (SWS LinSM p. 52). Les changements d'ordonnancement de diagnostic du protocole de transport LIN passent également par le BswM et LinSM_ScheduleRequest (SWS LinIf p. 142).

Le LinSM signale le résultat via BswM_LinSM_CurrentSchedule (SWS BswM p. 80). La table d'ordonnancement signalée dépend du déroulement (SWS LinSM p. 26) :

  • Si LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] confirme avant l'expiration du temporisateur, le LinSM signale la nouvelle table d'ordonnancement.
  • Si le temporisateur a expiré, il signale la table d'ordonnancement inchangée.
  • Si LinIf_ScheduleRequest renvoie E_NOT_OK, il signale l'ancienne table d'ordonnancement lors de l'appel suivant de la fonction principale.
  • Il signale également un changement survenu sans requête préalable, tel que le passage à la table d'ordonnancement NULL effectué par la LinIf lors de la mise en veille.
Changement de la table d'ordonnancement (Master uniquement)BswMLinSMLinIfLinSM_ScheduleRequest(network, schedule)start_timer()LinIf_ScheduleRequest(Channel, schedule)directement, pas dans LinSM_MainFunctionaltE_OK, confirmation avant expiration du temporisateurE_OKE_OK (weitergereicht)LinSM_ScheduleRequestConfirmation(network, schedule)stop_timer()BswM_LinSM_CurrentSchedule(network, neuer Schedule)E_OK, Timer abgelaufenE_OKE_OK (weitergereicht)LinSM_MainFunction: Timer abgelaufenBswM_LinSM_CurrentSchedule(network, table d'ordonnancement inchangée)LinIf_ScheduleRequest = E_NOT_OKE_NOT_OKE_NOT_OK (weitergereicht)prochain appel de LinSM_MainFunctionBswM_LinSM_CurrentSchedule(network, alter Schedule)

Diagramme de séquence : le changement de table d'ordonnancement est directement transmis et surveillé temporellement ; le BswM reçoit dans chaque cas d'issue la table d'ordonnancement effectivement valide. Sources : [SWS_LinSM_00113], [SWS_LinSM_00129], [SWS_LinSM_00156], SWS LinSM p. 26, SWS LinSM p. 48

Type de nœud, configuration et différences avec les versions ultérieures

Le paramètre LinSMNodeType définit si un comportement master ou slave s'applique à un canal. C'est de cela que dépend la disponibilité de LinSM_ScheduleRequest, LinSM_ScheduleRequestConfirmation et LinSM_GotoSleepIndication [SWS_LinSM_00241] [SWS_LinSM_00242] [SWS_LinSM_00243]. Les paramètres temporels les plus importants sont LinSMConfirmationTimeout (SWS LinSM p. 28) et LinSMSilenceAfterWakeupTimeout [SWS_LinSM_00235]. Les conteneurs LinSMSchedule référencent des tables d'ordonnancement issues de la configuration de la LinIf (SWS LinSM p. 52). Les vérifications DET dépendent de LinSMDevErrorDetect [SWS_LinSM_00239].

De nombreux passages du document sont issus de versions ultérieures. Pour R20-11, les exigences font foi, et elles divergent sur certains points :

Comportement en cas d'erreur

[SWS_LinSM_00053] définit les erreurs de développement :

  • LINSM_E_UNINIT (0x00)
  • LINSM_E_NONEXISTENT_NETWORK (0x20)
  • LINSM_E_PARAMETER (0x30)
  • LINSM_E_PARAM_POINTER (0x40)
  • LINSM_E_INIT_FAILED (0x50)

Lorsque LinSMDevErrorDetect est actif, les callbacks vérifient le réseau et l'initialisation, comme par exemple LinSM_GotoSleepIndication [SWS_LinSM_00239] [SWS_LinSM_00240]. Les callbacks n'ayant pas de valeur de retour, cela se limite pour eux au signalement DET (SWS LinSM p. 40, SWS LinSM p. 39). Les API avec Std_ReturnType renvoient en outre E_NOT_OK, par exemple en cas de réseau, de mode ou d'ordonnancement non valide, ou dans l'état LINSM_UNINIT (SWS LinSM p. 36, SWS LinSM p. 34). Interprétation : ces vérifications proviennent de versions à partir de R24-11 et devraient s'appliquer de manière identique quant au fond pour R20-11. Il est remarquable que la version ultérieure exige également E_NOT_OK en cas de pointeur NULL pour l'API void LinSM_GetVersionInfo [SWS_LinSM_00117] (SWS LinSM p. 34). Question Q-6b2d75dd286bdcb4 (ouverte)

Comme erreur d'exécution, LINSM_E_CONFIRMATION_TIMEOUT (0x00) est prévue pour les callbacks manquants de la LinIf [SWS_LinSM_00224]. Elle est vraisemblablement signalée via Det_ReportRuntimeError, que des versions ultérieures listent comme interface obligatoire (SWS LinSM p. 41). Question Q-06b13a07d0d60152 (ouverte) Sur le plan fonctionnel, le LinSM veille à ce que ComM et BswM voient toujours un état cohérent :

  • Après un réveil échoué, il rétablit et signale à nouveau l'ancien état (SWS LinSM p. 27).
  • En cas de retour E_NOT_OK de LinIf_GotoSleep, la même règle s'applique [SWS_LinSM_00177].
  • Une confirmation de mise en veille conduit à LINSM_NO_COM même si success = FALSE (SWS LinSM p. 24).
  • En cas d'échec d'un changement de table d'ordonnancement, le BswM reçoit l'ancienne table d'ordonnancement ou la table inchangée (SWS LinSM p. 26).

Preuves détaillées supplémentaires

Guide de module généré par IA sur la base des exigences normatives pour R20-11 ainsi que des passages de documents et schémas associés, issus en partie d'autres versions. Les déclarations identifiées comme interprétations ne reposent pas sur une base normative. Seule la spécification AUTOSAR fait foi.

LIN State Manager (LinSM)

Manages state transitions of LIN networks.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction LinSM_Init [SWS_LinSM_00155] 📄 PDF

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

This function initializes the Lin SM.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 18f94187e199 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction LinSM_Init sert à initialiser le module logiciel LIN State Manager (LinSM) dans la plateforme AUTOSAR Classic [SWS_LinSM_00155].

Utilisation et paramètres d'interface :

  • Synchronisation d’appel : l’exécution de la fonction d’initialisation est spécifiée comme synchrone (Synchronous) [SWS_LinSM_00155].
  • Paramètre d’entrée : ConfigPtr du type const LinSM_ConfigType* est transmis comme unique paramètre [SWS_LinSM_00155]. Celui-ci fait office de pointeur vers les données de configuration post-build du LinSM [SWS_LinSM_00155].
  • Autres paramètres et valeur de retour : l’interface ne renvoie aucune valeur de retour (void) [SWS_LinSM_00155]. Aucun paramètre d’entrée/sortie supplémentaire ou paramètre de sortie pure n’existe [SWS_LinSM_00155].
  • Fichier d’en-tête et identifiant de service : la déclaration est mise à disposition via le fichier d’en-tête LinSM.h et porte le Service-ID 0x01 [SWS_LinSM_00155].

Concurrence et restrictions :

Pour l’exécution de LinSM_Init, il est défini que la fonction n’est pas réentrante (Non reentrant) [SWS_LinSM_00155]. Par conséquent, l’appel ne doit s’effectuer ni en parallèle via plusieurs threads, ni de manière interruptive par des contextes de priorité supérieure [SWS_LinSM_00155].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction LinSM_ScheduleRequest [SWS_LinSM_00113] 📄 PDF

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The upper layer requests a schedule table to be changed on one LIN network.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f2deb9e24090 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction LinSM_ScheduleRequest est appelée par la couche supérieure pour demander le changement d’une table de schedule sur un canal LIN indiqué [SWS_LinSM_00113]. L’interface est définie dans le fichier d’en-tête LinSM.h, possède le Service-ID 0x10 et fonctionne de manière asynchrone ainsi que réentrante [SWS_LinSM_00113]. Lors de l’appel, le canal concerné est transmis via le paramètre network (NetworkHandleType) et la nouvelle table souhaitée via schedule (LinIf_SchHandleType) [SWS_LinSM_00113].

Gestion des erreurs et valeurs de retour

Si la demande de commutation de table a été acceptée par le module, la fonction renvoie E_OK [SWS_LinSM_00113]. En revanche, si l’appel ne peut pas être exécuté — par exemple parce que le module n’est pas encore initialisé —, la fonction fournit la valeur de retour E_NOT_OK [SWS_LinSM_00113]. Aucun code d’erreur spécifique pour DET ou DEM n’est indiqué pour ce service.

Conditions aux limites et interactions

La mise à disposition de la fonction dépend de manière déterminante du paramètre de configuration LinSMNodeType : LinSM_ScheduleRequest n’est disponible que si le module est configuré sur au moins un canal en tant que nœud maître LIN, et est omise dans les configurations d’esclave LIN pur [SWS_LinSM_00241]. De manière identique, la fonction de confirmation associée LinSM_ScheduleRequestConfirmation requiert également une configuration de nœud maître [SWS_LinSM_00242]. Le retour d’information sur le changement asynchrone de table effectué avec succès vers la couche supérieure devrait vraisemblablement avoir lieu via cette fonction de confirmation. Question Q-34c3ec02381c72ca (ouverte)

Ce texte a été généré par une IA ; la spécification AUTOSAR fait foi.

Guide de l'implémenteur à venir (complexité I1)

fonction LinSM_GetCurrentComMode [SWS_LinSM_00122] 📄 PDF

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

Function to query the current communication mode.

fonction LinSM_RequestComMode [SWS_LinSM_00126] 📄 PDF

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 64785219821f Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et contexte d'appel

La fonction LinSM_RequestComMode (ID de service 0x12), déclarée dans le fichier d'en-tête LinSM.h, sert à demander de manière asynchrone un mode de communication pour un réseau LIN transmis [SWS_LinSM_00126]. Le paramètre network de type NetworkHandleType identifie le canal LIN concerné, tandis que mode de type ComM_ModeType spécifie le mode de communication souhaité [SWS_LinSM_00126]. Le changement de mode effectif ne se produit pas instantanément ; le LinSM n'informe l'appelant que dès que la transition de mode s'est achevée avec succès [SWS_LinSM_00126]. Interprétation : le ComM devrait faire office d'appelant principal, étant donné que le changement de mode est demandé et acquitté au niveau du canal. Question Q-0fcce16df8a29149 (ouverte)

Valeurs de retour et concurrence

L'interface est spécifiée comme réentrante et renvoie une valeur d'état de type Std_ReturnType [SWS_LinSM_00126] :

  • E_OK : la demande a été acceptée avec succès par le LinSM [SWS_LinSM_00126].
  • E_NOT_OK : l'exécution de la demande n'est pas possible, par exemple si le module LinSM n'est pas encore initialisé [SWS_LinSM_00126].

Traitement des erreurs et interaction

Dans le cadre du traitement des erreurs, une interaction avec l'interface LIN est définie : si l'appel sous-jacent de LinIf_GotoSleep renvoie la valeur de retour E_NOT_OK, LinSM_RequestComMode doit impérativement renvoyer également E_NOT_OK [SWS_LinSM_00177]. Lorsque la fonction retourne avec E_NOT_OK, le même état doit rester ou être défini dans le LinSM, de sorte que les retours correspondants soient effectués vers ComM_BusSM_ModeIndication et BswM_LinSM_CurrentState [SWS_LinSM_00177].

Ce texte a été généré automatiquement. Toutes les déclarations techniques reposent exclusivement sur les données de spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction LinSM_MainFunction [SWS_LinSM_00156] 📄 PDF

void LinSM_MainFunction (void);

Periodic function that runs the timers of different request timeouts

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ca2058e9ab04 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction LinSM_MainFunction sert de fonction principale périodique centrale du module LIN State Manager (LinSM) au sein de l’architecture AUTOSAR Classic [SWS_LinSM_00156]. Conformément à la spécification, elle possède la syntaxe void LinSM_MainFunction (void) et le Service-ID hexadécimal 0x30 [SWS_LinSM_00156]. Ne prenant aucun paramètre et ne fournissant aucune valeur de retour, elle opère de manière purement basée sur les états dans le module [SWS_LinSM_00156]. Sa tâche fonctionnelle principale est le fonctionnement et l’actualisation continus des temporisateurs internes, qui sont chargés de la surveillance de divers timeouts de requêtes (Request Timeouts) [SWS_LinSM_00156].

Contexte d’appel et ordonnancement

La déclaration de l’interface s’effectue via le fichier d’en-tête SchM_LinSm.h [SWS_LinSM_00156]. Interprétation : en raison de cette intégration dans le Schedule Manager, la fonction devrait être appelée cycliquement par le BSW Scheduler dans le contexte d’une tâche du système d’exploitation. Question Q-d83f7b3f0b251f4f (ouverte) Ce cycle régulier est essentiel afin que les conditions de timeout en attente lors de demandes de canal et d’état LIN puissent être détectées et traitées de manière déterministe. Les traitements d’erreur spécifiques tels que les codes d’erreur DET ou les événements DEM, ainsi que les critères formels de réentrance ne sont pas spécifiés pour ce service dans le présent périmètre de spécification et sont donc sans objet.

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] 📄 PDF

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 966015905644 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction LinSM_ScheduleRequestConfirmation sert d’interface de rappel du module LinSM et possède le Service-ID 0x20 [SWS_LinSM_00129]. Elle est disponible via le fichier d’en-tête LinSM.h et est appelée par l’interface LIN (LinIf) dès qu’une nouvelle table de schedule préalablement demandée est devenue active sur le bus LIN [SWS_LinSM_00129].

L’interface ne possède pas de valeur de retour (void) et transmet deux paramètres d’entrée au LinSM [SWS_LinSM_00129] :

  • network (NetworkHandleType) : sert à l’identification univoque du canal de communication LIN concerné [SWS_LinSM_00129].
  • schedule (LinIf_SchHandleType) : transmet l’identifiant ou le pointeur vers la table de schedule nouvellement activée [SWS_LinSM_00129].

Concurrence et interaction

L’exécution de LinSM_ScheduleRequestConfirmation est spécifiée comme synchrone et réentrante [SWS_LinSM_00129]. Aucun paramètre d’entrée et de sortie (inout ou out) n’est présent [SWS_LinSM_00129]. L’interaction s’effectue en étroit couplage avec le module LinIf, qui appelle cette fonction de rappel afin de confirmer le changement d’état de la table de schedule au LinSM [SWS_LinSM_00129]. Interprétation : LinIf agissant comme appelant, le contexte d’appel devrait être couplé au traitement séquentiel du pilote ou de l’interface LinIf. Question Q-500d6a653bfbaac0 (ouverte)

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

fonction LinSM_GotoSleepIndication [SWS_LinSM_91000] 📄 PDF

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f0a8b1578ff8 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction de rappel LinSM_GotoSleepIndication ([SWS_LinSM_91000]) sert à notifier au LIN State Manager le passage d'un canal à l'état de repos. L'appel est effectué par le LIN Interface (LinIf) dès qu'une commande Go-to-Sleep est reçue sur le réseau ou qu'un timeout d'inactivité du bus (bus-idle) survient.

Utilisation et contexte d'appel

La fonction est exécutée de manière synchrone et ne possède pas de valeur de retour ([SWS_LinSM_91000]). Elle est fournie via l'en-tête LinSM.h et porte l'ID de service 0x03. Son unique paramètre sert à l'identification du canal :

  • Channel (In) : Identifie le canal LIN concerné via le type NetworkHandleType ([SWS_LinSM_91000]).

Aucun paramètre d'entrée/sortie (inout) ni paramètre de sortie (out) n'est spécifié ([SWS_LinSM_91000]).

Concurrence et restrictions

En ce qui concerne la concurrence, l'interface est définie comme réentrante ([SWS_LinSM_91000]). Une restriction fonctionnelle déterminante concerne la propriété du nœud : le callback est exclusivement prévu et applicable pour les nœuds esclaves LIN ([SWS_LinSM_91000]).

Cette note d'utilisation repose exclusivement sur les données de spécification issues d'AUTOSAR Release R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction LinSM_GotoSleepConfirmation [SWS_LinSM_00135] 📄 PDF

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : cf9e1845fe84 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction de rappel LinSM_GotoSleepConfirmation est appelée conformément à [SWS_LinSM_00135] par l’interface LIN (LinIf) dès qu’une commande Go-to-Sleep a été transmise sur le réseau LIN ou que la transmission a échoué.

Utilisation et paramètres

Le rappel possède le Service-ID 0x22, est déclaré via l’en-tête LinSM.h et ne possède pas de valeur de retour [SWS_LinSM_00135]. Deux paramètres de transmission sont utilisés pour l’identification et la transmission d’état :

  • network : identifie le canal LIN concerné via le type NetworkHandleType [SWS_LinSM_00135].
  • success : indique, sous forme de valeur booléenne, si la commande Go-to-Sleep a pu être envoyée avec succès sur le bus (true) ou non (false) [SWS_LinSM_00135].

Contexte d’exécution et concurrence

La spécification définit l’appel comme synchrone et réentrant [SWS_LinSM_00135]. Interprétation : le module LinSM devrait mettre à jour son état interne pour le réseau respectif à l’aide du paramètre success et déterminer si la transition vers l’état de veille a été confirmée sur le bus. Question Q-b5dfd51188b9ff0b (ouverte) Aucun traitement d’erreur, valeur de retour ou message spécifique DET ou DEM n’est spécifié pour cette interface dans le payload [SWS_LinSM_00135].

Ce texte a été généré par une IA ; seule la spécification AUTOSAR fait foi.

Guide de l'implémenteur à venir (complexité I1)

fonction LinSM_WakeupConfirmation [SWS_LinSM_00132] 📄 PDF

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3915bb7b7db1 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction de rappel LinSM_WakeupConfirmation sert, dans le LIN State Manager, à confirmer l'envoi d'un signal de réveil sur un réseau LIN [SWS_LinSM_00132]. Elle est appelée par l'interface LIN (LinIf) dès que la commande d'émission du signal de réveil a été transmise sur le réseau, avec ou sans succès [SWS_LinSM_00132].

Pour le contexte d'appel, la concurrence et la transmission des paramètres, les caractéristiques de spécification suivantes s'appliquent [SWS_LinSM_00132] :

  • Comportement de synchronisation et réentrance : L'exécution de la fonction s'effectue de manière synchrone (Synchronous) et est classée comme réentrante (Reentrant) [SWS_LinSM_00132].
  • Identification du canal (network) : Le paramètre d'entrée transmis de type NetworkHandleType désigne le canal LIN respectif sur lequel l'opération d'émission a eu lieu [SWS_LinSM_00132].
  • Statut de succès (success) : Le paramètre booléen indique si le signal de réveil a pu être envoyé avec succès (true) ou si la transmission a échoué (false) [SWS_LinSM_00132].
  • Valeur de retour et paramètres d'entrée/sortie : La fonction n'a pas de valeur de retour (void) et ne définit ni paramètre de sortie, ni paramètre d'entrée/sortie [SWS_LinSM_00132].

L'interface possède l'ID de service 0x21 et est mise à disposition via le fichier d'en-tête LinSM.h [SWS_LinSM_00132]. Aucun code d'erreur spécifique ni exigence de traitement d'erreur via le module Default Error Tracer (DET) ou Diagnostic Event Manager (DEM) n'est prédéfini dans l'élément de spécification [SWS_LinSM_00132].

Cette note d'utilisation est basée sur la spécification AUTOSAR Classic Release R20-11.

type LinSM_ModeType [SWS_LinSM_00220] 📄 PDF

Type used to report the current mode to the Bsw M

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 939c0e58134f Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type de données LinSM_ModeType est un type standard du LIN State Manager qui repose sur le type de base uint8 et est mis à disposition via l’en-tête LinSM.h [SWS_LinSM_00220]. La tâche principale de ce type consiste à signaler le mode de communication actuel d’un réseau LIN au BSW Mode Management (BswM) [SWS_LinSM_00220].

Deux états sont spécifiés dans la plage de valeurs pour LinSM_ModeType [SWS_LinSM_00220] :

  • LINSM_FULL_COM (valeur numérique 0x01) : signale l’état de communication intégrale sans restriction (Full communication) [SWS_LinSM_00220].
  • LINSM_NO_COM (valeur numérique 0x02) : indique l’état sans communication en cours (No communication) [SWS_LinSM_00220].

En ce qui concerne le traitement des erreurs et la concurrence, la définition de type ne contient aucun code d’erreur propre, message DET ou événement DEM, car il s’agit d’une déclaration de type élémentaire [SWS_LinSM_00220]. Interprétation : la transmission de valeurs de ce type au BswM devrait intervenir dans le cadre de changements d’état de niveau supérieur du LinSM, les appelants devant s’assurer qu’aucune valeur non autorisée en dehors des états définis n’est transmise. Question Q-fe193732b8be2388 (ouverte)

Cette note d’utilisation a été générée par une IA.

Guide de l'implémenteur à venir (complexité I1)

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

Record
AUTOSAR/AP/record/CP_MOD_LinSM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinSM@rel:R20-11#99c8af6f
Content hash
99c8af6f
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINStateManager.pdf#nameddest=SWS_LinSM_00155

Initialisation et état

-

void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinSM_Init fonction

This function initializes the Lin SM.

void LinSM_Init (const LinSM_ConfigType* ConfigPtr);

Services

Function to query the current communication mode.

Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);

The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.

void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);

The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.

void LinSM_GotoSleepIndication (NetworkHandleType Channel);

Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.

Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);

The upper layer requests a schedule table to be changed on one LIN network.

Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If module will call this callback when the new requested schedule table is active.

void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);

The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.

void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);

Cyclique

Periodic function that runs the timers of different request timeouts

void LinSM_MainFunction (void);

Types

Data structure type for the post - build configuration parameters.

Type used to report the current mode to the Bsw M