State Machine op het Real-Time Operation System

19 April 2022

Op basis van UML (Unified Modeling Language) worden de Moore en de Mealy Machine Model. Het grootste verschil:

  • Mealy: Op event wordt een actie uitgevoerd en gaat dan over naar een volgende state.
  • Moore: Voert een actie uit op het moment dat het proces in een nieuwe State komt. Op een Event kan je terecht komen in een ander State.

Bij een Real_time Operation System wordt scheduling toegepast. Er zijn 2 verschillende type scheduling besproken:

  • Preemptive: Kan een hogere prioriteit taak direct starten.
  • Cooperative: Iedere taak wordt afgemaakt voor een volgende taak.

Een interrupt wordt altijd afgehandeld.

Bij het afhandelen van een interrupt kan je ervoor zorgen dat na het afhandelen van de interrupt, weer de voorgaande taak kan afhandelen met het moment van toen. Die manier van programmeren noemen we: Tread safe programming.

OPDRACHT:

Er was een opdracht waarbij de M5GO 5 toestanden kreeg. Door middel van de 3 knoppen op de M5GO moest je programmeren dat je over springt tussen de verschillende toestanden. Vanuit de opdracht van de tekst heb ik eerst het Mealy Machine Model gebruikt om het uit te tekenen:


Als eerste ben ik met de Case functie van start gegaan die ik niet helemaal begreep. Daarom ben ik verder gegaan met de If-Else functionaliteit. Dit werd behoorlijk wat code, maar het doel was bereikt. Daarom weer met de Case functie begonnen en daar om hulp gevraagd, aangezien het gedrag niet helemaal naar wens was. Door inzage van anderen heb ben ik overgegaan naar de toestanden als uitgangspunt in plaats van de interrupts. Ook heb ik de toestanden als textuele variabele anagemaakt, in plaats van 4 booleans. Dat scheelde veel code.


Beide vormen zijn op basis van de Mealy Methoden. Jan heeft een voorbeeld van de Moore Methode laten zien. Deze wordt het meeste toegepast. Hierin valt op dat de actie wordt uitgevoerd op het moment dat het programma in een nieuwe toestand beland:





Portfolio Smart Infra Engineer

De opleiding bestaat uit 6 modules exclusief een inleiding in Smart, praktijk opleiding en examen

Per module maakt voeg ik verschillende interessante zaken in mijn portfolio.