Skip to content

Add the main FSM logic#7

Open
maximerochat wants to merge 6 commits into
mainfrom
feat-fsm
Open

Add the main FSM logic#7
maximerochat wants to merge 6 commits into
mainfrom
feat-fsm

Conversation

@maximerochat

Copy link
Copy Markdown
Contributor

Changes:

  • Added transition for all state of the FSM
  • updated storage to hold necessary informations

@maximerochat

Copy link
Copy Markdown
Contributor Author
image @TheoHollender J'ai commencé à faire ls state machine mais je suis un peux confu par rapport au condition de transitions.

Premièrement, de Pressurization à Ignition, on est sensé avoir que une automatic transition avec les condition, ça veut dire que des qu'on envois la command de pressurization, on lance direct des que tout est prêt ? Il y a pas une commande ignition à envoyé depuis la GS ?

Maintenant, d'un ordre plus général, toutes les conditions de transition sont pas forcément directement implémenter dans nos store actuel, J'ai commencé à update différent store genre le EventStore our le propSensorsStore en ajoutant par exemple pour la transition de PRESSURIZATION à IGNITION l'event timer_launch_delay et les field fuel_pressure_mean et LOX_pressure_mean, mais je sais pas si c'est comme ça que tu pensais faire ?

@maximerochat

Copy link
Copy Markdown
Contributor Author

Aussi toutes les conditions ne sont pas surper clair, surtout quand on par de pression des tanks, est-ce qu'on demande de check la pression pour les tanque de LOX, fuel et pressurant ou bien juste certains. Aussi Dans l'edge de PRESSURIZATION à ABORT_ON_GROUND, le p_tanks et p_prvs font resepctivement mention à quoi ?

@TheoHollender

Copy link
Copy Markdown
Contributor

Normalement il y a une commande envoyée par la GS pour Ignition et je suspecte qu'elle lance le timer timer_launch (pour laisser potentiellement le temps pour un abort manuel), à discuter avec @clacassa il saura mieux te dire parce que c'est plutôt niveau SE ça.

Tous les champs utiles par la FSM doivent en effet être dans les différents stores normalement.

Je pense que ouais les transitions c'est des comparaisons </> de vecteurs pour simplifier la notation dans le diagramme (e.g. composantes à composantes, donc type de tank à type de tank), mais je laisse aussi @clacassa valider ça.

@clacassa

clacassa commented Mar 18, 2026

Copy link
Copy Markdown
Collaborator

Salut @maximerochat @TheoHollender

  • De PRESSURIZATION à IGNITION, on a décidé de refaire comme ce qui était fait sur FH1 initialement, à savoir une transition automatique, si les conditions suivantes sont vérifiées: la pression moyenne (typiquement moyenne mobile des valeurs acquises sur le bus CAN en provenance des PRC) des tanks (LOx et fuel) est comprise entre deux bornes high et low qui définissent le comportement nominal de la phase de pressurisation. Si après le temps LAUNCH_DELAY, chaque moyenne est dans ces deux bornes, la FSM doit passer à IGNITION. Si à n'importe quel moment, la moyenne d'un des tanks (LOx ou fuel) passe au dessus d'une troisième valeur threshold (notée p_prv pour pressure relief valve, 70 bar normalement), alors la FSM doit immédiatement passer en AoG.
  • Les thresholds que vous devez utiliser sont référencés dans ce document: 2026_C_SE_FLIGHT-PARAMETERS; seules les variables dont le champ "Host Board" est "Flight Computer" vous concernent. J'admets que leur noms doivent être mis à jour. Leur valeurs seront définies au fur et à mesure du développement des autres systèmes dont on dépend (principalement PR). Je m'occupe de maintenir ce doc avec les autres SE.

    Un point important: on doit être cohérent dans le nom donné à ces constantes. L'idée est que le doc fasse foi, et que vous copiez le nom des constantes dans vos symboles de la codebase. Ca sera plus facile de s'y retrouver après.
    Je m'occupe de compléter ce doc rapidement pour que vous ayez tout à disposition

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants